From 6f3faa7012f0f65e815901aa121fc389a037163f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 31 Oct 2023 10:12:23 +0100 Subject: [PATCH 001/180] Create ChannelAccessors, remove optionssetter functions --- src/chart/main/style.h | 2 +- src/chart/options/channel.cpp | 6 - src/chart/options/channel.h | 26 +-- src/chart/options/config.cpp | 278 ++++++++++++++-------------- src/chart/options/config.h | 19 +- src/chart/options/optionssetter.cpp | 81 -------- src/chart/options/optionssetter.h | 22 --- src/chart/rendering/drawplot.cpp | 10 +- 8 files changed, 169 insertions(+), 275 deletions(-) diff --git a/src/chart/main/style.h b/src/chart/main/style.h index 8ace6ac3c..e28348d8f 100644 --- a/src/chart/main/style.h +++ b/src/chart/main/style.h @@ -20,7 +20,7 @@ namespace Vizzu::Styles { -template using Param = ::Style::Param; +using ::Style::Param; enum class Visibility { hidden, visible }; enum class Overflow { hidden, visible }; diff --git a/src/chart/options/channel.cpp b/src/chart/options/channel.cpp index cc46bc385..691505b9d 100644 --- a/src/chart/options/channel.cpp +++ b/src/chart/options/channel.cpp @@ -12,12 +12,6 @@ bool isAxis(ChannelId type) return type == ChannelId::x || type == ChannelId::y; } -Channel::Channel(Type type, double def, bool stackable) : - type(type), - defaultValue(def), - stackable(stackable) -{} - Channel Channel::makeChannel(Type id) { switch (id) { diff --git a/src/chart/options/channel.h b/src/chart/options/channel.h index bb1d1a384..2c787b9f4 100644 --- a/src/chart/options/channel.h +++ b/src/chart/options/channel.h @@ -30,12 +30,6 @@ class Channel static Channel makeChannel(Type id); - Channel(const Channel &channel) = default; - Channel(Channel &&) = default; - Channel &operator=(const Channel &) = default; - Channel &operator=(Channel &&) = default; - - Channel(Type type, double def, bool stackable); std::pair addSeries( const Data::SeriesIndex &index, std::optional pos = std::nullopt); @@ -60,20 +54,20 @@ class Channel bool operator==(const Channel &other) const; Type type; - OptionalIndex measureId; - DimensionIndices dimensionIds; double defaultValue; bool stackable; - ChannelRange range; + OptionalIndex measureId{}; + DimensionIndices dimensionIds{}; + ChannelRange range{}; std::size_t labelLevel{}; std::string title = "auto"; - Base::AutoBool axisLine; - Base::AutoBool axisLabels; - Base::AutoBool ticks; - Base::AutoBool guides; - Base::AutoBool markerGuides; - Base::AutoBool interlacing; - Base::AutoParam step; + Base::AutoBool axisLine{}; + Base::AutoBool axisLabels{}; + Base::AutoBool ticks{}; + Base::AutoBool guides{}; + Base::AutoBool markerGuides{}; + Base::AutoBool interlacing{}; + Base::AutoParam step{}; }; Channel::DimensionIndices operator&( diff --git a/src/chart/options/config.cpp b/src/chart/options/config.cpp index 5eba4c08f..3e631a1f0 100644 --- a/src/chart/options/config.cpp +++ b/src/chart/options/config.cpp @@ -8,12 +8,6 @@ namespace Vizzu::Gen { -const Config::Accessors &Config::getAccessors() -{ - static const auto accessors = Config::initAccessors(); - return accessors; -} - template struct ExtractIf : std::identity { using type = T; @@ -39,8 +33,9 @@ template <> struct ExtractIf }; template -using ExtractType = ExtractIf>>; +using ExtractType = + ExtractIf>>; template inline constexpr std::pair @@ -80,17 +75,123 @@ inline constexpr std::pair value); }}}; +const Config::Accessors &Config::getAccessors() +{ + static const Config::Accessors accessors = { + accessor<&Options::title>, + accessor<&Options::subtitle>, + accessor<&Options::caption>, + accessor<&Options::legend>, + accessor<&Options::coordSystem>, + {"rotate", + {.get = + [](const Options &options) + { + return Conv::toString( + 90 * options.angle / (M_PI / 2)); + }, + .set = + [](OptionsSetter &setter, + const std::string &value) + { + setter.rotate(Conv::parse(value) / 90); + }}}, + accessor<&Options::geometry>, + accessor<&Options::orientation>, + accessor<&Options::sort>, + accessor<&Options::reverse>, + accessor<&Options::align>, + accessor<&Options::split>, + unique_accessor<&Options::tooltip, + &OptionsSetter::showTooltip>}; + + return accessors; +} + +template +const std::pair + Config::channel_accessor{ + Refl::Name::in_data_name< + Refl::Name::name()>, + {.get = + [](const Channel &channel) + { + return Conv::toString( + ExtractType{}(std::invoke(Mptr, channel))); + }, + .set = + [](OptionsSetter &setter, + const ChannelId &channel, + const std::string &value) + { + std::invoke(Mptr, + setter.getOptions().getChannels().at(channel)) = + Conv::parse::type>( + value); + }}}; + +const Config::ChannelAccessors &Config::getChannelAccessors() +{ + static const ChannelAccessors accessors{ + channel_accessor<&Channel::title>, + {"set", {}}, + channel_accessor<&Channel::stackable>, + {"range.min", + {.get = + [](const Channel &channel) + { + return Conv::toString(channel.range.min); + }, + .set = + [](OptionsSetter &setter, + const ChannelId &id, + const std::string &value) + { + setter.getOptions() + .getChannels() + .at(id) + .range.min = + Conv::parse(value); + }}}, + {"range.max", + {.get = + [](const Channel &channel) + { + return Conv::toString(channel.range.max); + }, + .set = + [](OptionsSetter &setter, + const ChannelId &id, + const std::string &value) + { + setter.getOptions() + .getChannels() + .at(id) + .range.max = + Conv::parse(value); + }}}, + channel_accessor<&Channel::labelLevel>, + {"axis", channel_accessor<&Channel::axisLine>.second}, + channel_accessor<&Channel::ticks>, + channel_accessor<&Channel::interlacing>, + channel_accessor<&Channel::guides>, + channel_accessor<&Channel::markerGuides>, + {"labels", channel_accessor<&Channel::axisLabels>.second}}; + return accessors; +} + std::list Config::listParams() { std::list res; for (const auto &accessor : getAccessors()) res.emplace_back(accessor.first); - auto channelParams = listChannelParams(); + auto channelParams = + std::ranges::views::keys(getChannelAccessors()); for (auto channelName : Refl::enum_names) { - for (auto ¶m : channelParams) - res.push_back( - "channels." + std::string{channelName} + "." + param); + for (const auto ¶m : channelParams) + res.push_back("channels." + std::string{channelName} + "." + + std::string{param}); } return res; @@ -134,67 +235,39 @@ void Config::setChannelParam(const std::string &path, auto id = Conv::parse(parts.at(1)); auto property = parts.at(2); - if (property == "title") { setter.setAxisTitle(id, value); } - else if (property == "axis") { - setter.setAxisLine(id, Conv::parse(value)); - } - else if (property == "labels") { - setter.setAxisLabels(id, Conv::parse(value)); - } - else if (property == "ticks") { - setter.setTicks(id, Conv::parse(value)); - } - else if (property == "interlacing") { - setter.setInterlacing(id, Conv::parse(value)); - } - else if (property == "guides") { - setter.setGuides(id, Conv::parse(value)); - } - else if (property == "markerGuides") { - setter.setMarkerGuides(id, - Conv::parse(value)); - } - else if (property == "step") { + if (property == "step") { setter.setStep(id, Conv::parse>(value)); + return; } - else if (property == "attach") { + if (property == "attach") { setter.addSeries(id, value); + return; } - else if (property == "detach") { + if (property == "detach") { setter.deleteSeries(id, value); + return; } - else if (property == "set") { + if (property == "set") { if (parts.size() == 3 && value == "null") setter.clearSeries(id); else { if (std::stoi(parts.at(3)) == 0) setter.clearSeries(id); setter.addSeries(id, value); } + return; } - else if (property == "stackable") { - setter.setStackable(id, Conv::parse(value)); - } - else if (property == "range") { - if (parts.size() >= 4 && parts.at(3) == "min") { - setter.setRangeMin(id, - Conv::parse(value)); - } - else if (parts.size() >= 4 && parts.at(3) == "max") { - setter.setRangeMax(id, - Conv::parse(value)); - } - else - throw std::logic_error( - path + "/" + value + ": invalid range setting"); - } - else if (property == "labelLevel") { - setter.setLabelLevel(id, Conv::parse(value)); + + if (property == "range") property += "." + parts.at(3); + + const auto &accessors = getChannelAccessors(); + if (auto it = accessors.find(property); it != accessors.end()) { + return it->second.set(setter, id, value); } - else - throw std::logic_error( - path + "/" + value - + ": invalid channel parameter: " + property); + + throw std::logic_error( + path + "/" + value + + ": invalid channel parameter: " + property); } std::string Config::getChannelParam(const std::string &path) const @@ -205,96 +278,19 @@ std::string Config::getChannelParam(const std::string &path) const const auto &channel = setter.getOptions().getChannels().at(id); - if (property == "title") { return Conv::toString(channel.title); } - if (property == "axis") { - return Conv::toString(channel.axisLine); - } - if (property == "labels") { - return Conv::toString(channel.axisLabels); - } - if (property == "ticks") { return Conv::toString(channel.ticks); } - if (property == "interlacing") { - return Conv::toString(channel.interlacing); - } - if (property == "guides") { - return Conv::toString(channel.guides); - } - if (property == "markerGuides") { - return Conv::toString(channel.markerGuides); - } if (property == "set") { auto list = channel.dimensionNames(*setter.getTable()); auto measure = channel.measureName(*setter.getTable()); if (!measure.empty()) list.push_front(measure); return Conv::toJSON(list); } - if (property == "stackable") { - return Conv::toString(channel.stackable); - } - if (property == "range") { - if (parts.size() == 4 && parts.at(3) == "min") { - return Conv::toString(channel.range.min); - } - if (parts.size() == 4 && parts.at(3) == "max") { - return Conv::toString(channel.range.max); - } - throw std::logic_error(path + ": invalid range parameter"); - } - if (property == "labelLevel") { - return Conv::toString(channel.labelLevel); - } - throw std::logic_error(path + ": invalid channel parameter"); -} - -std::list Config::listChannelParams() -{ - return {"title", - "set", - "stackable", - "range.min", - "range.max", - "labelLevel", - "axis", - "ticks", - "interlacing", - "guides", - "markerGuides", - "labels"}; -} -Config::Accessors Config::initAccessors() -{ - Accessors res; - - res.emplace(accessor<&Options::title>); - res.emplace(accessor<&Options::subtitle>); - res.emplace(accessor<&Options::caption>); - res.emplace(accessor<&Options::legend>); - res.emplace(accessor<&Options::coordSystem>); - - res.insert({"rotate", - {.get = - [](const Options &options) - { - return Conv::toString( - 90 * options.angle / (M_PI / 2)); - }, - .set = - [](OptionsSetter &setter, const std::string &value) - { - setter.rotate(Conv::parse(value) / 90); - }}}); - - res.emplace(accessor<&Options::geometry>); - res.emplace(accessor<&Options::orientation>); - res.emplace(accessor<&Options::sort>); - res.emplace(accessor<&Options::reverse>); - res.emplace(accessor<&Options::align>); - res.emplace(accessor<&Options::split>); - res.emplace(unique_accessor<&Options::tooltip, - &OptionsSetter::showTooltip>); + if (property == "range") property += "." + parts.at(3); - return res; + const auto &accessors = getChannelAccessors(); + if (auto it = accessors.find(property); it != accessors.end()) { + return it->second.get(channel); + } + throw std::logic_error(path + ": invalid channel parameter"); } - } \ No newline at end of file diff --git a/src/chart/options/config.h b/src/chart/options/config.h index ec1f77d16..118048c7f 100644 --- a/src/chart/options/config.h +++ b/src/chart/options/config.h @@ -28,6 +28,14 @@ class Config void (*set)(OptionsSetter &, const std::string &); }; + struct ChannelAccessor + { + std::string (*get)(const Channel &); + void (*set)(OptionsSetter &, + const ChannelId &, + const std::string &); + }; + template static const std::pair unique_accessor; @@ -36,18 +44,23 @@ class Config static const std::pair accessor; + template + static const std::pair + channel_accessor; + using Accessors = std::map; + using ChannelAccessors = + std::map; static const Accessors &getAccessors(); - OptionsSetter setter; + static const ChannelAccessors &getChannelAccessors(); - static Accessors initAccessors(); + OptionsSetter setter; void setChannelParam(const std::string &path, const std::string &value); [[nodiscard]] std::string getChannelParam( const std::string &path) const; - static std::list listChannelParams(); }; } diff --git a/src/chart/options/optionssetter.cpp b/src/chart/options/optionssetter.cpp index b29f4b040..e135e664d 100644 --- a/src/chart/options/optionssetter.cpp +++ b/src/chart/options/optionssetter.cpp @@ -85,87 +85,6 @@ OptionsSetter &OptionsSetter::setFilter(const Data::Filter &filter) return *this; } -OptionsSetter &OptionsSetter::setLabelLevel( - const ChannelId &channelId, - std::size_t level) -{ - options.getChannels().at(channelId).labelLevel = level; - return *this; -} - -OptionsSetter &OptionsSetter::setRangeMin(const ChannelId &channelId, - const OptionalChannelExtrema &value) -{ - options.getChannels().at(channelId).range.min = value; - return *this; -} - -OptionsSetter &OptionsSetter::setRangeMax(const ChannelId &channelId, - const OptionalChannelExtrema &value) -{ - options.getChannels().at(channelId).range.max = value; - return *this; -} - -OptionsSetter &OptionsSetter::setStackable(const ChannelId &channelId, - bool value) -{ - options.getChannels().at(channelId).stackable = value; - return *this; -} - -OptionsSetter &OptionsSetter::setAxisTitle(const ChannelId &channelId, - const std::string &title) -{ - options.getChannels().at(channelId).title = title; - return *this; -} - -OptionsSetter &OptionsSetter::setAxisLine(const ChannelId &channelId, - Base::AutoBool enable) -{ - options.getChannels().at(channelId).axisLine = enable; - return *this; -} - -OptionsSetter &OptionsSetter::setAxisLabels( - const ChannelId &channelId, - Base::AutoBool enable) -{ - options.getChannels().at(channelId).axisLabels = enable; - return *this; -} - -OptionsSetter &OptionsSetter::setTicks(const ChannelId &channelId, - Base::AutoBool enable) -{ - options.getChannels().at(channelId).ticks = enable; - return *this; -} - -OptionsSetter &OptionsSetter::setGuides(const ChannelId &channelId, - Base::AutoBool enable) -{ - options.getChannels().at(channelId).guides = enable; - return *this; -} - -OptionsSetter &OptionsSetter::setMarkerGuides( - const ChannelId &channelId, - Base::AutoBool enable) -{ - options.getChannels().at(channelId).markerGuides = enable; - return *this; -} - -OptionsSetter &OptionsSetter::setInterlacing( - const ChannelId &channelId, - Base::AutoBool enable) -{ - options.getChannels().at(channelId).interlacing = enable; - return *this; -} - OptionsSetter &OptionsSetter::setStep(const ChannelId &channelId, Base::AutoParam step) { diff --git a/src/chart/options/optionssetter.h b/src/chart/options/optionssetter.h index be8e8450c..2a3ff266c 100644 --- a/src/chart/options/optionssetter.h +++ b/src/chart/options/optionssetter.h @@ -38,28 +38,6 @@ class OptionsSetter OptionsSetter &rotate(double ccwQuadrant); OptionsSetter &setAngle(double ccwQuadrant); OptionsSetter &setFilter(const Data::Filter &filter); - OptionsSetter &setLabelLevel(const ChannelId &channelId, - std::size_t level); - OptionsSetter &setRangeMin(const ChannelId &channelId, - const OptionalChannelExtrema &value); - OptionsSetter &setRangeMax(const ChannelId &channelId, - const OptionalChannelExtrema &value); - OptionsSetter &setStackable(const ChannelId &channelId, - bool value); - OptionsSetter &setAxisTitle(const ChannelId &channelId, - const std::string &title); - OptionsSetter &setAxisLine(const ChannelId &channelId, - Base::AutoBool enable); - OptionsSetter &setAxisLabels(const ChannelId &channelId, - Base::AutoBool enable); - OptionsSetter &setTicks(const ChannelId &channelId, - Base::AutoBool enable); - OptionsSetter &setGuides(const ChannelId &channelId, - Base::AutoBool enable); - OptionsSetter &setMarkerGuides(const ChannelId &channelId, - Base::AutoBool enable); - OptionsSetter &setInterlacing(const ChannelId &channelId, - Base::AutoBool enable); OptionsSetter &setStep(const ChannelId &channelId, Base::AutoParam step); OptionsSetter &addMarkerInfo(Options::MarkerId marker); diff --git a/src/chart/rendering/drawplot.cpp b/src/chart/rendering/drawplot.cpp index ca8bb7443..9656ab0f1 100644 --- a/src/chart/rendering/drawplot.cpp +++ b/src/chart/rendering/drawplot.cpp @@ -12,16 +12,16 @@ namespace Vizzu::Draw DrawPlot::DrawPlot(const DrawingContext &context) : DrawingContext(context) { - auto plotElement = std::make_unique(); - DrawBackground(*this, layout.plot, rootStyle.plot, rootEvents.draw.plot.background, - std::move(plotElement)); + std::make_unique()); drawArea(false); - DrawAxes(*this).drawBase(); + + DrawAxes axes(*this); + axes.drawBase(); auto clip = rootStyle.plot.overflow == Styles::Overflow::hidden; @@ -35,7 +35,7 @@ DrawPlot::DrawPlot(const DrawingContext &context) : drawMarkerLabels(); - DrawAxes(*this).drawLabels(); + axes.drawLabels(); } void DrawPlot::clipPlotArea() From d4b742313d05d1555802191bc22927ed03c1dd6d Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 31 Oct 2023 10:45:13 +0100 Subject: [PATCH 002/180] Add step as listed channel accessor --- CHANGELOG.md | 1 + src/chart/options/config.cpp | 8 ++------ src/chart/options/optionssetter.cpp | 7 ------- src/chart/options/optionssetter.h | 2 -- 4 files changed, 3 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 500ba44b2..d0579ff04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ - Layout stretched to the bottom of the canvas. - Legend accepts only the acceptable channel values. - From now the dimension axis title is shown if set. +- "step" was not listed in chart channel accessors. ### Added diff --git a/src/chart/options/config.cpp b/src/chart/options/config.cpp index 3e631a1f0..50d3a66d3 100644 --- a/src/chart/options/config.cpp +++ b/src/chart/options/config.cpp @@ -176,7 +176,8 @@ const Config::ChannelAccessors &Config::getChannelAccessors() channel_accessor<&Channel::interlacing>, channel_accessor<&Channel::guides>, channel_accessor<&Channel::markerGuides>, - {"labels", channel_accessor<&Channel::axisLabels>.second}}; + {"labels", channel_accessor<&Channel::axisLabels>.second}, + channel_accessor<&Channel::step>}; return accessors; } @@ -235,11 +236,6 @@ void Config::setChannelParam(const std::string &path, auto id = Conv::parse(parts.at(1)); auto property = parts.at(2); - if (property == "step") { - setter.setStep(id, - Conv::parse>(value)); - return; - } if (property == "attach") { setter.addSeries(id, value); return; diff --git a/src/chart/options/optionssetter.cpp b/src/chart/options/optionssetter.cpp index e135e664d..68222cd59 100644 --- a/src/chart/options/optionssetter.cpp +++ b/src/chart/options/optionssetter.cpp @@ -85,13 +85,6 @@ OptionsSetter &OptionsSetter::setFilter(const Data::Filter &filter) return *this; } -OptionsSetter &OptionsSetter::setStep(const ChannelId &channelId, - Base::AutoParam step) -{ - options.getChannels().at(channelId).step = step; - return *this; -} - OptionsSetter &OptionsSetter::addMarkerInfo(Options::MarkerId marker) { if (!options.getMarkerInfoId(marker).has_value()) { diff --git a/src/chart/options/optionssetter.h b/src/chart/options/optionssetter.h index 2a3ff266c..76432bfd4 100644 --- a/src/chart/options/optionssetter.h +++ b/src/chart/options/optionssetter.h @@ -38,8 +38,6 @@ class OptionsSetter OptionsSetter &rotate(double ccwQuadrant); OptionsSetter &setAngle(double ccwQuadrant); OptionsSetter &setFilter(const Data::Filter &filter); - OptionsSetter &setStep(const ChannelId &channelId, - Base::AutoParam step); OptionsSetter &addMarkerInfo(Options::MarkerId marker); OptionsSetter &moveMarkerInfo(Options::MarkerId from, Options::MarkerId to); From 2e5427791a0caa0cd2a8893568e0c920ce111a8c Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 31 Oct 2023 11:01:04 +0100 Subject: [PATCH 003/180] Inline tooltip as the only unique_accessor --- src/chart/options/config.cpp | 35 +++++++++++++---------------------- src/chart/options/config.h | 4 ---- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/src/chart/options/config.cpp b/src/chart/options/config.cpp index 50d3a66d3..e1d698457 100644 --- a/src/chart/options/config.cpp +++ b/src/chart/options/config.cpp @@ -37,26 +37,6 @@ using ExtractType = ExtractIf>>; -template -inline constexpr std::pair - Config::unique_accessor = { - Refl::Name::in_data_name< - Refl::Name::name()>, - {.get = - [](const Options &options) - { - return Conv::toString( - ExtractType{}(std::invoke(Mptr, options))); - }, - .set = - [](OptionsSetter &setter, const std::string &value) - { - std::invoke(Set, - setter, - Conv::parse::type>( - value)); - }}}; - template inline constexpr std::pair Config::accessor = {Refl::Name::in_data_name< @@ -102,8 +82,19 @@ const Config::Accessors &Config::getAccessors() accessor<&Options::reverse>, accessor<&Options::align>, accessor<&Options::split>, - unique_accessor<&Options::tooltip, - &OptionsSetter::showTooltip>}; + {"tooltip", + {.get = + [](const Options &options) + { + return Conv::toString(options.tooltip); + }, + .set = + [](OptionsSetter &setter, + const std::string &value) + { + setter.showTooltip( + Conv::parse>(value)); + }}}}; return accessors; } diff --git a/src/chart/options/config.h b/src/chart/options/config.h index 118048c7f..12fe0aeb3 100644 --- a/src/chart/options/config.h +++ b/src/chart/options/config.h @@ -36,10 +36,6 @@ class Config const std::string &); }; - template - static const std::pair - unique_accessor; - template static const std::pair accessor; From e7813a4ce0baea5b149d5d473c3985c1f104ed56 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Fri, 3 Nov 2023 11:47:35 +0100 Subject: [PATCH 004/180] Port size check script to nodejs --- tools/ci/run/pkg-build-wasm.sh | 2 +- tools/ci/sizeCheck.cjs | 53 ++++++++++++++++++++++++++++++++++ tools/ci/size_check.py | 34 ---------------------- 3 files changed, 54 insertions(+), 35 deletions(-) create mode 100644 tools/ci/sizeCheck.cjs delete mode 100644 tools/ci/size_check.py diff --git a/tools/ci/run/pkg-build-wasm.sh b/tools/ci/run/pkg-build-wasm.sh index 883e390a3..494683805 100755 --- a/tools/ci/run/pkg-build-wasm.sh +++ b/tools/ci/run/pkg-build-wasm.sh @@ -25,7 +25,7 @@ popd # test wasm size wget 'https://vizzu-lib-main.storage.googleapis.com/lib/size.txt' -O build/cmake-wasm/weblib/size_downloaded.txt -python tools/ci/size_check.py +node tools/ci/sizeCheck.cjs # build ts diff --git a/tools/ci/sizeCheck.cjs b/tools/ci/sizeCheck.cjs new file mode 100644 index 000000000..85eb9739b --- /dev/null +++ b/tools/ci/sizeCheck.cjs @@ -0,0 +1,53 @@ +const fs = require('fs') +const path = require('path') + +const THRESHOLD = 1.05 +const workspacePath = path.dirname(__filename) +const weblibPath = path.join(workspacePath, '../..', 'build/cmake-wasm/weblib') +const sizeFilePath = path.join(weblibPath, 'size.txt') +const sizeDownloadedFilePath = path.join(weblibPath, 'size_downloaded.txt') + +fs.readFile(sizeFilePath, 'utf8', (err, sizeData) => { + if (err) { + console.error(`Error reading size.txt: ${err}`) + process.exit(1) + } + + const sizeLines = sizeData.split('\n').map((line) => line.trim()) + + fs.readFile(sizeDownloadedFilePath, 'utf8', (err, downloadedData) => { + if (err) { + console.error(`Error reading size_downloaded.txt: ${err}`) + process.exit(1) + } + + const downloadedLines = downloadedData.split('\n').map((line) => line.trim()) + + sizeLines.forEach((sizeLine) => { + if (!sizeLine) return + const [file, actualSize] = sizeLine.split(' ') + + const downloadedLine = downloadedLines.find((dlLine) => { + const regex = new RegExp(`^${file}\\s+\\d+`) + return regex.test(dlLine) + }) + + if (downloadedLine) { + const downloadedSize = downloadedLine.split(' ')[1] + + if (parseFloat(actualSize) > parseFloat(downloadedSize) * THRESHOLD) { + console.error(`Error: File ${file} size exceeds the threshold.`) + process.exit(1) + } else { + console.log( + `Success: File ${file} size comparison passed. Actual: ${actualSize}, Downloaded: ${downloadedSize}` + ) + } + } else { + console.warn( + `Warning: Downloaded size not found for file ${file}. Skipping comparison. Actual: ${actualSize}` + ) + } + }) + }) +}) diff --git a/tools/ci/size_check.py b/tools/ci/size_check.py deleted file mode 100644 index ca592d272..000000000 --- a/tools/ci/size_check.py +++ /dev/null @@ -1,34 +0,0 @@ -# pylint: disable=missing-module-docstring,missing-class-docstring,missing-function-docstring - -from pathlib import Path -import sys - - -THRESHOLD = 1.05 - -workspace_path = Path(__file__).parent -weblib_path = Path.joinpath(workspace_path, "../..", "build/cmake-wasm/weblib") - -with open(Path.joinpath(weblib_path, "size.txt"), "r", encoding="utf8") as size_file: - for line in size_file: - file, actual_size = line.strip().split() - with open( - Path.joinpath(weblib_path, "size_downloaded.txt"), "r", encoding="utf8" - ) as downloaded_file: - for d_line in downloaded_file: - if d_line.startswith(file): - downloaded_size = d_line.split()[1] - if float(actual_size) > float(downloaded_size) * THRESHOLD: - print(f"Error: File {file} size exceeds the threshold.") - sys.exit(1) - else: - print( - f"Success: File {file} size comparison passed. " - f"Actual: {actual_size}, Downloaded: {downloaded_size}" - ) - break - else: - print( - f"Warning: Downloaded size not found for file {file}. " - f"Skipping comparison. Actual: {actual_size}" - ) From 49a6ddeb85cf215628f9a671d151f20cb24fd8e5 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Fri, 3 Nov 2023 15:42:09 +0100 Subject: [PATCH 005/180] Using readFileSync in size check --- tools/ci/sizeCheck.cjs | 64 +++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/tools/ci/sizeCheck.cjs b/tools/ci/sizeCheck.cjs index 85eb9739b..f1b516b0c 100644 --- a/tools/ci/sizeCheck.cjs +++ b/tools/ci/sizeCheck.cjs @@ -7,47 +7,35 @@ const weblibPath = path.join(workspacePath, '../..', 'build/cmake-wasm/weblib') const sizeFilePath = path.join(weblibPath, 'size.txt') const sizeDownloadedFilePath = path.join(weblibPath, 'size_downloaded.txt') -fs.readFile(sizeFilePath, 'utf8', (err, sizeData) => { - if (err) { - console.error(`Error reading size.txt: ${err}`) - process.exit(1) - } - - const sizeLines = sizeData.split('\n').map((line) => line.trim()) - - fs.readFile(sizeDownloadedFilePath, 'utf8', (err, downloadedData) => { - if (err) { - console.error(`Error reading size_downloaded.txt: ${err}`) - process.exit(1) - } +const sizeData = fs.readFileSync(sizeFilePath, 'utf8') +const sizeLines = sizeData.split('\n').map((line) => line.trim()) - const downloadedLines = downloadedData.split('\n').map((line) => line.trim()) +const downloadedData = fs.readFileSync(sizeDownloadedFilePath, 'utf8') +const downloadedLines = downloadedData.split('\n').map((line) => line.trim()) - sizeLines.forEach((sizeLine) => { - if (!sizeLine) return - const [file, actualSize] = sizeLine.split(' ') +sizeLines.forEach((sizeLine) => { + if (!sizeLine) return + const [file, actualSize] = sizeLine.split(' ') - const downloadedLine = downloadedLines.find((dlLine) => { - const regex = new RegExp(`^${file}\\s+\\d+`) - return regex.test(dlLine) - }) + const downloadedLine = downloadedLines.find((dlLine) => { + const regex = new RegExp(`^${file}\\s+\\d+`) + return regex.test(dlLine) + }) - if (downloadedLine) { - const downloadedSize = downloadedLine.split(' ')[1] + if (downloadedLine) { + const downloadedSize = downloadedLine.split(' ')[1] - if (parseFloat(actualSize) > parseFloat(downloadedSize) * THRESHOLD) { - console.error(`Error: File ${file} size exceeds the threshold.`) - process.exit(1) - } else { - console.log( - `Success: File ${file} size comparison passed. Actual: ${actualSize}, Downloaded: ${downloadedSize}` - ) - } - } else { - console.warn( - `Warning: Downloaded size not found for file ${file}. Skipping comparison. Actual: ${actualSize}` - ) - } - }) - }) + if (parseFloat(actualSize) > parseFloat(downloadedSize) * THRESHOLD) { + console.error(`Error: File ${file} size exceeds the threshold.`) + process.exit(1) + } else { + console.log( + `Success: File ${file} size comparison passed. Actual: ${actualSize}, Downloaded: ${downloadedSize}` + ) + } + } else { + console.warn( + `Warning: Downloaded size not found for file ${file}. Skipping comparison. Actual: ${actualSize}` + ) + } }) From 6ffd247d9642f1c26166aa6a9c4e92c243636e47 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Wed, 8 Nov 2023 13:30:13 +0100 Subject: [PATCH 006/180] Fixed unhandled exception on canvas css height between 0..1 --- src/apps/weblib/ts-api/render.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps/weblib/ts-api/render.ts b/src/apps/weblib/ts-api/render.ts index 6eb8df813..aafda3b86 100644 --- a/src/apps/weblib/ts-api/render.ts +++ b/src/apps/weblib/ts-api/render.ts @@ -47,7 +47,7 @@ export class Render implements Plugin, Canvas { updateFrame(force: boolean = false): void { const size = this._canvas.calcSize() - if (size.x > 0 && size.y > 0) { + if (size.x >= 1 && size.y >= 1) { const renderControl = !this._enabled ? 2 : force ? 1 : 0 this._cchart.update(this._ccanvas, size.x, size.y, renderControl) } From fd2a42203c54eeedcf7e522ec8cd33e72d06abf2 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Wed, 8 Nov 2023 17:39:48 +0100 Subject: [PATCH 007/180] fixed crash on mousemove with inconsistent renderedchart state. --- src/chart/main/chart.cpp | 2 +- src/chart/rendering/renderedchart.h | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index 275f3e04c..75f118bb4 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -128,7 +128,7 @@ void Chart::draw(Gfx::ICanvas &canvas) auto coordSys = getCoordSystem(); - Draw::RenderedChart rendered(coordSys, actPlot.get()); + Draw::RenderedChart rendered(coordSys, actPlot); Draw::DrawingContext context(canvas, layout, diff --git a/src/chart/rendering/renderedchart.h b/src/chart/rendering/renderedchart.h index 0600249c7..efae3fbb6 100644 --- a/src/chart/rendering/renderedchart.h +++ b/src/chart/rendering/renderedchart.h @@ -59,9 +59,10 @@ class RenderedChart public: RenderedChart() = default; explicit RenderedChart(const CoordinateSystem &coordinateSystem, - const Gen::Plot *plot = nullptr) : + std::shared_ptr plot = + std::shared_ptr()) : coordinateSystem(coordinateSystem), - plot(plot) + plot(std::move(plot)) {} template void emplace(T &&...args) @@ -74,7 +75,7 @@ class RenderedChart private: CoordinateSystem coordinateSystem; - const Gen::Plot *plot{nullptr}; + std::shared_ptr plot; std::vector elements; }; From d15ca60a45c49f9c7cc3c7f68dcea2580b4af785 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Wed, 8 Nov 2023 18:08:47 +0100 Subject: [PATCH 008/180] Unnecessary circular dependency resolved. --- src/apps/weblib/ts-api/htmlcanvas.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/apps/weblib/ts-api/htmlcanvas.ts b/src/apps/weblib/ts-api/htmlcanvas.ts index 28bbaf8eb..ab2ca97c2 100644 --- a/src/apps/weblib/ts-api/htmlcanvas.ts +++ b/src/apps/weblib/ts-api/htmlcanvas.ts @@ -1,6 +1,5 @@ import * as Geom from './geom.js' import { Plugin, PluginApi } from './plugins.js' -import './vizzu.js' export interface CanvasOptions { element: HTMLElement From 0ece120fc5fbbbeca31312ca6bf17652c26cd472 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Wed, 8 Nov 2023 18:37:56 +0100 Subject: [PATCH 009/180] review fix --- src/chart/rendering/renderedchart.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/chart/rendering/renderedchart.h b/src/chart/rendering/renderedchart.h index efae3fbb6..97d0575f1 100644 --- a/src/chart/rendering/renderedchart.h +++ b/src/chart/rendering/renderedchart.h @@ -59,8 +59,7 @@ class RenderedChart public: RenderedChart() = default; explicit RenderedChart(const CoordinateSystem &coordinateSystem, - std::shared_ptr plot = - std::shared_ptr()) : + std::shared_ptr plot) : coordinateSystem(coordinateSystem), plot(std::move(plot)) {} From 5ce569a188a46cc3f98bc2d2e7a72d76fa74a392 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Wed, 8 Nov 2023 19:24:26 +0100 Subject: [PATCH 010/180] Not used callback on interface removed. --- project/cmake/weblib/emcc.txt | 1 - src/apps/weblib/cinterface.cpp | 2 -- src/apps/weblib/cinterface.h | 2 -- src/apps/weblib/interface.js | 3 --- src/apps/weblib/interfacejs.h | 1 - src/apps/weblib/ts-api/cvizzu.types.d.ts | 2 -- src/apps/weblib/ts-api/module/module.ts | 1 - 7 files changed, 12 deletions(-) diff --git a/project/cmake/weblib/emcc.txt b/project/cmake/weblib/emcc.txt index 0e2f5e421..168f0fc93 100644 --- a/project/cmake/weblib/emcc.txt +++ b/project/cmake/weblib/emcc.txt @@ -12,7 +12,6 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \ -s EXPORTED_FUNCTIONS=[\ '_malloc',\ '_free',\ -'_callback',\ '_vizzu_createChart',\ '_vizzu_createCanvas',\ '_vizzu_pointerDown',\ diff --git a/src/apps/weblib/cinterface.cpp b/src/apps/weblib/cinterface.cpp index 336b96e08..071cdc944 100644 --- a/src/apps/weblib/cinterface.cpp +++ b/src/apps/weblib/cinterface.cpp @@ -109,8 +109,6 @@ void vizzu_setLogging(bool enable) return Interface::setLogging(enable); } -void callback(void (*task)(void *), void *obj) { task(obj); } - APIHandles::Chart vizzu_createChart() { return Interface::getInstance().createChart(); diff --git a/src/apps/weblib/cinterface.h b/src/apps/weblib/cinterface.h index 7f28bce02..28611e03c 100644 --- a/src/apps/weblib/cinterface.h +++ b/src/apps/weblib/cinterface.h @@ -38,8 +38,6 @@ struct alignas(double) Value }; }; -extern void callback(void (*task)(void *), void *obj); - extern APIHandles::Chart vizzu_createChart(); extern APIHandles::Canvas vizzu_createCanvas(); extern void vizzu_pointerDown(APIHandles::Chart chart, diff --git a/src/apps/weblib/interface.js b/src/apps/weblib/interface.js index 46f1dae06..346fe540a 100644 --- a/src/apps/weblib/interface.js +++ b/src/apps/weblib/interface.js @@ -1,8 +1,5 @@ mergeInto(LibraryManager.library, { openUrl: function (url) { window.open(UTF8ToString(url), '_blank') - }, - callLater: function (func, obj, later) { - setTimeout(() => Module.callback(func, obj), Math.max(later, 0)) } }) diff --git a/src/apps/weblib/interfacejs.h b/src/apps/weblib/interfacejs.h index 6001cd801..12f270026 100644 --- a/src/apps/weblib/interfacejs.h +++ b/src/apps/weblib/interfacejs.h @@ -3,7 +3,6 @@ extern "C" { extern void openUrl(const char *); -extern void callLater(void (*)(void *), void *, int later); } #endif \ No newline at end of file diff --git a/src/apps/weblib/ts-api/cvizzu.types.d.ts b/src/apps/weblib/ts-api/cvizzu.types.d.ts index 43d23ddc4..703658c7c 100644 --- a/src/apps/weblib/ts-api/cvizzu.types.d.ts +++ b/src/apps/weblib/ts-api/cvizzu.types.d.ts @@ -45,7 +45,6 @@ export interface ModuleOptions { export interface CVizzu { // decorations - callback: (task: CFunction, obj: CPointer) => void canvases: { [key: CPointer]: Canvas } // members @@ -63,7 +62,6 @@ export interface CVizzu { ExceptionInfo: CExceptionInfoConstructor // exported functions - _callback(task: CFunction, obj: CPointer): void _vizzu_createChart(): CChartPtr _vizzu_createCanvas(): CCanvasPtr _vizzu_pointerDown( diff --git a/src/apps/weblib/ts-api/module/module.ts b/src/apps/weblib/ts-api/module/module.ts index d4b4d6df0..1201a9709 100644 --- a/src/apps/weblib/ts-api/module/module.ts +++ b/src/apps/weblib/ts-api/module/module.ts @@ -12,7 +12,6 @@ import { Canvas } from './canvas' export class Module extends CEnv { constructor(wasm: CVizzu) { super(wasm, new ObjectRegistry(wasm._object_free)) - this._wasm.callback = this._callStatic(this._wasm._callback) this._wasm.canvases = {} this.setLogging(false) } From c9285490ac28f199f86cbe70da9952c3cf95976b Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Thu, 9 Nov 2023 19:12:03 +0100 Subject: [PATCH 011/180] Fixed preset config creation. --- src/apps/weblib/ts-api/plugins/presets.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/apps/weblib/ts-api/plugins/presets.ts b/src/apps/weblib/ts-api/plugins/presets.ts index bc3198c3d..bb26c055f 100644 --- a/src/apps/weblib/ts-api/plugins/presets.ts +++ b/src/apps/weblib/ts-api/plugins/presets.ts @@ -1,6 +1,6 @@ import * as Data from '../types/data.js' import * as Config from '../types/config.js' - +import { recursiveCopy } from '../utils.js' import { presetConfigs } from './presetconfigs.js' type RawPresetConfigs = typeof presetConfigs @@ -50,7 +50,7 @@ export default class Presets { } private _createPresetConfig(presetName: PresetNames): Config.Chart { - const presetConfig = this._presetConfigs[presetName] + const presetConfig = recursiveCopy(this._presetConfigs[presetName]) const channelBase = { ...this._nullConfig().channels, ...presetConfig!.channels } const base = Object.assign(this._nullConfig(), presetConfig) base.channels = channelBase From d6b886ca7c0be4bb02f4ff41ea4cd8fbe598c1e3 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Thu, 9 Nov 2023 20:03:33 +0100 Subject: [PATCH 012/180] Set version to 0.9.0 --- .github/workflows/docker-vizzu-dev-desktop.yml | 2 +- .github/workflows/docker-vizzu-dev-wasm.yml | 2 +- CHANGELOG.md | 2 ++ CONTRIBUTING.md | 4 ++-- src/chart/main/version.cpp | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-vizzu-dev-desktop.yml b/.github/workflows/docker-vizzu-dev-desktop.yml index 4da99b1b5..0525312bb 100644 --- a/.github/workflows/docker-vizzu-dev-desktop.yml +++ b/.github/workflows/docker-vizzu-dev-desktop.yml @@ -19,6 +19,6 @@ jobs: - name: Build and Push Docker Image run: | IMAGE="vizzu-dev-desktop" - IMAGE_NAME="vizzu/$IMAGE:0.8" + IMAGE_NAME="vizzu/$IMAGE:0.9" docker build -t $IMAGE_NAME -f tools/ci/docker/$IMAGE . docker push $IMAGE_NAME diff --git a/.github/workflows/docker-vizzu-dev-wasm.yml b/.github/workflows/docker-vizzu-dev-wasm.yml index bdadc6e23..5817b8368 100644 --- a/.github/workflows/docker-vizzu-dev-wasm.yml +++ b/.github/workflows/docker-vizzu-dev-wasm.yml @@ -19,6 +19,6 @@ jobs: - name: Build and Push Docker Image run: | IMAGE="vizzu-dev-wasm" - IMAGE_NAME="vizzu/$IMAGE:0.8" + IMAGE_NAME="vizzu/$IMAGE:0.9" docker build -t $IMAGE_NAME -f tools/ci/docker/$IMAGE . docker push $IMAGE_NAME diff --git a/CHANGELOG.md b/CHANGELOG.md index d5e53d3b5..2867316b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] +## [0.9.0] - 2023-11-09 + ### Fixed - Implemented deep copying of received values to ensure the original data diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d7e735e15..250089120 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,7 +79,7 @@ docker run -i -t -v .:/workspace vizzu/vizzu-dev-desktop bash or you can use a specific version of the prebuilt image: ```sh -docker run -i -t -v .:/workspace vizzu/vizzu-dev-desktop:0.8 bash +docker run -i -t -v .:/workspace vizzu/vizzu-dev-desktop:0.9 bash ``` Run the following commands to build and run the `WASM` version's development @@ -93,7 +93,7 @@ docker run -i -t -v .:/workspace vizzu/vizzu-dev-wasm bash or you can use a specific version of the prebuilt image: ```sh -docker run -i -t -v .:/workspace vizzu/vizzu-dev-wasm:0.8 bash +docker run -i -t -v .:/workspace vizzu/vizzu-dev-wasm:0.9 bash ``` ### Building the project diff --git a/src/chart/main/version.cpp b/src/chart/main/version.cpp index 889212079..7bbd68fd2 100644 --- a/src/chart/main/version.cpp +++ b/src/chart/main/version.cpp @@ -1,5 +1,5 @@ #include "version.h" -const App::Version Vizzu::Main::version(0, 8, 1); +const App::Version Vizzu::Main::version(0, 9, 0); const char *const Vizzu::Main::siteUrl = "https://vizzuhq.com/"; From ae084a655006f3f19784d3bd4608a47df3c96980 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Thu, 9 Nov 2023 20:06:27 +0100 Subject: [PATCH 013/180] Fix docker workflows --- .github/workflows/docker-vizzu-dev-desktop.yml | 1 + .github/workflows/docker-vizzu-dev-wasm.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/docker-vizzu-dev-desktop.yml b/.github/workflows/docker-vizzu-dev-desktop.yml index 0525312bb..4985b6670 100644 --- a/.github/workflows/docker-vizzu-dev-desktop.yml +++ b/.github/workflows/docker-vizzu-dev-desktop.yml @@ -4,6 +4,7 @@ on: push: paths: - '**/vizzu-dev-desktop' + - '**/docker-vizzu-dev-desktop.yml' jobs: build-and-push: diff --git a/.github/workflows/docker-vizzu-dev-wasm.yml b/.github/workflows/docker-vizzu-dev-wasm.yml index 5817b8368..a57e9a4c2 100644 --- a/.github/workflows/docker-vizzu-dev-wasm.yml +++ b/.github/workflows/docker-vizzu-dev-wasm.yml @@ -4,6 +4,7 @@ on: push: paths: - '**/vizzu-dev-wasm' + - '**/docker-vizzu-dev-wasm.yml' jobs: build-and-push: From 3e70723b87f059795ebf502f7e41bceeaaf34272 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Thu, 9 Nov 2023 20:13:04 +0100 Subject: [PATCH 014/180] Fix contributing release guide --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 250089120..bfb06c5ae 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -304,7 +304,8 @@ To release `Vizzu`, follow the steps below: - If the major or minor version has changed, increase the version in `.github/workflows/docker-vizzu-dev-desktop.yml`, - `.github/workflows/docker-vizzu-dev-wasm.yml` and `CONTRIBUTING.md`. + `.github/workflows/docker-vizzu-dev-wasm.yml`, + `tools/ci/gcp/cloudbuild/cloudbuild.yaml` and `CONTRIBUTING.md`. - Set the release and release date in `CHANGELOG.md`, under the `Unreleased` title. From 33b776cb814a29b643aa78e3a5d7607c00f990d3 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Thu, 9 Nov 2023 20:14:41 +0100 Subject: [PATCH 015/180] Set version in cloudbuild.yaml --- tools/ci/gcp/cloudbuild/cloudbuild.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tools/ci/gcp/cloudbuild/cloudbuild.yaml b/tools/ci/gcp/cloudbuild/cloudbuild.yaml index c9eb2db45..ae0aff403 100644 --- a/tools/ci/gcp/cloudbuild/cloudbuild.yaml +++ b/tools/ci/gcp/cloudbuild/cloudbuild.yaml @@ -1,5 +1,5 @@ steps: - - name: vizzu/vizzu-dev-wasm:0.8 + - name: vizzu/vizzu-dev-wasm:0.9 id: init waitFor: - '-' @@ -11,7 +11,7 @@ steps: npm run init dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.8 + - name: vizzu/vizzu-dev-wasm:0.9 id: ci-src waitFor: - init @@ -28,7 +28,7 @@ steps: npm run lint-src fi dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.8 + - name: vizzu/vizzu-dev-wasm:0.9 id: ci-docs waitFor: - init @@ -45,7 +45,7 @@ steps: npm run lint-docs fi dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.8 + - name: vizzu/vizzu-dev-wasm:0.9 id: ci-tools waitFor: - init @@ -64,7 +64,7 @@ steps: fi dir: /workspace - - name: vizzu/vizzu-dev-desktop:0.8 + - name: vizzu/vizzu-dev-desktop:0.9 id: build-desktop-clangformat waitFor: - ci-src @@ -83,7 +83,7 @@ steps: fi dir: /workspace - - name: vizzu/vizzu-dev-desktop:0.8 + - name: vizzu/vizzu-dev-desktop:0.9 id: build-desktop-clangtidy waitFor: - build-desktop-clangformat @@ -99,7 +99,7 @@ steps: ./tools/ci/run/pkg-build-desktop-clangtidy.sh fi dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.8 + - name: vizzu/vizzu-dev-wasm:0.9 id: build-wasm waitFor: - build-desktop-clangformat @@ -119,7 +119,7 @@ steps: fi dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.8 + - name: vizzu/vizzu-dev-wasm:0.9 id: lib-sha waitFor: - build-wasm @@ -143,7 +143,7 @@ steps: fi dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.8 + - name: vizzu/vizzu-dev-wasm:0.9 id: test waitFor: - lib-sha @@ -158,7 +158,7 @@ steps: fi dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.8 + - name: vizzu/vizzu-dev-wasm:0.9 id: docs waitFor: - test @@ -199,7 +199,7 @@ steps: secretEnv: - VIZZUHQ_GITHUB_SSH - - name: vizzu/vizzu-dev-wasm:0.8 + - name: vizzu/vizzu-dev-wasm:0.9 id: release waitFor: - docs From 375574d9e0a89785d523f9721f70b309013ba6e9 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Thu, 9 Nov 2023 21:34:50 +0100 Subject: [PATCH 016/180] Fix release site build --- .github/workflows/docker-vizzu-dev-desktop.yml | 2 ++ .github/workflows/docker-vizzu-dev-wasm.yml | 2 ++ tools/ci/gcp/cloudbuild/cloudbuild.yaml | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-vizzu-dev-desktop.yml b/.github/workflows/docker-vizzu-dev-desktop.yml index 4985b6670..924f1f775 100644 --- a/.github/workflows/docker-vizzu-dev-desktop.yml +++ b/.github/workflows/docker-vizzu-dev-desktop.yml @@ -2,6 +2,8 @@ name: Docker Build and Push vizzu-dev-desktop on: push: + branches-ignore: + - main paths: - '**/vizzu-dev-desktop' - '**/docker-vizzu-dev-desktop.yml' diff --git a/.github/workflows/docker-vizzu-dev-wasm.yml b/.github/workflows/docker-vizzu-dev-wasm.yml index a57e9a4c2..eba83e0f2 100644 --- a/.github/workflows/docker-vizzu-dev-wasm.yml +++ b/.github/workflows/docker-vizzu-dev-wasm.yml @@ -2,6 +2,8 @@ name: Docker Build and Push vizzu-dev-wasm on: push: + branches-ignore: + - main paths: - '**/vizzu-dev-wasm' - '**/docker-vizzu-dev-wasm.yml' diff --git a/tools/ci/gcp/cloudbuild/cloudbuild.yaml b/tools/ci/gcp/cloudbuild/cloudbuild.yaml index ae0aff403..d5d1831f9 100644 --- a/tools/ci/gcp/cloudbuild/cloudbuild.yaml +++ b/tools/ci/gcp/cloudbuild/cloudbuild.yaml @@ -131,7 +131,9 @@ steps: if [ "$_ISRELEASE" == "true" ] then mkdir -p dist - gsutil -m cp -r 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA/*' 'dist' + gsutil cp 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA/vizzu.min.js' 'dist/vizzu.min.js' + gsutil cp 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA/cvizzu.wasm' 'dist/cvizzu.wasm' + ./tools/ci/run/pkg-build-ts.sh else gsutil -m cp -r 'dist/*' 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA' for file in build/js/* From f536ab0f16477214e5538771eb7142846c9f2ae0 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Fri, 10 Nov 2023 09:01:50 +0100 Subject: [PATCH 017/180] Fix release package build --- CONTRIBUTING.md | 5 ++++- package.json | 5 +++-- tools/ci/gcp/cloudbuild/cloudbuild.yaml | 12 +++++------- tools/ci/run/pkg-build-js.sh | 6 ------ tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh | 13 +++++++++++++ ...{pkg-build-jsonly.sh => pkg-build-wasm-wocpp.sh} | 1 - tools/ci/run/pkg-build-wasm.sh | 2 +- .../run/{pkg-init-js.sh => pkg-set-version-js.sh} | 2 +- 8 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh rename tools/ci/run/{pkg-build-jsonly.sh => pkg-build-wasm-wocpp.sh} (97%) mode change 100755 => 100644 rename tools/ci/run/{pkg-init-js.sh => pkg-set-version-js.sh} (87%) mode change 100755 => 100644 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bfb06c5ae..530d2eaeb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -152,6 +152,7 @@ If you used the above script to build the `WASM` version, the minified in order to create the npm package: ```sh +npm run pkg-set-version-js npm run pkg-build-js ``` @@ -160,7 +161,9 @@ npm run pkg-build-js **Note:** You can build the `npm` package without building the `WASM` version: ```sh -npm run pkg-build-jsonly +npm run pkg-build-wasm-wocpp +npm run pkg-set-version-js +npm run pkg-build-js ``` ### CI diff --git a/package.json b/package.json index d1da0a9bd..877635aaf 100644 --- a/package.json +++ b/package.json @@ -107,11 +107,12 @@ "pkg-build-desktop-clangformat": "./tools/ci/run/pkg-build-desktop-clangformat.sh", "pkg-build-desktop-clangtidy": "./tools/ci/run/pkg-build-desktop-clangtidy.sh", "pkg-build-wasm": "./tools/ci/run/pkg-build-wasm.sh", + "pkg-build-wasm-wocpp": "./tools/ci/run/pkg-build-wasm-wocpp.sh", + "pkg-build-wasm-wocpp-gsutil": "./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh", "pkg-build-ts": "./tools/ci/run/pkg-build-ts.sh", "pkg-rollup-js": "./tools/ci/run/pkg-rollup-js.sh", - "pkg-init-js": "./tools/ci/run/pkg-init-js.sh", + "pkg-set-version-js": "./tools/ci/run/pkg-set-version-js.sh", "pkg-build-js": "./tools/ci/run/pkg-build-js.sh", - "pkg-build-jsonly": "./tools/ci/run/pkg-build-jsonly.sh", "pkg-purge-js": "./tools/ci/run/pkg-purge-js.sh" }, "devDependencies": { diff --git a/tools/ci/gcp/cloudbuild/cloudbuild.yaml b/tools/ci/gcp/cloudbuild/cloudbuild.yaml index d5d1831f9..90e739124 100644 --- a/tools/ci/gcp/cloudbuild/cloudbuild.yaml +++ b/tools/ci/gcp/cloudbuild/cloudbuild.yaml @@ -111,12 +111,13 @@ steps: - |- if [ "$_ISRELEASE" == "true" ] then - echo "skipped" + ./tools/ci/pkg-build-wasm-wocpp-gsutil.sh $SHORT_SHA else source /root/.bashrc && ./tools/ci/run/pkg-build-wasm.sh - ./tools/ci/run/pkg-init-js.sh fi + ./tools/ci/run/pkg-set-version-js.sh + ./tools/ci/run/pkg-build-js.sh dir: /workspace - name: vizzu/vizzu-dev-wasm:0.9 @@ -130,10 +131,7 @@ steps: - |- if [ "$_ISRELEASE" == "true" ] then - mkdir -p dist - gsutil cp 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA/vizzu.min.js' 'dist/vizzu.min.js' - gsutil cp 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA/cvizzu.wasm' 'dist/cvizzu.wasm' - ./tools/ci/run/pkg-build-ts.sh + echo "skipped" else gsutil -m cp -r 'dist/*' 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA' for file in build/js/* @@ -210,7 +208,7 @@ steps: - '-c' - '-e' - |- - ./tools/ci/run/pkg-init-js.sh + ./tools/ci/run/pkg-set-version-js.sh npm config set registry=https://registry.npmjs.org/ npm config set //registry.npmjs.org/:_authToken=$$VIZZUHQ_NPM_API if [ "$_ISRELEASE" == "true" ] diff --git a/tools/ci/run/pkg-build-js.sh b/tools/ci/run/pkg-build-js.sh index 7a4483724..f4d236d17 100755 --- a/tools/ci/run/pkg-build-js.sh +++ b/tools/ci/run/pkg-build-js.sh @@ -4,11 +4,5 @@ set -e rm -rf build/js mkdir -p build/js -version="$1" -if [ -z "$version" ]; then - version=$(node ./test/integration/test.cjs -v --vizzu /dist/vizzu.min.js|awk -F'-' '{print $1}') - echo "version: $version" -fi -npm version $version --no-git-tag-version npm pack --pack-destination build/js tar -ztvf build/js/*.tgz diff --git a/tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh b/tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh new file mode 100644 index 000000000..31468d073 --- /dev/null +++ b/tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e + +rm -rf dist +mkdir -p dist + +SHORT_SHA="$1" +gsutil cp "gs://vizzu-lib-main-sha/lib-$SHORT_SHA/cvizzu.wasm" 'dist/cvizzu.wasm' +gsutil cp "gs://vizzu-lib-main-sha/lib-$SHORT_SHA/cvizzu.js" 'dist/cvizzu.js' + +npm run pkg-build-ts +npm run pkg-rollup-js diff --git a/tools/ci/run/pkg-build-jsonly.sh b/tools/ci/run/pkg-build-wasm-wocpp.sh old mode 100755 new mode 100644 similarity index 97% rename from tools/ci/run/pkg-build-jsonly.sh rename to tools/ci/run/pkg-build-wasm-wocpp.sh index 5445c6a87..33602ea5c --- a/tools/ci/run/pkg-build-jsonly.sh +++ b/tools/ci/run/pkg-build-wasm-wocpp.sh @@ -30,4 +30,3 @@ fi npm run pkg-build-ts npm run pkg-rollup-js -npm run pkg-build-js diff --git a/tools/ci/run/pkg-build-wasm.sh b/tools/ci/run/pkg-build-wasm.sh index 494683805..60f69144e 100755 --- a/tools/ci/run/pkg-build-wasm.sh +++ b/tools/ci/run/pkg-build-wasm.sh @@ -37,4 +37,4 @@ npm run test-unit-src # rollup js -./tools/ci/run/pkg-rollup-js.sh +npm run pkg-rollup-js diff --git a/tools/ci/run/pkg-init-js.sh b/tools/ci/run/pkg-set-version-js.sh old mode 100755 new mode 100644 similarity index 87% rename from tools/ci/run/pkg-init-js.sh rename to tools/ci/run/pkg-set-version-js.sh index 554fbd77b..7f829ab9e --- a/tools/ci/run/pkg-init-js.sh +++ b/tools/ci/run/pkg-set-version-js.sh @@ -9,4 +9,4 @@ node ./tools/ci/version.cjs $version sed -i '/\#\# \[Unreleased\]/,/\#\#\ \[/{//!d}' CHANGELOG.md sed -i '/\#\# \[Unreleased\]/d' CHANGELOG.md -npm run pkg-build-js $version +npm version $version --no-git-tag-version From ac1f85b40eb7a82c43c3bc8c3514cc4df666a672 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Fri, 10 Nov 2023 09:04:17 +0100 Subject: [PATCH 018/180] Fix changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2867316b7..1fae7a8a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## [Unreleased] -## [0.9.0] - 2023-11-09 +## [0.9.0] - 2023-11-10 ### Fixed From 4843769146e21361ec13aa1c9f409c2561cdcbf3 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Fri, 10 Nov 2023 09:16:59 +0100 Subject: [PATCH 019/180] Make ci scripts executable --- tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh | 0 tools/ci/run/pkg-build-wasm-wocpp.sh | 0 tools/ci/run/pkg-set-version-js.sh | 0 3 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh mode change 100644 => 100755 tools/ci/run/pkg-build-wasm-wocpp.sh mode change 100644 => 100755 tools/ci/run/pkg-set-version-js.sh diff --git a/tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh b/tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh old mode 100644 new mode 100755 diff --git a/tools/ci/run/pkg-build-wasm-wocpp.sh b/tools/ci/run/pkg-build-wasm-wocpp.sh old mode 100644 new mode 100755 diff --git a/tools/ci/run/pkg-set-version-js.sh b/tools/ci/run/pkg-set-version-js.sh old mode 100644 new mode 100755 From 2d6aebd679801e200a1d2a4473eec04190b6c902 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Fri, 10 Nov 2023 09:47:23 +0100 Subject: [PATCH 020/180] Fix cloudbuild config --- tools/ci/gcp/cloudbuild/cloudbuild.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci/gcp/cloudbuild/cloudbuild.yaml b/tools/ci/gcp/cloudbuild/cloudbuild.yaml index 90e739124..b12506dd2 100644 --- a/tools/ci/gcp/cloudbuild/cloudbuild.yaml +++ b/tools/ci/gcp/cloudbuild/cloudbuild.yaml @@ -111,7 +111,7 @@ steps: - |- if [ "$_ISRELEASE" == "true" ] then - ./tools/ci/pkg-build-wasm-wocpp-gsutil.sh $SHORT_SHA + ./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh $SHORT_SHA else source /root/.bashrc && ./tools/ci/run/pkg-build-wasm.sh From 6d8aa08a3d19d8a8e3d3c5809b9a59c4db17a4ca Mon Sep 17 00:00:00 2001 From: David Vegh Date: Fri, 10 Nov 2023 10:15:15 +0100 Subject: [PATCH 021/180] Fix docs deploy --- tools/ci/run/docs-deploy.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/ci/run/docs-deploy.sh b/tools/ci/run/docs-deploy.sh index a1698e1a3..f43be2fb2 100755 --- a/tools/ci/run/docs-deploy.sh +++ b/tools/ci/run/docs-deploy.sh @@ -2,5 +2,15 @@ set -e +rm -rf docs/assets/dist +mkdir -p docs/assets/dist +cp dist/vizzu.min.js docs/assets/dist/vizzu.min.js +cp dist/cvizzu.wasm docs/assets/dist/cvizzu.wasm + +rm -rf docs/showcases +cp -r vizzu-lib-doc/docs/showcases docs/ +rm -rf docs/readme +cp -r vizzu-lib-doc/docs/readme docs/ + source .venv/bin/activate python tools/docs/deploy.py From 5da51a869d0083dfa990b22e324e87fcda49e7c2 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Sat, 11 Nov 2023 22:02:58 +0100 Subject: [PATCH 022/180] Fix crash on split with no measure --- CHANGELOG.md | 3 ++ src/apps/weblib/cinterface.cpp | 3 +- src/chart/generator/plot.cpp | 6 ++-- test/integration/tests/fixes.json | 3 ++ test/integration/tests/fixes/42836788.mjs | 41 +++++++++++++++++++++++ 5 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 test/integration/tests/fixes/42836788.mjs diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fae7a8a8..eb574f54d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## [Unreleased] +### Fixed +- Fix crash on split with no measure + ## [0.9.0] - 2023-11-10 ### Fixed diff --git a/src/apps/weblib/cinterface.cpp b/src/apps/weblib/cinterface.cpp index 071cdc944..46ebe67d8 100644 --- a/src/apps/weblib/cinterface.cpp +++ b/src/apps/weblib/cinterface.cpp @@ -27,7 +27,8 @@ const char *vizzu_errorMessage(APIHandles::Exception exceptionPtr, { std::string_view type_info = typeinfo->name(); - if (type_info.starts_with("St")) { // std:: + if (type_info.starts_with("St") + || type_info.starts_with("NSt")) { // std:: constexpr auto valid = "abcdefghijklmnopqrstuvwxyz_"; auto last = type_info.find_last_of(valid); auto first = type_info.find_last_not_of(valid, last); diff --git a/src/chart/generator/plot.cpp b/src/chart/generator/plot.cpp index 763c7dd7e..50eb84dad 100644 --- a/src/chart/generator/plot.cpp +++ b/src/chart/generator/plot.cpp @@ -442,7 +442,7 @@ void Plot::addSeparation() ranges[i].include(size); if (static_cast(marker.enabled) > 0) anyEnabled[i] = true; - ++i; + ++i %= ranges.size(); } } @@ -455,7 +455,7 @@ void Plot::addSeparation() + (anyEnabled[i - 1] ? max.getMax() / 15 : 0); for (auto &bucketIt : subBuckets) { - int i = 0; + auto i = 0U; for (auto &itemIt : bucketIt.second) { auto &marker = markers[itemIt.second]; auto size = @@ -465,7 +465,7 @@ void Plot::addSeparation() auto newSize = aligner.getAligned(size); marker.setSizeBy(!options->isHorizontal(), newSize); - ++i; + ++i %= ranges.size(); } } } diff --git a/test/integration/tests/fixes.json b/test/integration/tests/fixes.json index 78d987c2c..810d15bc5 100644 --- a/test/integration/tests/fixes.json +++ b/test/integration/tests/fixes.json @@ -27,6 +27,9 @@ }, "41932946": { "refs": ["bf6b3a9"] + }, + "42836788": { + "refs": ["0f3c446"] } } } diff --git a/test/integration/tests/fixes/42836788.mjs b/test/integration/tests/fixes/42836788.mjs new file mode 100644 index 000000000..a2d039f9c --- /dev/null +++ b/test/integration/tests/fixes/42836788.mjs @@ -0,0 +1,41 @@ +const data = { + series: [ + { + name: 'Genres', + type: 'dimension', + values: ['Pop', 'Rock', 'Jazz', 'Metal', 'Pop', 'Rock', 'Metal', 'Rock', 'Jazz'] + }, + { + name: 'Kinds', + type: 'dimension', + values: [ + 'Hard', + 'Hard', + 'Hard', + 'Hard', + 'Smooth', + 'Smooth', + 'Smooth', + 'Experimental', + 'Experimental' + ] + } + ] +} + +const testSteps = [ + (chart) => { + chart.feature('tooltip', true) + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + x: 'Genres', + y: ['Kinds', 'Genres'], + color: 'Kinds', + lightness: 'Genres', + split: true + }) +] + +export default testSteps From 2b6c25cd7e2267c4aeaa9abafe1f0fd54c71c828 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 14 Nov 2023 14:26:52 +0100 Subject: [PATCH 023/180] Fixed refresh of chart when duration is 0. --- CHANGELOG.md | 4 ++ src/base/anim/control.cpp | 78 ++++++++++++--------- src/base/anim/control.h | 9 ++- test/integration/test_cases/test_cases.json | 42 +++++------ test/integration/tests/config_tests.json | 2 +- test/integration/tests/features.json | 12 ++-- test/integration/tests/fixes.json | 16 ++--- 7 files changed, 90 insertions(+), 73 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fae7a8a8..35626b072 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- Fixed refresh of chart when duration is 0. + ## [0.9.0] - 2023-11-10 ### Fixed diff --git a/src/base/anim/control.cpp b/src/base/anim/control.cpp index f635b5c5e..145948de5 100644 --- a/src/base/anim/control.cpp +++ b/src/base/anim/control.cpp @@ -9,8 +9,8 @@ namespace Anim Control::Control(Controllable &controlled) : controlled(controlled), - position(Duration(0.0)), - lastPosition(Duration(0.0)) + progress(0.0), + lastProgress(0.0) {} void Control::setOnFinish(OnFinish onFinish) @@ -31,50 +31,59 @@ void Control::seek(const std::string &value) seekTime(Duration(value)); } -void Control::seekProgress(double value) +Duration Control::getPosition() const { - seekTime(controlled.getDuration() * value); + return controlled.getDuration() * progress; } -double Control::getProgress() const +double Control::getProgress() const { return progress; } + +void Control::seekProgress(double value) { - auto duration = static_cast(controlled.getDuration()); - return duration == 0 ? 0 - : static_cast(position) / duration; + setProgress(value); + update(); } -void Control::seekTime(Duration pos) +void Control::setProgress(double value) { - position = pos; + progress = value; - if (position > controlled.getDuration()) { + if (progress > 1.0) { playState = PlayState::paused; - position = controlled.getDuration(); + progress = 1.0; } - else if (position < Duration(0)) { + else if (progress < 0.0) { playState = PlayState::paused; - position = Duration(0); + progress = 0.0; } +} - update(); +void Control::seekTime(Duration pos) +{ + seekProgress(positionToProgress(pos)); } -void Control::setSpeed(double speed) +void Control::setPosition(Duration pos) { - this->speed = std::max(0.0, speed); - update(); + setProgress(positionToProgress(pos)); } -bool Control::atStartPosition() const +double Control::positionToProgress(Duration pos) const { - return position == Duration(0.0); + return pos == Duration(0.0) ? 0.0 + : pos / controlled.getDuration(); } -bool Control::atEndPosition() const +void Control::setSpeed(double speed) { - return position == controlled.getDuration(); + this->speed = std::max(0.0, speed); + update(); } +bool Control::atStartPosition() const { return progress <= 0.0; } + +bool Control::atEndPosition() const { return progress >= 1.0; } + bool Control::atIntermediatePosition() const { return !atStartPosition() && !atEndPosition(); @@ -84,7 +93,7 @@ void Control::reset() { playState = PlayState::paused; direction = Direction::normal; - position = Duration(0.0); + progress = 0.0; speed = 1.0; actTime = TimePoint(); cancelled = false; @@ -95,7 +104,7 @@ void Control::stop() { playState = PlayState::paused; direction = Direction::normal; - position = Duration(0.0); + progress = 0.0; update(); } @@ -103,7 +112,7 @@ void Control::cancel() { playState = PlayState::paused; direction = Direction::normal; - position = Duration(0.0); + progress = 0.0; cancelled = true; update(); } @@ -114,22 +123,23 @@ void Control::update(const TimePoint &time) { if (actTime == TimePoint()) actTime = time; - const Duration step{time - std::exchange(actTime, time)}; auto running = playState == PlayState::running; - if (running && step != Duration(0.0)) { - if (direction == Direction::normal) - seekTime(position + step * speed); - else - seekTime(position - step * speed); + Duration timeStep{time - std::exchange(actTime, time)}; + + timeStep = timeStep * speed + * (direction == Direction::normal ? 1.0 : -1.0); + + if (running && timeStep != Duration(0.0)) { + setPosition(getPosition() + timeStep); } - if (lastPosition != position) { - controlled.setPosition(position); + if (lastProgress != progress) { + controlled.setPosition(getPosition()); if (onChange) onChange(); } - lastPosition = position; + lastProgress = progress; finish(running); } diff --git a/src/base/anim/control.h b/src/base/anim/control.h index 7a19341a3..209251855 100644 --- a/src/base/anim/control.h +++ b/src/base/anim/control.h @@ -42,7 +42,7 @@ class Control : Direction::normal; } - [[nodiscard]] Duration getPosition() const { return position; }; + [[nodiscard]] Duration getPosition() const; [[nodiscard]] double getProgress() const; [[nodiscard]] bool isRunning() const @@ -67,8 +67,8 @@ class Control bool cancelled{}; bool finished{}; Controllable &controlled; - Duration position; - Duration lastPosition; + double progress; + double lastProgress; PlayState playState{PlayState::paused}; Direction direction{Direction::normal}; double speed{1.0}; @@ -83,6 +83,9 @@ class Control private: void finish(bool preRun); + void setProgress(double value); + void setPosition(Duration pos); + double positionToProgress(Duration pos) const; }; } diff --git a/test/integration/test_cases/test_cases.json b/test/integration/test_cases/test_cases.json index 8cedbab16..733c910ad 100644 --- a/test/integration/test_cases/test_cases.json +++ b/test/integration/test_cases/test_cases.json @@ -2624,7 +2624,7 @@ "refs": ["7cd05d0"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c": { - "refs": ["c8f62ad"] + "refs": ["aa58cd6"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c": { "refs": ["114c191"] @@ -2633,16 +2633,16 @@ "refs": ["413a0b6"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c": { - "refs": ["f494157"] + "refs": ["21ba8df"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c": { - "refs": ["515d005"] + "refs": ["36aaf0c"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c": { - "refs": ["f65b40a"] + "refs": ["d98adfd"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c": { - "refs": ["69f24ed"] + "refs": ["491e4c5"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are": { "refs": ["607e9b6"] @@ -2888,7 +2888,7 @@ "refs": ["0e97ae5"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1": { - "refs": ["4d16f25"] + "refs": ["bade63b"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1": { "refs": ["709d8aa"] @@ -2903,13 +2903,13 @@ "refs": ["eabfaf1"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1": { - "refs": ["e56deba"] + "refs": ["0340d7d"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1": { - "refs": ["8022da8"] + "refs": ["b5805a4"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c": { - "refs": ["cc0150b"] + "refs": ["7b2811b"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c": { "refs": ["b86b85e"] @@ -2918,31 +2918,31 @@ "refs": ["4e3685b"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c": { - "refs": ["2f75591"] + "refs": ["a685430"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c": { "refs": ["7e15de2"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c": { - "refs": ["214a894"] + "refs": ["069824c"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter": { - "refs": ["4122b9d"] + "refs": ["4fc1907"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c": { "refs": ["fba58e2"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c": { - "refs": ["3bbfab5"] + "refs": ["7d928e8"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c": { - "refs": ["d54829b"] + "refs": ["2cae541"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c": { - "refs": ["7c50a47"] + "refs": ["cf2546b"] }, "ww_noFade/wNoFade_wPromotion/0_01_reorder": { - "refs": ["c8564f9"] + "refs": ["c43fb1d"] }, "ww_noFade/wNoFade_wPromotion/1_06b_are": { "refs": ["d9d6dc4"] @@ -3266,22 +3266,22 @@ "refs": ["4bdf36b"] }, "web_content/cookbook/interactive/mouse_scroll": { - "refs": ["2635eae"] + "refs": ["18a84af"] }, "web_content/cookbook/interactive/mouse_wheel_zoom": { - "refs": ["d7daaf8"] + "refs": ["aacefa4"] }, "web_content/cookbook/interactive/window_zoom": { - "refs": ["8f771de"] + "refs": ["4c082d0"] }, "web_content/cookbook/interactive/data_selector_combobox": { - "refs": ["76476bc"] + "refs": ["da8ec16"] }, "web_content/cookbook/interactive/filter_slider": { "refs": ["87b8197"] }, "web_content/cookbook/interactive/range_slider_zoom": { - "refs": ["25042ed"] + "refs": ["34f9d9c"] }, "web_content/cookbook/data_source/csv_load": { "refs": ["0be6e8c"] diff --git a/test/integration/tests/config_tests.json b/test/integration/tests/config_tests.json index 484f5398b..60c812a3e 100644 --- a/test/integration/tests/config_tests.json +++ b/test/integration/tests/config_tests.json @@ -41,7 +41,7 @@ "refs": ["3e1ffaf"] }, "dimension_axis_title": { - "refs": ["5a69c9e"] + "refs": ["d9bab94"] } } } diff --git a/test/integration/tests/features.json b/test/integration/tests/features.json index 26d9d6969..51f3e16f5 100644 --- a/test/integration/tests/features.json +++ b/test/integration/tests/features.json @@ -2,31 +2,31 @@ "suite": "/test/integration/tests/features", "test": { "aggregators/aggregators": { - "refs": ["91f1c04"] + "refs": ["bd61770"] }, "aggregators/aggregators_together": { "refs": ["0e6a340"] }, "axis_title_positioning": { - "refs": ["e5557cb"] + "refs": ["9fc11e0"] }, "data_input/object_records": { - "refs": ["752b04e"] + "refs": ["9d5443f"] }, "events/drawing_events": { "refs": ["c34d5dd"] }, "subtitle_caption": { - "refs": ["530ec05"] + "refs": ["5c04f20"] }, "cssproperties": { - "refs": ["0262a34"] + "refs": ["f3212ba"] }, "anim/speed": { "refs": ["7b07504"] }, "presets": { - "refs": ["3cbd2f7"] + "refs": ["55a7fb8"] } } } diff --git a/test/integration/tests/fixes.json b/test/integration/tests/fixes.json index 78d987c2c..a1bf191ce 100644 --- a/test/integration/tests/fixes.json +++ b/test/integration/tests/fixes.json @@ -2,28 +2,28 @@ "suite": "/test/integration/tests/fixes", "test": { "75": { - "refs": ["3bed349"] + "refs": ["e97e29b"] }, "91": { - "refs": ["fccd38b"] + "refs": ["f48ff6d"] }, "144": { - "refs": ["c06199c"] + "refs": ["259b701"] }, "146": { - "refs": ["a840080"] + "refs": ["f266a73"] }, "163": { - "refs": ["707a351"] + "refs": ["241592d"] }, "333": { - "refs": ["60a0fb5"] + "refs": ["22c1f69"] }, "32303048": { - "refs": ["2c73b0c"] + "refs": ["b5d95ea"] }, "38072036": { - "refs": ["2db1f1a"] + "refs": ["2ad1738"] }, "41932946": { "refs": ["bf6b3a9"] From 1cf78bbb863a2fd12ffa188d146e47cea95d8f7f Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 14 Nov 2023 16:16:13 +0100 Subject: [PATCH 024/180] clang tidy fuxes --- src/base/anim/control.cpp | 6 +----- src/base/anim/control.h | 6 +++--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/base/anim/control.cpp b/src/base/anim/control.cpp index 145948de5..c1ea386e7 100644 --- a/src/base/anim/control.cpp +++ b/src/base/anim/control.cpp @@ -7,11 +7,7 @@ namespace Anim { -Control::Control(Controllable &controlled) : - controlled(controlled), - progress(0.0), - lastProgress(0.0) -{} +Control::Control(Controllable &controlled) : controlled(controlled) {} void Control::setOnFinish(OnFinish onFinish) { diff --git a/src/base/anim/control.h b/src/base/anim/control.h index 209251855..a57ca8efc 100644 --- a/src/base/anim/control.h +++ b/src/base/anim/control.h @@ -67,8 +67,8 @@ class Control bool cancelled{}; bool finished{}; Controllable &controlled; - double progress; - double lastProgress; + double progress{0.0}; + double lastProgress{0.0}; PlayState playState{PlayState::paused}; Direction direction{Direction::normal}; double speed{1.0}; @@ -85,7 +85,7 @@ class Control void finish(bool preRun); void setProgress(double value); void setPosition(Duration pos); - double positionToProgress(Duration pos) const; + [[nodiscard]] double positionToProgress(Duration pos) const; }; } From c2369d23e399e659e32910ced856bb1d95415276 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Tue, 14 Nov 2023 15:33:38 +0100 Subject: [PATCH 025/180] do not require exact Python version --- tools/ci/run/init-py.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/ci/run/init-py.sh b/tools/ci/run/init-py.sh index 2c5c6cd1b..63b01eba8 100755 --- a/tools/ci/run/init-py.sh +++ b/tools/ci/run/init-py.sh @@ -2,7 +2,12 @@ set -e -python3.10 -m venv --copies ".venv" +if ! python3 -c 'import sys; assert sys.version_info >= (3,10)' > /dev/null; then + echo "Python 3.10+ is required" + exit 1 +fi + +python3 -m venv --copies ".venv" source .venv/bin/activate pip install pdm==2.8.0 pdm install -p tools/ci From 08c27f0da2df76032b3f352aaa6f33dce652e562 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Tue, 14 Nov 2023 16:25:44 +0100 Subject: [PATCH 026/180] set up markdown include --- tools/ci/pdm.lock | 749 ++++++++++++++++++---------------------- tools/ci/pyproject.toml | 8 +- tools/docs/mkdocs.yml | 2 + 3 files changed, 342 insertions(+), 417 deletions(-) diff --git a/tools/ci/pdm.lock b/tools/ci/pdm.lock index 681fb4898..b604039a1 100644 --- a/tools/ci/pdm.lock +++ b/tools/ci/pdm.lock @@ -2,36 +2,36 @@ # It is not intended for manual editing. [metadata] -groups = ["codequality", "docs", "packagetool"] +groups = ["default", "codequality", "docs", "packagetool"] cross_platform = true static_urls = false lock_version = "4.3" -content_hash = "sha256:ceeca44d36593f4174e275b0db2ef1c31225d4e7db57cdd20e6e211b2c91da96" +content_hash = "sha256:d3dcd6c65af60d8031413ea9b8118e5690213ea61d2d1030aa975156d5bc8fe1" [[package]] name = "astroid" -version = "2.15.8" -requires_python = ">=3.7.2" +version = "3.0.1" +requires_python = ">=3.8.0" summary = "An abstract syntax tree for Python with inference support." dependencies = [ - "lazy-object-proxy>=1.4.0", "typing-extensions>=4.0.0; python_version < \"3.11\"", - "wrapt<2,>=1.11; python_version < \"3.11\"", - "wrapt<2,>=1.14; python_version >= \"3.11\"", ] files = [ - {file = "astroid-2.15.8-py3-none-any.whl", hash = "sha256:1aa149fc5c6589e3d0ece885b4491acd80af4f087baafa3fb5203b113e68cd3c"}, - {file = "astroid-2.15.8.tar.gz", hash = "sha256:6c107453dffee9055899705de3c9ead36e74119cee151e5a9aaf7f0b0e020a6a"}, + {file = "astroid-3.0.1-py3-none-any.whl", hash = "sha256:7d5895c9825e18079c5aeac0572bc2e4c83205c95d416e0b4fee8bc361d2d9ca"}, + {file = "astroid-3.0.1.tar.gz", hash = "sha256:86b0bb7d7da0be1a7c4aedb7974e391b32d4ed89e33de6ed6902b4b15c97577e"}, ] [[package]] name = "babel" -version = "2.12.1" +version = "2.13.1" requires_python = ">=3.7" summary = "Internationalization utilities" +dependencies = [ + "setuptools; python_version >= \"3.12\"", +] files = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, + {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, + {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, ] [[package]] @@ -79,7 +79,7 @@ files = [ [[package]] name = "black" -version = "23.9.1" +version = "23.11.0" requires_python = ">=3.8" summary = "The uncompromising code formatter." dependencies = [ @@ -92,28 +92,24 @@ dependencies = [ "typing-extensions>=4.0.1; python_version < \"3.11\"", ] files = [ - {file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"}, - {file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"}, - {file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"}, - {file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"}, - {file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"}, - {file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"}, - {file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"}, - {file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"}, - {file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"}, - {file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"}, - {file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"}, - {file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"}, - {file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"}, + {file = "black-23.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dbea0bb8575c6b6303cc65017b46351dc5953eea5c0a59d7b7e3a2d2f433a911"}, + {file = "black-23.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:412f56bab20ac85927f3a959230331de5614aecda1ede14b373083f62ec24e6f"}, + {file = "black-23.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d136ef5b418c81660ad847efe0e55c58c8208b77a57a28a503a5f345ccf01394"}, + {file = "black-23.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:6c1cac07e64433f646a9a838cdc00c9768b3c362805afc3fce341af0e6a9ae9f"}, + {file = "black-23.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cf57719e581cfd48c4efe28543fea3d139c6b6f1238b3f0102a9c73992cbb479"}, + {file = "black-23.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:698c1e0d5c43354ec5d6f4d914d0d553a9ada56c85415700b81dc90125aac244"}, + {file = "black-23.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760415ccc20f9e8747084169110ef75d545f3b0932ee21368f63ac0fee86b221"}, + {file = "black-23.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:58e5f4d08a205b11800332920e285bd25e1a75c54953e05502052738fe16b3b5"}, + {file = "black-23.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:45aa1d4675964946e53ab81aeec7a37613c1cb71647b5394779e6efb79d6d187"}, + {file = "black-23.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c44b7211a3a0570cc097e81135faa5f261264f4dfaa22bd5ee2875a4e773bd6"}, + {file = "black-23.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9acad1451632021ee0d146c8765782a0c3846e0e0ea46659d7c4f89d9b212b"}, + {file = "black-23.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:fc7f6a44d52747e65a02558e1d807c82df1d66ffa80a601862040a43ec2e3142"}, + {file = "black-23.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7f622b6822f02bfaf2a5cd31fdb7cd86fcf33dab6ced5185c35f5db98260b055"}, + {file = "black-23.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:250d7e60f323fcfc8ea6c800d5eba12f7967400eb6c2d21ae85ad31c204fb1f4"}, + {file = "black-23.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5133f5507007ba08d8b7b263c7aa0f931af5ba88a29beacc4b2dc23fcefe9c06"}, + {file = "black-23.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:421f3e44aa67138ab1b9bfbc22ee3780b22fa5b291e4db8ab7eee95200726b07"}, + {file = "black-23.11.0-py3-none-any.whl", hash = "sha256:54caaa703227c6e0c87b76326d0862184729a69b73d3b7305b6288e1d830067e"}, + {file = "black-23.11.0.tar.gz", hash = "sha256:4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05"}, ] [[package]] @@ -288,7 +284,7 @@ files = [ [[package]] name = "cssbeautifier" -version = "1.14.9" +version = "1.14.11" summary = "CSS unobfuscator and beautifier." dependencies = [ "editorconfig>=0.12.2", @@ -296,7 +292,7 @@ dependencies = [ "six>=1.13.0", ] files = [ - {file = "cssbeautifier-1.14.9.tar.gz", hash = "sha256:2da432472f68170eb854aff97b16a24721f5090ee36af2e31199590a89e7f71f"}, + {file = "cssbeautifier-1.14.11.tar.gz", hash = "sha256:40544c2b62bbcb64caa5e7f37a02df95654e5ce1bcacadac4ca1f3dc89c31513"}, ] [[package]] @@ -387,12 +383,12 @@ files = [ [[package]] name = "importlib-resources" -version = "6.1.0" +version = "6.1.1" requires_python = ">=3.8" summary = "Read resources from Python packages" files = [ - {file = "importlib_resources-6.1.0-py3-none-any.whl", hash = "sha256:aa50258bbfa56d4e33fbd8aa3ef48ded10d1735f11532b8df95388cc6bdb7e83"}, - {file = "importlib_resources-6.1.0.tar.gz", hash = "sha256:9d48dcccc213325e810fd723e7fbb45ccb39f6cf5c31f00cf2b965f5f10f3cb9"}, + {file = "importlib_resources-6.1.1-py3-none-any.whl", hash = "sha256:e8bf90d8213b486f428c9c39714b920041cb02c184686a3dee24905aaa8105d6"}, + {file = "importlib_resources-6.1.1.tar.gz", hash = "sha256:3893a00122eafde6894c59914446a512f728a0c1a45f9bb9b63721b6bacf0b4a"}, ] [[package]] @@ -430,58 +426,14 @@ files = [ [[package]] name = "jsbeautifier" -version = "1.14.9" +version = "1.14.11" summary = "JavaScript unobfuscator and beautifier." dependencies = [ "editorconfig>=0.12.2", "six>=1.13.0", ] files = [ - {file = "jsbeautifier-1.14.9.tar.gz", hash = "sha256:c738ebc36b47bd94e4ca6dd17a9004c3cc74edad582ca1d60e0e5d5945a63cb9"}, -] - -[[package]] -name = "lazy-object-proxy" -version = "1.9.0" -requires_python = ">=3.7" -summary = "A fast and thorough lazy object proxy." -files = [ - {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, + {file = "jsbeautifier-1.14.11.tar.gz", hash = "sha256:6b632581ea60dd1c133cd25a48ad187b4b91f526623c4b0fb5443ef805250505"}, ] [[package]] @@ -594,6 +546,19 @@ files = [ {file = "Markdown-3.4.4.tar.gz", hash = "sha256:225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6"}, ] +[[package]] +name = "markdown-include" +version = "0.8.1" +requires_python = ">=3.7" +summary = "A Python-Markdown extension which provides an 'include' function" +dependencies = [ + "markdown>=3.0", +] +files = [ + {file = "markdown-include-0.8.1.tar.gz", hash = "sha256:1d0623e0fc2757c38d35df53752768356162284259d259c486b4ab6285cdbbe3"}, + {file = "markdown_include-0.8.1-py3-none-any.whl", hash = "sha256:32f0635b9cfef46997b307e2430022852529f7a5b87c0075c504283e7cc7db53"}, +] + [[package]] name = "markdown-it-py" version = "3.0.0" @@ -787,17 +752,17 @@ files = [ [[package]] name = "mdformat-frontmatter" -version = "2.0.1" +version = "2.0.8" requires_python = ">=3.7" summary = "An mdformat plugin for parsing / ignoring frontmatter." dependencies = [ - "mdformat<0.8.0,>=0.7.0", - "mdit-py-plugins", + "mdformat<0.8.0,>=0.7.16", + "mdit-py-plugins>=0.4.0", "ruamel-yaml", ] files = [ - {file = "mdformat_frontmatter-2.0.1-py3-none-any.whl", hash = "sha256:354143935a103d6049239f5c2df288c80d0fbea8f7dd9e535ccc180e8c5aa235"}, - {file = "mdformat_frontmatter-2.0.1.tar.gz", hash = "sha256:a05c188ba2f483ab434b4e46e312c1a2ccf145e9ab95e3f493f8967c182ffd5c"}, + {file = "mdformat_frontmatter-2.0.8-py3-none-any.whl", hash = "sha256:577396695af96ad66dff1ff781284ff3764a10be3ab8659f2ef842ab42264ebb"}, + {file = "mdformat_frontmatter-2.0.8.tar.gz", hash = "sha256:c11190ae3f9c91ada78fbd820f5b221631b520484e0b644715aa0f6ed7f097ed"}, ] [[package]] @@ -892,16 +857,17 @@ files = [ [[package]] name = "mike" -version = "1.2.0.dev0" +version = "2.1.0.dev0" git = "https://github.com/jimporter/mike.git" ref = "master" -revision = "f0522f245e64687dd18384fbd86b721175711474" +revision = "076a4af3270a448f6aeb880c9c6c2fc0d80f603f" summary = "Manage multiple versions of your MkDocs-powered documentation" dependencies = [ "importlib-metadata", "importlib-resources", "jinja2>=2.7", "mkdocs>=1.0", + "pyparsing>=3.0", "pyyaml>=5.1", "verspec", ] @@ -973,7 +939,7 @@ files = [ [[package]] name = "mkdocs-material" -version = "9.4.3" +version = "9.4.8" requires_python = ">=3.8" summary = "Documentation that simply works" dependencies = [ @@ -981,7 +947,7 @@ dependencies = [ "colorama~=0.4", "jinja2~=3.0", "markdown~=3.2", - "mkdocs-material-extensions~=1.2", + "mkdocs-material-extensions~=1.3", "mkdocs>=1.5.3,~=1.5", "paginate~=0.5", "pygments~=2.16", @@ -990,18 +956,18 @@ dependencies = [ "requests~=2.26", ] files = [ - {file = "mkdocs_material-9.4.3-py3-none-any.whl", hash = "sha256:3274a47a4e55a541b25bd8fa4937cf3f3c82a51763453511661e0052062758b9"}, - {file = "mkdocs_material-9.4.3.tar.gz", hash = "sha256:5c9abc3f6ba8f88be1f9f13df23d695ca4dddbdd8a3538e4e6279c055c3936bc"}, + {file = "mkdocs_material-9.4.8-py3-none-any.whl", hash = "sha256:8b20f6851bddeef37dced903893cd176cf13a21a482e97705a103c45f06ce9b9"}, + {file = "mkdocs_material-9.4.8.tar.gz", hash = "sha256:f0c101453e8bc12b040e8b64ca39a405d950d8402609b1378cc2b98976e74b5f"}, ] [[package]] name = "mkdocs-material-extensions" -version = "1.2" -requires_python = ">=3.7" +version = "1.3" +requires_python = ">=3.8" summary = "Extension pack for Python Markdown and MkDocs Material." files = [ - {file = "mkdocs_material_extensions-1.2-py3-none-any.whl", hash = "sha256:c767bd6d6305f6420a50f0b541b0c9966d52068839af97029be14443849fb8a1"}, - {file = "mkdocs_material_extensions-1.2.tar.gz", hash = "sha256:27e2d1ed2d031426a6e10d5ea06989d67e90bb02acd588bc5673106b5ee5eedf"}, + {file = "mkdocs_material_extensions-1.3-py3-none-any.whl", hash = "sha256:0297cc48ba68a9fdd1ef3780a3b41b534b0d0df1d1181a44676fda5f464eeadc"}, + {file = "mkdocs_material_extensions-1.3.tar.gz", hash = "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd"}, ] [[package]] @@ -1083,7 +1049,7 @@ files = [ [[package]] name = "mypy" -version = "1.5.1" +version = "1.7.0" requires_python = ">=3.8" summary = "Optional static typing for Python" dependencies = [ @@ -1092,33 +1058,33 @@ dependencies = [ "typing-extensions>=4.1.0", ] files = [ - {file = "mypy-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70"}, - {file = "mypy-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0"}, - {file = "mypy-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12"}, - {file = "mypy-1.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d"}, - {file = "mypy-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25"}, - {file = "mypy-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4"}, - {file = "mypy-1.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4"}, - {file = "mypy-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243"}, - {file = "mypy-1.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275"}, - {file = "mypy-1.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315"}, - {file = "mypy-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb"}, - {file = "mypy-1.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373"}, - {file = "mypy-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161"}, - {file = "mypy-1.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a"}, - {file = "mypy-1.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1"}, - {file = "mypy-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65"}, - {file = "mypy-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160"}, - {file = "mypy-1.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2"}, - {file = "mypy-1.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb"}, - {file = "mypy-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f"}, - {file = "mypy-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a"}, - {file = "mypy-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14"}, - {file = "mypy-1.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb"}, - {file = "mypy-1.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693"}, - {file = "mypy-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770"}, - {file = "mypy-1.5.1-py3-none-any.whl", hash = "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5"}, - {file = "mypy-1.5.1.tar.gz", hash = "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92"}, + {file = "mypy-1.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5da84d7bf257fd8f66b4f759a904fd2c5a765f70d8b52dde62b521972a0a2357"}, + {file = "mypy-1.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a3637c03f4025f6405737570d6cbfa4f1400eb3c649317634d273687a09ffc2f"}, + {file = "mypy-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b633f188fc5ae1b6edca39dae566974d7ef4e9aaaae00bc36efe1f855e5173ac"}, + {file = "mypy-1.7.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d6ed9a3997b90c6f891138e3f83fb8f475c74db4ccaa942a1c7bf99e83a989a1"}, + {file = "mypy-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:1fe46e96ae319df21359c8db77e1aecac8e5949da4773c0274c0ef3d8d1268a9"}, + {file = "mypy-1.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:df67fbeb666ee8828f675fee724cc2cbd2e4828cc3df56703e02fe6a421b7401"}, + {file = "mypy-1.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a79cdc12a02eb526d808a32a934c6fe6df07b05f3573d210e41808020aed8b5d"}, + {file = "mypy-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f65f385a6f43211effe8c682e8ec3f55d79391f70a201575def73d08db68ead1"}, + {file = "mypy-1.7.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e81ffd120ee24959b449b647c4b2fbfcf8acf3465e082b8d58fd6c4c2b27e46"}, + {file = "mypy-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:f29386804c3577c83d76520abf18cfcd7d68264c7e431c5907d250ab502658ee"}, + {file = "mypy-1.7.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:87c076c174e2c7ef8ab416c4e252d94c08cd4980a10967754f91571070bf5fbe"}, + {file = "mypy-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6cb8d5f6d0fcd9e708bb190b224089e45902cacef6f6915481806b0c77f7786d"}, + {file = "mypy-1.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93e76c2256aa50d9c82a88e2f569232e9862c9982095f6d54e13509f01222fc"}, + {file = "mypy-1.7.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cddee95dea7990e2215576fae95f6b78a8c12f4c089d7e4367564704e99118d3"}, + {file = "mypy-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:d01921dbd691c4061a3e2ecdbfbfad029410c5c2b1ee88946bf45c62c6c91210"}, + {file = "mypy-1.7.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:185cff9b9a7fec1f9f7d8352dff8a4c713b2e3eea9c6c4b5ff7f0edf46b91e41"}, + {file = "mypy-1.7.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7b1e399c47b18feb6f8ad4a3eef3813e28c1e871ea7d4ea5d444b2ac03c418"}, + {file = "mypy-1.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc9fe455ad58a20ec68599139ed1113b21f977b536a91b42bef3ffed5cce7391"}, + {file = "mypy-1.7.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d0fa29919d2e720c8dbaf07d5578f93d7b313c3e9954c8ec05b6d83da592e5d9"}, + {file = "mypy-1.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:2b53655a295c1ed1af9e96b462a736bf083adba7b314ae775563e3fb4e6795f5"}, + {file = "mypy-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1b06b4b109e342f7dccc9efda965fc3970a604db70f8560ddfdee7ef19afb05"}, + {file = "mypy-1.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bf7a2f0a6907f231d5e41adba1a82d7d88cf1f61a70335889412dec99feeb0f8"}, + {file = "mypy-1.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:551d4a0cdcbd1d2cccdcc7cb516bb4ae888794929f5b040bb51aae1846062901"}, + {file = "mypy-1.7.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:55d28d7963bef00c330cb6461db80b0b72afe2f3c4e2963c99517cf06454e665"}, + {file = "mypy-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:870bd1ffc8a5862e593185a4c169804f2744112b4a7c55b93eb50f48e7a77010"}, + {file = "mypy-1.7.0-py3-none-any.whl", hash = "sha256:96650d9a4c651bc2a4991cf46f100973f656d69edc7faf91844e87fe627f7e96"}, + {file = "mypy-1.7.0.tar.gz", hash = "sha256:1e280b5697202efa698372d2f39e9a6713a0395a756b1c6bd48995f8d72690dc"}, ] [[package]] @@ -1190,64 +1156,64 @@ files = [ [[package]] name = "pillow" -version = "10.0.1" +version = "10.1.0" requires_python = ">=3.8" summary = "Python Imaging Library (Fork)" files = [ - {file = "Pillow-10.0.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:8f06be50669087250f319b706decf69ca71fdecd829091a37cc89398ca4dc17a"}, - {file = "Pillow-10.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50bd5f1ebafe9362ad622072a1d2f5850ecfa44303531ff14353a4059113b12d"}, - {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6a90167bcca1216606223a05e2cf991bb25b14695c518bc65639463d7db722d"}, - {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f11c9102c56ffb9ca87134bd025a43d2aba3f1155f508eff88f694b33a9c6d19"}, - {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:186f7e04248103482ea6354af6d5bcedb62941ee08f7f788a1c7707bc720c66f"}, - {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0462b1496505a3462d0f35dc1c4d7b54069747d65d00ef48e736acda2c8cbdff"}, - {file = "Pillow-10.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d889b53ae2f030f756e61a7bff13684dcd77e9af8b10c6048fb2c559d6ed6eaf"}, - {file = "Pillow-10.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:552912dbca585b74d75279a7570dd29fa43b6d93594abb494ebb31ac19ace6bd"}, - {file = "Pillow-10.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:787bb0169d2385a798888e1122c980c6eff26bf941a8ea79747d35d8f9210ca0"}, - {file = "Pillow-10.0.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fd2a5403a75b54661182b75ec6132437a181209b901446ee5724b589af8edef1"}, - {file = "Pillow-10.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2d7e91b4379f7a76b31c2dda84ab9e20c6220488e50f7822e59dac36b0cd92b1"}, - {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19e9adb3f22d4c416e7cd79b01375b17159d6990003633ff1d8377e21b7f1b21"}, - {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93139acd8109edcdeffd85e3af8ae7d88b258b3a1e13a038f542b79b6d255c54"}, - {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:92a23b0431941a33242b1f0ce6c88a952e09feeea9af4e8be48236a68ffe2205"}, - {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:cbe68deb8580462ca0d9eb56a81912f59eb4542e1ef8f987405e35a0179f4ea2"}, - {file = "Pillow-10.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:522ff4ac3aaf839242c6f4e5b406634bfea002469656ae8358644fc6c4856a3b"}, - {file = "Pillow-10.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:84efb46e8d881bb06b35d1d541aa87f574b58e87f781cbba8d200daa835b42e1"}, - {file = "Pillow-10.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:898f1d306298ff40dc1b9ca24824f0488f6f039bc0e25cfb549d3195ffa17088"}, - {file = "Pillow-10.0.1-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:bcf1207e2f2385a576832af02702de104be71301c2696d0012b1b93fe34aaa5b"}, - {file = "Pillow-10.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5d6c9049c6274c1bb565021367431ad04481ebb54872edecfcd6088d27edd6ed"}, - {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28444cb6ad49726127d6b340217f0627abc8732f1194fd5352dec5e6a0105635"}, - {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de596695a75496deb3b499c8c4f8e60376e0516e1a774e7bc046f0f48cd620ad"}, - {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:2872f2d7846cf39b3dbff64bc1104cc48c76145854256451d33c5faa55c04d1a"}, - {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:4ce90f8a24e1c15465048959f1e94309dfef93af272633e8f37361b824532e91"}, - {file = "Pillow-10.0.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ee7810cf7c83fa227ba9125de6084e5e8b08c59038a7b2c9045ef4dde61663b4"}, - {file = "Pillow-10.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b1be1c872b9b5fcc229adeadbeb51422a9633abd847c0ff87dc4ef9bb184ae08"}, - {file = "Pillow-10.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:98533fd7fa764e5f85eebe56c8e4094db912ccbe6fbf3a58778d543cadd0db08"}, - {file = "Pillow-10.0.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:764d2c0daf9c4d40ad12fbc0abd5da3af7f8aa11daf87e4fa1b834000f4b6b0a"}, - {file = "Pillow-10.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fcb59711009b0168d6ee0bd8fb5eb259c4ab1717b2f538bbf36bacf207ef7a68"}, - {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:697a06bdcedd473b35e50a7e7506b1d8ceb832dc238a336bd6f4f5aa91a4b500"}, - {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f665d1e6474af9f9da5e86c2a3a2d2d6204e04d5af9c06b9d42afa6ebde3f21"}, - {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:2fa6dd2661838c66f1a5473f3b49ab610c98a128fc08afbe81b91a1f0bf8c51d"}, - {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:3a04359f308ebee571a3127fdb1bd01f88ba6f6fb6d087f8dd2e0d9bff43f2a7"}, - {file = "Pillow-10.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:723bd25051454cea9990203405fa6b74e043ea76d4968166dfd2569b0210886a"}, - {file = "Pillow-10.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:71671503e3015da1b50bd18951e2f9daf5b6ffe36d16f1eb2c45711a301521a7"}, - {file = "Pillow-10.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:44e7e4587392953e5e251190a964675f61e4dae88d1e6edbe9f36d6243547ff3"}, - {file = "Pillow-10.0.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:3855447d98cced8670aaa63683808df905e956f00348732448b5a6df67ee5849"}, - {file = "Pillow-10.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ed2d9c0704f2dc4fa980b99d565c0c9a543fe5101c25b3d60488b8ba80f0cce1"}, - {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5bb289bb835f9fe1a1e9300d011eef4d69661bb9b34d5e196e5e82c4cb09b37"}, - {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a0d3e54ab1df9df51b914b2233cf779a5a10dfd1ce339d0421748232cea9876"}, - {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:2cc6b86ece42a11f16f55fe8903595eff2b25e0358dec635d0a701ac9586588f"}, - {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:ca26ba5767888c84bf5a0c1a32f069e8204ce8c21d00a49c90dabeba00ce0145"}, - {file = "Pillow-10.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f0b4b06da13275bc02adfeb82643c4a6385bd08d26f03068c2796f60d125f6f2"}, - {file = "Pillow-10.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bc2e3069569ea9dbe88d6b8ea38f439a6aad8f6e7a6283a38edf61ddefb3a9bf"}, - {file = "Pillow-10.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:8b451d6ead6e3500b6ce5c7916a43d8d8d25ad74b9102a629baccc0808c54971"}, - {file = "Pillow-10.0.1-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:32bec7423cdf25c9038fef614a853c9d25c07590e1a870ed471f47fb80b244db"}, - {file = "Pillow-10.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7cf63d2c6928b51d35dfdbda6f2c1fddbe51a6bc4a9d4ee6ea0e11670dd981e"}, - {file = "Pillow-10.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f6d3d4c905e26354e8f9d82548475c46d8e0889538cb0657aa9c6f0872a37aa4"}, - {file = "Pillow-10.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:847e8d1017c741c735d3cd1883fa7b03ded4f825a6e5fcb9378fd813edee995f"}, - {file = "Pillow-10.0.1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:7f771e7219ff04b79e231d099c0a28ed83aa82af91fd5fa9fdb28f5b8d5addaf"}, - {file = "Pillow-10.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459307cacdd4138edee3875bbe22a2492519e060660eaf378ba3b405d1c66317"}, - {file = "Pillow-10.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b059ac2c4c7a97daafa7dc850b43b2d3667def858a4f112d1aa082e5c3d6cf7d"}, - {file = "Pillow-10.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d6caf3cd38449ec3cd8a68b375e0c6fe4b6fd04edb6c9766b55ef84a6e8ddf2d"}, - {file = "Pillow-10.0.1.tar.gz", hash = "sha256:d72967b06be9300fed5cfbc8b5bafceec48bf7cdc7dab66b1d2549035287191d"}, + {file = "Pillow-10.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106"}, + {file = "Pillow-10.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6932a7652464746fcb484f7fc3618e6503d2066d853f68a4bd97193a3996e273"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f63b5a68daedc54c7c3464508d8c12075e56dcfbd42f8c1bf40169061ae666"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0949b55eb607898e28eaccb525ab104b2d86542a85c74baf3a6dc24002edec2"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ae88931f93214777c7a3aa0a8f92a683f83ecde27f65a45f95f22d289a69e593"}, + {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b0eb01ca85b2361b09480784a7931fc648ed8b7836f01fb9241141b968feb1db"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27b5997bdd2eb9fb199982bb7eb6164db0426904020dc38c10203187ae2ff2f"}, + {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7df5608bc38bd37ef585ae9c38c9cd46d7c81498f086915b0f97255ea60c2818"}, + {file = "Pillow-10.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:41f67248d92a5e0a2076d3517d8d4b1e41a97e2df10eb8f93106c89107f38b57"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1fb29c07478e6c06a46b867e43b0bcdb241b44cc52be9bc25ce5944eed4648e7"}, + {file = "Pillow-10.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2cdc65a46e74514ce742c2013cd4a2d12e8553e3a2563c64879f7c7e4d28bce7"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50d08cd0a2ecd2a8657bd3d82c71efd5a58edb04d9308185d66c3a5a5bed9610"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:062a1610e3bc258bff2328ec43f34244fcec972ee0717200cb1425214fe5b839"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:61f1a9d247317fa08a308daaa8ee7b3f760ab1809ca2da14ecc88ae4257d6172"}, + {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a646e48de237d860c36e0db37ecaecaa3619e6f3e9d5319e527ccbc8151df061"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:47e5bf85b80abc03be7455c95b6d6e4896a62f6541c1f2ce77a7d2bb832af262"}, + {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a92386125e9ee90381c3369f57a2a50fa9e6aa8b1cf1d9c4b200d41a7dd8e992"}, + {file = "Pillow-10.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0f7c276c05a9767e877a0b4c5050c8bee6a6d960d7f0c11ebda6b99746068c2a"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:a89b8312d51715b510a4fe9fc13686283f376cfd5abca8cd1c65e4c76e21081b"}, + {file = "Pillow-10.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:00f438bb841382b15d7deb9a05cc946ee0f2c352653c7aa659e75e592f6fa17d"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d929a19f5469b3f4df33a3df2983db070ebb2088a1e145e18facbc28cae5b27"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a92109192b360634a4489c0c756364c0c3a2992906752165ecb50544c251312"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:0248f86b3ea061e67817c47ecbe82c23f9dd5d5226200eb9090b3873d3ca32de"}, + {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9882a7451c680c12f232a422730f986a1fcd808da0fd428f08b671237237d651"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b"}, + {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f"}, + {file = "Pillow-10.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793"}, + {file = "Pillow-10.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01"}, + {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80"}, + {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212"}, + {file = "Pillow-10.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099"}, + {file = "Pillow-10.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34"}, + {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28"}, + {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2"}, + {file = "Pillow-10.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4"}, + {file = "Pillow-10.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:883f216eac8712b83a63f41b76ddfb7b2afab1b74abbb413c5df6680f071a6b9"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b920e4d028f6442bea9a75b7491c063f0b9a3972520731ed26c83e254302eb1e"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c41d960babf951e01a49c9746f92c5a7e0d939d1652d7ba30f6b3090f27e412"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1fafabe50a6977ac70dfe829b2d5735fd54e190ab55259ec8aea4aaea412fa0b"}, + {file = "Pillow-10.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b834f4b16173e5b92ab6566f0473bfb09f939ba14b23b8da1f54fa63e4b623f"}, + {file = "Pillow-10.1.0.tar.gz", hash = "sha256:e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38"}, ] [[package]] @@ -1272,14 +1238,15 @@ files = [ [[package]] name = "pylint" -version = "2.17.7" -requires_python = ">=3.7.2" +version = "3.0.2" +requires_python = ">=3.8.0" summary = "python code static checker" dependencies = [ - "astroid<=2.17.0-dev0,>=2.15.8", + "astroid<=3.1.0-dev0,>=3.0.1", "colorama>=0.4.5; sys_platform == \"win32\"", "dill>=0.2; python_version < \"3.11\"", "dill>=0.3.6; python_version >= \"3.11\"", + "dill>=0.3.7; python_version >= \"3.12\"", "isort<6,>=4.2.5", "mccabe<0.8,>=0.6", "platformdirs>=2.2.0", @@ -1287,13 +1254,13 @@ dependencies = [ "tomlkit>=0.10.1", ] files = [ - {file = "pylint-2.17.7-py3-none-any.whl", hash = "sha256:27a8d4c7ddc8c2f8c18aa0050148f89ffc09838142193fdbe98f172781a3ff87"}, - {file = "pylint-2.17.7.tar.gz", hash = "sha256:f4fcac7ae74cfe36bc8451e931d8438e4a476c20314b1101c458ad0f05191fad"}, + {file = "pylint-3.0.2-py3-none-any.whl", hash = "sha256:60ed5f3a9ff8b61839ff0348b3624ceeb9e6c2a92c514d81c9cc273da3b6bcda"}, + {file = "pylint-3.0.2.tar.gz", hash = "sha256:0d4c286ef6d2f66c8bfb527a7f8a629009e42c99707dec821a03e1b51a4c1496"}, ] [[package]] name = "pymdown-extensions" -version = "10.3" +version = "10.4" requires_python = ">=3.8" summary = "Extension pack for Python Markdown." dependencies = [ @@ -1301,8 +1268,18 @@ dependencies = [ "pyyaml", ] files = [ - {file = "pymdown_extensions-10.3-py3-none-any.whl", hash = "sha256:77a82c621c58a83efc49a389159181d570e370fff9f810d3a4766a75fc678b66"}, - {file = "pymdown_extensions-10.3.tar.gz", hash = "sha256:94a0d8a03246712b64698af223848fd80aaf1ae4c4be29c8c61939b0467b5722"}, + {file = "pymdown_extensions-10.4-py3-none-any.whl", hash = "sha256:cfc28d6a09d19448bcbf8eee3ce098c7d17ff99f7bd3069db4819af181212037"}, + {file = "pymdown_extensions-10.4.tar.gz", hash = "sha256:bc46f11749ecd4d6b71cf62396104b4a200bad3498cb0f5dad1b8502fe461a35"}, +] + +[[package]] +name = "pyparsing" +version = "3.1.1" +requires_python = ">=3.6.8" +summary = "pyparsing module - Classes and methods to define and execute parsing grammars" +files = [ + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, ] [[package]] @@ -1414,98 +1391,98 @@ files = [ [[package]] name = "regex" -version = "2023.8.8" -requires_python = ">=3.6" +version = "2023.10.3" +requires_python = ">=3.7" summary = "Alternative regular expression module, to replace re." files = [ - {file = "regex-2023.8.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:88900f521c645f784260a8d346e12a1590f79e96403971241e64c3a265c8ecdb"}, - {file = "regex-2023.8.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3611576aff55918af2697410ff0293d6071b7e00f4b09e005d614686ac4cd57c"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8a0ccc8f2698f120e9e5742f4b38dc944c38744d4bdfc427616f3a163dd9de5"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c662a4cbdd6280ee56f841f14620787215a171c4e2d1744c9528bed8f5816c96"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf0633e4a1b667bfe0bb10b5e53fe0d5f34a6243ea2530eb342491f1adf4f739"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:551ad543fa19e94943c5b2cebc54c73353ffff08228ee5f3376bd27b3d5b9800"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54de2619f5ea58474f2ac211ceea6b615af2d7e4306220d4f3fe690c91988a61"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5ec4b3f0aebbbe2fc0134ee30a791af522a92ad9f164858805a77442d7d18570"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3ae646c35cb9f820491760ac62c25b6d6b496757fda2d51be429e0e7b67ae0ab"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ca339088839582d01654e6f83a637a4b8194d0960477b9769d2ff2cfa0fa36d2"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:d9b6627408021452dcd0d2cdf8da0534e19d93d070bfa8b6b4176f99711e7f90"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:bd3366aceedf274f765a3a4bc95d6cd97b130d1dda524d8f25225d14123c01db"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7aed90a72fc3654fba9bc4b7f851571dcc368120432ad68b226bd593f3f6c0b7"}, - {file = "regex-2023.8.8-cp310-cp310-win32.whl", hash = "sha256:80b80b889cb767cc47f31d2b2f3dec2db8126fbcd0cff31b3925b4dc6609dcdb"}, - {file = "regex-2023.8.8-cp310-cp310-win_amd64.whl", hash = "sha256:b82edc98d107cbc7357da7a5a695901b47d6eb0420e587256ba3ad24b80b7d0b"}, - {file = "regex-2023.8.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1e7d84d64c84ad97bf06f3c8cb5e48941f135ace28f450d86af6b6512f1c9a71"}, - {file = "regex-2023.8.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ce0f9fbe7d295f9922c0424a3637b88c6c472b75eafeaff6f910494a1fa719ef"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06c57e14ac723b04458df5956cfb7e2d9caa6e9d353c0b4c7d5d54fcb1325c46"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e7a9aaa5a1267125eef22cef3b63484c3241aaec6f48949b366d26c7250e0357"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b7408511fca48a82a119d78a77c2f5eb1b22fe88b0d2450ed0756d194fe7a9a"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14dc6f2d88192a67d708341f3085df6a4f5a0c7b03dec08d763ca2cd86e9f559"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48c640b99213643d141550326f34f0502fedb1798adb3c9eb79650b1ecb2f177"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0085da0f6c6393428bf0d9c08d8b1874d805bb55e17cb1dfa5ddb7cfb11140bf"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:964b16dcc10c79a4a2be9f1273fcc2684a9eedb3906439720598029a797b46e6"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7ce606c14bb195b0e5108544b540e2c5faed6843367e4ab3deb5c6aa5e681208"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:40f029d73b10fac448c73d6eb33d57b34607f40116e9f6e9f0d32e9229b147d7"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3b8e6ea6be6d64104d8e9afc34c151926f8182f84e7ac290a93925c0db004bfd"}, - {file = "regex-2023.8.8-cp311-cp311-win32.whl", hash = "sha256:942f8b1f3b223638b02df7df79140646c03938d488fbfb771824f3d05fc083a8"}, - {file = "regex-2023.8.8-cp311-cp311-win_amd64.whl", hash = "sha256:51d8ea2a3a1a8fe4f67de21b8b93757005213e8ac3917567872f2865185fa7fb"}, - {file = "regex-2023.8.8-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e951d1a8e9963ea51efd7f150450803e3b95db5939f994ad3d5edac2b6f6e2b4"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:704f63b774218207b8ccc6c47fcef5340741e5d839d11d606f70af93ee78e4d4"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22283c769a7b01c8ac355d5be0715bf6929b6267619505e289f792b01304d898"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91129ff1bb0619bc1f4ad19485718cc623a2dc433dff95baadbf89405c7f6b57"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de35342190deb7b866ad6ba5cbcccb2d22c0487ee0cbb251efef0843d705f0d4"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b993b6f524d1e274a5062488a43e3f9f8764ee9745ccd8e8193df743dbe5ee61"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3026cbcf11d79095a32d9a13bbc572a458727bd5b1ca332df4a79faecd45281c"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:293352710172239bf579c90a9864d0df57340b6fd21272345222fb6371bf82b3"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:d909b5a3fff619dc7e48b6b1bedc2f30ec43033ba7af32f936c10839e81b9217"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:3d370ff652323c5307d9c8e4c62efd1956fb08051b0e9210212bc51168b4ff56"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:b076da1ed19dc37788f6a934c60adf97bd02c7eea461b73730513921a85d4235"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:e9941a4ada58f6218694f382e43fdd256e97615db9da135e77359da257a7168b"}, - {file = "regex-2023.8.8-cp36-cp36m-win32.whl", hash = "sha256:a8c65c17aed7e15a0c824cdc63a6b104dfc530f6fa8cb6ac51c437af52b481c7"}, - {file = "regex-2023.8.8-cp36-cp36m-win_amd64.whl", hash = "sha256:aadf28046e77a72f30dcc1ab185639e8de7f4104b8cb5c6dfa5d8ed860e57236"}, - {file = "regex-2023.8.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:423adfa872b4908843ac3e7a30f957f5d5282944b81ca0a3b8a7ccbbfaa06103"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ae594c66f4a7e1ea67232a0846649a7c94c188d6c071ac0210c3e86a5f92109"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e51c80c168074faa793685656c38eb7a06cbad7774c8cbc3ea05552d615393d8"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:09b7f4c66aa9d1522b06e31a54f15581c37286237208df1345108fcf4e050c18"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e73e5243af12d9cd6a9d6a45a43570dbe2e5b1cdfc862f5ae2b031e44dd95a8"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:941460db8fe3bd613db52f05259c9336f5a47ccae7d7def44cc277184030a116"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f0ccf3e01afeb412a1a9993049cb160d0352dba635bbca7762b2dc722aa5742a"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:2e9216e0d2cdce7dbc9be48cb3eacb962740a09b011a116fd7af8c832ab116ca"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5cd9cd7170459b9223c5e592ac036e0704bee765706445c353d96f2890e816c8"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4873ef92e03a4309b3ccd8281454801b291b689f6ad45ef8c3658b6fa761d7ac"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:239c3c2a339d3b3ddd51c2daef10874410917cd2b998f043c13e2084cb191684"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1005c60ed7037be0d9dea1f9c53cc42f836188227366370867222bda4c3c6bd7"}, - {file = "regex-2023.8.8-cp37-cp37m-win32.whl", hash = "sha256:e6bd1e9b95bc5614a7a9c9c44fde9539cba1c823b43a9f7bc11266446dd568e3"}, - {file = "regex-2023.8.8-cp37-cp37m-win_amd64.whl", hash = "sha256:9a96edd79661e93327cfeac4edec72a4046e14550a1d22aa0dd2e3ca52aec921"}, - {file = "regex-2023.8.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f2181c20ef18747d5f4a7ea513e09ea03bdd50884a11ce46066bb90fe4213675"}, - {file = "regex-2023.8.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a2ad5add903eb7cdde2b7c64aaca405f3957ab34f16594d2b78d53b8b1a6a7d6"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9233ac249b354c54146e392e8a451e465dd2d967fc773690811d3a8c240ac601"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:920974009fb37b20d32afcdf0227a2e707eb83fe418713f7a8b7de038b870d0b"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2b6c5dfe0929b6c23dde9624483380b170b6e34ed79054ad131b20203a1a63"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96979d753b1dc3b2169003e1854dc67bfc86edf93c01e84757927f810b8c3c93"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ae54a338191e1356253e7883d9d19f8679b6143703086245fb14d1f20196be9"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2162ae2eb8b079622176a81b65d486ba50b888271302190870b8cc488587d280"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c884d1a59e69e03b93cf0dfee8794c63d7de0ee8f7ffb76e5f75be8131b6400a"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf9273e96f3ee2ac89ffcb17627a78f78e7516b08f94dc435844ae72576a276e"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:83215147121e15d5f3a45d99abeed9cf1fe16869d5c233b08c56cdf75f43a504"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3f7454aa427b8ab9101f3787eb178057c5250478e39b99540cfc2b889c7d0586"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0640913d2c1044d97e30d7c41728195fc37e54d190c5385eacb52115127b882"}, - {file = "regex-2023.8.8-cp38-cp38-win32.whl", hash = "sha256:0c59122ceccb905a941fb23b087b8eafc5290bf983ebcb14d2301febcbe199c7"}, - {file = "regex-2023.8.8-cp38-cp38-win_amd64.whl", hash = "sha256:c12f6f67495ea05c3d542d119d270007090bad5b843f642d418eb601ec0fa7be"}, - {file = "regex-2023.8.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:82cd0a69cd28f6cc3789cc6adeb1027f79526b1ab50b1f6062bbc3a0ccb2dbc3"}, - {file = "regex-2023.8.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bb34d1605f96a245fc39790a117ac1bac8de84ab7691637b26ab2c5efb8f228c"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:987b9ac04d0b38ef4f89fbc035e84a7efad9cdd5f1e29024f9289182c8d99e09"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9dd6082f4e2aec9b6a0927202c85bc1b09dcab113f97265127c1dc20e2e32495"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7eb95fe8222932c10d4436e7a6f7c99991e3fdd9f36c949eff16a69246dee2dc"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7098c524ba9f20717a56a8d551d2ed491ea89cbf37e540759ed3b776a4f8d6eb"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b694430b3f00eb02c594ff5a16db30e054c1b9589a043fe9174584c6efa8033"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b2aeab3895d778155054abea5238d0eb9a72e9242bd4b43f42fd911ef9a13470"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:988631b9d78b546e284478c2ec15c8a85960e262e247b35ca5eaf7ee22f6050a"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:67ecd894e56a0c6108ec5ab1d8fa8418ec0cff45844a855966b875d1039a2e34"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:14898830f0a0eb67cae2bbbc787c1a7d6e34ecc06fbd39d3af5fe29a4468e2c9"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:f2200e00b62568cfd920127782c61bc1c546062a879cdc741cfcc6976668dfcf"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9691a549c19c22d26a4f3b948071e93517bdf86e41b81d8c6ac8a964bb71e5a6"}, - {file = "regex-2023.8.8-cp39-cp39-win32.whl", hash = "sha256:6ab2ed84bf0137927846b37e882745a827458689eb969028af8032b1b3dac78e"}, - {file = "regex-2023.8.8-cp39-cp39-win_amd64.whl", hash = "sha256:5543c055d8ec7801901e1193a51570643d6a6ab8751b1f7dd9af71af467538bb"}, - {file = "regex-2023.8.8.tar.gz", hash = "sha256:fcbdc5f2b0f1cd0f6a56cdb46fe41d2cce1e644e3b68832f3eeebc5fb0f7712e"}, + {file = "regex-2023.10.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4c34d4f73ea738223a094d8e0ffd6d2c1a1b4c175da34d6b0de3d8d69bee6bcc"}, + {file = "regex-2023.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a8f4e49fc3ce020f65411432183e6775f24e02dff617281094ba6ab079ef0915"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cd1bccf99d3ef1ab6ba835308ad85be040e6a11b0977ef7ea8c8005f01a3c29"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81dce2ddc9f6e8f543d94b05d56e70d03a0774d32f6cca53e978dc01e4fc75b8"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c6b4d23c04831e3ab61717a707a5d763b300213db49ca680edf8bf13ab5d91b"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c15ad0aee158a15e17e0495e1e18741573d04eb6da06d8b84af726cfc1ed02ee"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6239d4e2e0b52c8bd38c51b760cd870069f0bdf99700a62cd509d7a031749a55"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4a8bf76e3182797c6b1afa5b822d1d5802ff30284abe4599e1247be4fd6b03be"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9c727bbcf0065cbb20f39d2b4f932f8fa1631c3e01fcedc979bd4f51fe051c5"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3ccf2716add72f80714b9a63899b67fa711b654be3fcdd34fa391d2d274ce767"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:107ac60d1bfdc3edb53be75e2a52aff7481b92817cfdddd9b4519ccf0e54a6ff"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:00ba3c9818e33f1fa974693fb55d24cdc8ebafcb2e4207680669d8f8d7cca79a"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f0a47efb1dbef13af9c9a54a94a0b814902e547b7f21acb29434504d18f36e3a"}, + {file = "regex-2023.10.3-cp310-cp310-win32.whl", hash = "sha256:36362386b813fa6c9146da6149a001b7bd063dabc4d49522a1f7aa65b725c7ec"}, + {file = "regex-2023.10.3-cp310-cp310-win_amd64.whl", hash = "sha256:c65a3b5330b54103e7d21cac3f6bf3900d46f6d50138d73343d9e5b2900b2353"}, + {file = "regex-2023.10.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:90a79bce019c442604662d17bf69df99090e24cdc6ad95b18b6725c2988a490e"}, + {file = "regex-2023.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c7964c2183c3e6cce3f497e3a9f49d182e969f2dc3aeeadfa18945ff7bdd7051"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ef80829117a8061f974b2fda8ec799717242353bff55f8a29411794d635d964"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5addc9d0209a9afca5fc070f93b726bf7003bd63a427f65ef797a931782e7edc"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c148bec483cc4b421562b4bcedb8e28a3b84fcc8f0aa4418e10898f3c2c0eb9b"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d1f21af4c1539051049796a0f50aa342f9a27cde57318f2fc41ed50b0dbc4ac"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b9ac09853b2a3e0d0082104036579809679e7715671cfbf89d83c1cb2a30f58"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ebedc192abbc7fd13c5ee800e83a6df252bec691eb2c4bedc9f8b2e2903f5e2a"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d8a993c0a0ffd5f2d3bda23d0cd75e7086736f8f8268de8a82fbc4bd0ac6791e"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:be6b7b8d42d3090b6c80793524fa66c57ad7ee3fe9722b258aec6d0672543fd0"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4023e2efc35a30e66e938de5aef42b520c20e7eda7bb5fb12c35e5d09a4c43f6"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0d47840dc05e0ba04fe2e26f15126de7c755496d5a8aae4a08bda4dd8d646c54"}, + {file = "regex-2023.10.3-cp311-cp311-win32.whl", hash = "sha256:9145f092b5d1977ec8c0ab46e7b3381b2fd069957b9862a43bd383e5c01d18c2"}, + {file = "regex-2023.10.3-cp311-cp311-win_amd64.whl", hash = "sha256:b6104f9a46bd8743e4f738afef69b153c4b8b592d35ae46db07fc28ae3d5fb7c"}, + {file = "regex-2023.10.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bff507ae210371d4b1fe316d03433ac099f184d570a1a611e541923f78f05037"}, + {file = "regex-2023.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be5e22bbb67924dea15039c3282fa4cc6cdfbe0cbbd1c0515f9223186fc2ec5f"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a992f702c9be9c72fa46f01ca6e18d131906a7180950958f766c2aa294d4b41"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7434a61b158be563c1362d9071358f8ab91b8d928728cd2882af060481244c9e"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2169b2dcabf4e608416f7f9468737583ce5f0a6e8677c4efbf795ce81109d7c"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9e908ef5889cda4de038892b9accc36d33d72fb3e12c747e2799a0e806ec841"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12bd4bc2c632742c7ce20db48e0d99afdc05e03f0b4c1af90542e05b809a03d9"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bc72c231f5449d86d6c7d9cc7cd819b6eb30134bb770b8cfdc0765e48ef9c420"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bce8814b076f0ce5766dc87d5a056b0e9437b8e0cd351b9a6c4e1134a7dfbda9"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:ba7cd6dc4d585ea544c1412019921570ebd8a597fabf475acc4528210d7c4a6f"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b0c7d2f698e83f15228ba41c135501cfe7d5740181d5903e250e47f617eb4292"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5a8f91c64f390ecee09ff793319f30a0f32492e99f5dc1c72bc361f23ccd0a9a"}, + {file = "regex-2023.10.3-cp312-cp312-win32.whl", hash = "sha256:ad08a69728ff3c79866d729b095872afe1e0557251da4abb2c5faff15a91d19a"}, + {file = "regex-2023.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:39cdf8d141d6d44e8d5a12a8569d5a227f645c87df4f92179bd06e2e2705e76b"}, + {file = "regex-2023.10.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4a3ee019a9befe84fa3e917a2dd378807e423d013377a884c1970a3c2792d293"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76066d7ff61ba6bf3cb5efe2428fc82aac91802844c022d849a1f0f53820502d"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe50b61bab1b1ec260fa7cd91106fa9fece57e6beba05630afe27c71259c59b"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fd88f373cb71e6b59b7fa597e47e518282455c2734fd4306a05ca219a1991b0"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ab05a182c7937fb374f7e946f04fb23a0c0699c0450e9fb02ef567412d2fa3"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dac37cf08fcf2094159922edc7a2784cfcc5c70f8354469f79ed085f0328ebdf"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e54ddd0bb8fb626aa1f9ba7b36629564544954fff9669b15da3610c22b9a0991"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3367007ad1951fde612bf65b0dffc8fd681a4ab98ac86957d16491400d661302"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:16f8740eb6dbacc7113e3097b0a36065a02e37b47c936b551805d40340fb9971"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:f4f2ca6df64cbdd27f27b34f35adb640b5d2d77264228554e68deda54456eb11"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:39807cbcbe406efca2a233884e169d056c35aa7e9f343d4e78665246a332f597"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7eece6fbd3eae4a92d7c748ae825cbc1ee41a89bb1c3db05b5578ed3cfcfd7cb"}, + {file = "regex-2023.10.3-cp37-cp37m-win32.whl", hash = "sha256:ce615c92d90df8373d9e13acddd154152645c0dc060871abf6bd43809673d20a"}, + {file = "regex-2023.10.3-cp37-cp37m-win_amd64.whl", hash = "sha256:0f649fa32fe734c4abdfd4edbb8381c74abf5f34bc0b3271ce687b23729299ed"}, + {file = "regex-2023.10.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b98b7681a9437262947f41c7fac567c7e1f6eddd94b0483596d320092004533"}, + {file = "regex-2023.10.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:91dc1d531f80c862441d7b66c4505cd6ea9d312f01fb2f4654f40c6fdf5cc37a"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82fcc1f1cc3ff1ab8a57ba619b149b907072e750815c5ba63e7aa2e1163384a4"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7979b834ec7a33aafae34a90aad9f914c41fd6eaa8474e66953f3f6f7cbd4368"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef71561f82a89af6cfcbee47f0fabfdb6e63788a9258e913955d89fdd96902ab"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd829712de97753367153ed84f2de752b86cd1f7a88b55a3a775eb52eafe8a94"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00e871d83a45eee2f8688d7e6849609c2ca2a04a6d48fba3dff4deef35d14f07"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:706e7b739fdd17cb89e1fbf712d9dc21311fc2333f6d435eac2d4ee81985098c"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cc3f1c053b73f20c7ad88b0d1d23be7e7b3901229ce89f5000a8399746a6e039"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f85739e80d13644b981a88f529d79c5bdf646b460ba190bffcaf6d57b2a9863"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:741ba2f511cc9626b7561a440f87d658aabb3d6b744a86a3c025f866b4d19e7f"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e77c90ab5997e85901da85131fd36acd0ed2221368199b65f0d11bca44549711"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:979c24cbefaf2420c4e377ecd1f165ea08cc3d1fbb44bdc51bccbbf7c66a2cb4"}, + {file = "regex-2023.10.3-cp38-cp38-win32.whl", hash = "sha256:58837f9d221744d4c92d2cf7201c6acd19623b50c643b56992cbd2b745485d3d"}, + {file = "regex-2023.10.3-cp38-cp38-win_amd64.whl", hash = "sha256:c55853684fe08d4897c37dfc5faeff70607a5f1806c8be148f1695be4a63414b"}, + {file = "regex-2023.10.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2c54e23836650bdf2c18222c87f6f840d4943944146ca479858404fedeb9f9af"}, + {file = "regex-2023.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69c0771ca5653c7d4b65203cbfc5e66db9375f1078689459fe196fe08b7b4930"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ac965a998e1388e6ff2e9781f499ad1eaa41e962a40d11c7823c9952c77123e"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c0e8fae5b27caa34177bdfa5a960c46ff2f78ee2d45c6db15ae3f64ecadde14"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c56c3d47da04f921b73ff9415fbaa939f684d47293f071aa9cbb13c94afc17d"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ef1e014eed78ab650bef9a6a9cbe50b052c0aebe553fb2881e0453717573f52"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d29338556a59423d9ff7b6eb0cb89ead2b0875e08fe522f3e068b955c3e7b59b"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9c6d0ced3c06d0f183b73d3c5920727268d2201aa0fe6d55c60d68c792ff3588"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:994645a46c6a740ee8ce8df7911d4aee458d9b1bc5639bc968226763d07f00fa"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:66e2fe786ef28da2b28e222c89502b2af984858091675044d93cb50e6f46d7af"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:11175910f62b2b8c055f2b089e0fedd694fe2be3941b3e2633653bc51064c528"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:06e9abc0e4c9ab4779c74ad99c3fc10d3967d03114449acc2c2762ad4472b8ca"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fb02e4257376ae25c6dd95a5aec377f9b18c09be6ebdefa7ad209b9137b73d48"}, + {file = "regex-2023.10.3-cp39-cp39-win32.whl", hash = "sha256:3b2c3502603fab52d7619b882c25a6850b766ebd1b18de3df23b2f939360e1bd"}, + {file = "regex-2023.10.3-cp39-cp39-win_amd64.whl", hash = "sha256:adbccd17dcaff65704c856bd29951c58a1bd4b2b0f8ad6b826dbd543fe740988"}, + {file = "regex-2023.10.3.tar.gz", hash = "sha256:3fef4f844d2290ee0ba57addcec17eec9e3df73f10a2748485dfd6a3a188cc0f"}, ] [[package]] @@ -1562,60 +1539,83 @@ files = [ [[package]] name = "ruamel-yaml" -version = "0.17.33" -requires_python = ">=3" +version = "0.18.5" +requires_python = ">=3.7" summary = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" dependencies = [ - "ruamel-yaml-clib>=0.2.7; platform_python_implementation == \"CPython\" and python_version < \"3.12\"", + "ruamel-yaml-clib>=0.2.7; platform_python_implementation == \"CPython\" and python_version < \"3.13\"", ] files = [ - {file = "ruamel.yaml-0.17.33-py3-none-any.whl", hash = "sha256:2080c7a02b8a30fb3c06727cdf3e254a64055eedf3aa2d17c2b669639c04971b"}, - {file = "ruamel.yaml-0.17.33.tar.gz", hash = "sha256:5c56aa0bff2afceaa93bffbfc78b450b7dc1e01d5edb80b3a570695286ae62b1"}, + {file = "ruamel.yaml-0.18.5-py3-none-any.whl", hash = "sha256:a013ac02f99a69cdd6277d9664689eb1acba07069f912823177c5eced21a6ada"}, + {file = "ruamel.yaml-0.18.5.tar.gz", hash = "sha256:61917e3a35a569c1133a8f772e1226961bf5a1198bea7e23f06a0841dea1ab0e"}, ] [[package]] name = "ruamel-yaml-clib" -version = "0.2.7" -requires_python = ">=3.5" +version = "0.2.8" +requires_python = ">=3.6" summary = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" files = [ - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5859983f26d8cd7bb5c287ef452e8aacc86501487634573d260968f753e1d71"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:debc87a9516b237d0466a711b18b6ebeb17ba9f391eb7f91c649c5c4ec5006c7"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:df5828871e6648db72d1c19b4bd24819b80a755c4541d3409f0f7acd0f335c80"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:efa08d63ef03d079dcae1dfe334f6c8847ba8b645d08df286358b1f5293d24ab"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:1a6391a7cabb7641c32517539ca42cf84b87b667bad38b78d4d42dd23e957c81"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9c7617df90c1365638916b98cdd9be833d31d337dbcd722485597b43c4a215bf"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:41d0f1fa4c6830176eef5b276af04c89320ea616655d01327d5ce65e50575c94"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win32.whl", hash = "sha256:f6d3d39611ac2e4f62c3128a9eed45f19a6608670c5a2f4f07f24e8de3441d38"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:da538167284de58a52109a9b89b8f6a53ff8437dd6dc26d33b57bf6699153122"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4b3a93bb9bc662fc1f99c5c3ea8e623d8b23ad22f861eb6fce9377ac07ad6072"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_12_0_arm64.whl", hash = "sha256:a234a20ae07e8469da311e182e70ef6b199d0fbeb6c6cc2901204dd87fb867e8"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:15910ef4f3e537eea7fe45f8a5d19997479940d9196f357152a09031c5be59f3"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:370445fd795706fd291ab00c9df38a0caed0f17a6fb46b0f607668ecb16ce763"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win32.whl", hash = "sha256:ecdf1a604009bd35c674b9225a8fa609e0282d9b896c03dd441a91e5f53b534e"}, - {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win_amd64.whl", hash = "sha256:f34019dced51047d6f70cb9383b2ae2853b7fc4dce65129a5acd49f4f9256646"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2aa261c29a5545adfef9296b7e33941f46aa5bbd21164228e833412af4c9c75f"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f01da5790e95815eb5a8a138508c01c758e5f5bc0ce4286c4f7028b8dd7ac3d0"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:40d030e2329ce5286d6b231b8726959ebbe0404c92f0a578c0e2482182e38282"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c3ca1fbba4ae962521e5eb66d72998b51f0f4d0f608d3c0347a48e1af262efa7"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win32.whl", hash = "sha256:7bdb4c06b063f6fd55e472e201317a3bb6cdeeee5d5a38512ea5c01e1acbdd93"}, - {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:be2a7ad8fd8f7442b24323d24ba0b56c51219513cfa45b9ada3b87b76c374d4b"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91a789b4aa0097b78c93e3dc4b40040ba55bef518f84a40d4442f713b4094acb"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:99e77daab5d13a48a4054803d052ff40780278240a902b880dd37a51ba01a307"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3243f48ecd450eddadc2d11b5feb08aca941b5cd98c9b1db14b2fd128be8c697"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8831a2cedcd0f0927f788c5bdf6567d9dc9cc235646a434986a852af1cb54b4b"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win32.whl", hash = "sha256:3110a99e0f94a4a3470ff67fc20d3f96c25b13d24c6980ff841e82bafe827cac"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:92460ce908546ab69770b2e576e4f99fbb4ce6ab4b245345a3869a0a0410488f"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc0667c1eb8f83a3752b71b9c4ba55ef7c7058ae57022dd9b29065186a113d9"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:4a4d8d417868d68b979076a9be6a38c676eca060785abaa6709c7b31593c35d1"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf9a6bc4a0221538b1a7de3ed7bca4c93c02346853f44e1cd764be0023cd3640"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a7b301ff08055d73223058b5c46c55638917f04d21577c95e00e0c4d79201a6b"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win32.whl", hash = "sha256:d5e51e2901ec2366b79f16c2299a03e74ba4531ddcfacc1416639c557aef0ad8"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:184faeaec61dbaa3cace407cffc5819f7b977e75360e8d5ca19461cd851a5fc5"}, - {file = "ruamel.yaml.clib-0.2.7.tar.gz", hash = "sha256:1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, + {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, + {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, +] + +[[package]] +name = "setuptools" +version = "68.2.2" +requires_python = ">=3.8" +summary = "Easily download, build, install, upgrade, and uninstall Python packages" +files = [ + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, ] [[package]] @@ -1689,20 +1689,22 @@ files = [ [[package]] name = "types-markdown" -version = "3.4.2.10" +version = "3.5.0.1" +requires_python = ">=3.7" summary = "Typing stubs for Markdown" files = [ - {file = "types-Markdown-3.4.2.10.tar.gz", hash = "sha256:11e3558d50e3bc1e3f52f3fe073788f4ab917a829374fb354476221c700629e8"}, - {file = "types_Markdown-3.4.2.10-py3-none-any.whl", hash = "sha256:543ff3027fda21c3149780bf835a721cd094c5729e9a87725f180569c960bff8"}, + {file = "types-Markdown-3.5.0.1.tar.gz", hash = "sha256:c57ef7d510cb882ef0c1bfef3fc9401cfc329685eabdd9b15ce674f90ca6c546"}, + {file = "types_Markdown-3.5.0.1-py3-none-any.whl", hash = "sha256:816e19f03b08dcf74e8873080cccbc1577644940c49874ae5c2b89f400e149ac"}, ] [[package]] name = "types-pillow" -version = "10.0.0.3" +version = "10.1.0.2" +requires_python = ">=3.7" summary = "Typing stubs for Pillow" files = [ - {file = "types-Pillow-10.0.0.3.tar.gz", hash = "sha256:ae0c877d363da349bbb82c5463c9e78037290cc07d3714cb0ceaf5d2f7f5c825"}, - {file = "types_Pillow-10.0.0.3-py3-none-any.whl", hash = "sha256:54a49f3c6a3f5e95ebeee396d7773dde22ce2515d594f9c0596c0a983558f0d4"}, + {file = "types-Pillow-10.1.0.2.tar.gz", hash = "sha256:525c1c5ee67b0ac1721c40d2bc618226ef2123c347e527e14e05b920721a13b9"}, + {file = "types_Pillow-10.1.0.2-py3-none-any.whl", hash = "sha256:131078ffa547bf9a201d39ffcdc65633e108148085f4f1b07d4647fcfec6e923"}, ] [[package]] @@ -1816,89 +1818,6 @@ files = [ {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"}, ] -[[package]] -name = "wrapt" -version = "1.15.0" -requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -summary = "Module for decorators, wrappers and monkey patching." -files = [ - {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, - {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, - {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, - {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, - {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, - {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, - {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, - {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, - {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, - {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, - {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, - {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, - {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, - {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, - {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, - {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, - {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, - {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, - {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, -] - [[package]] name = "zipp" version = "3.17.0" diff --git a/tools/ci/pyproject.toml b/tools/ci/pyproject.toml index f0b11be88..0ccd507c4 100644 --- a/tools/ci/pyproject.toml +++ b/tools/ci/pyproject.toml @@ -5,9 +5,10 @@ description = "" authors = [ {name = "Vizzu Inc.", email = "hello@vizzuhq.com"}, ] -dependencies = [] +dependencies = [ + "markdown-include>=0.8.1", +] requires-python = ">=3.10" -readme = "README.md" license = {text = "Apache-2.0"} [tool.pdm.dev-dependencies] @@ -46,3 +47,6 @@ docs = [ "Pillow", "types-Pillow", ] + +[tool.setuptools] +py-modules = [] diff --git a/tools/docs/mkdocs.yml b/tools/docs/mkdocs.yml index 339ea7254..e18605879 100644 --- a/tools/docs/mkdocs.yml +++ b/tools/docs/mkdocs.yml @@ -72,6 +72,8 @@ markdown_extensions: use_pygments: false - pymdownx.details - pymdownx.superfences + - markdown_include.include: + base_path: docs plugins: - mike: From a6e50cb41303df4a2d654e25f2524b2e8d476495 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Tue, 14 Nov 2023 15:46:51 +0100 Subject: [PATCH 027/180] add includes for setup --- docs/tutorial/aggregating_data.md | 29 +---------- docs/tutorial/align_range.md | 47 ++--------------- docs/tutorial/animation_control_keyframes.md | 44 +--------------- docs/tutorial/animation_options.md | 48 ++--------------- docs/tutorial/axes_title_tooltip.md | 29 +---------- docs/tutorial/changing_dimensions.md | 48 ++--------------- docs/tutorial/channels_legend.md | 52 ++++++------------- docs/tutorial/chart_layout.md | 47 ++--------------- docs/tutorial/color_palette_fonts.md | 48 ++--------------- docs/tutorial/events.md | 48 ++--------------- docs/tutorial/filter_add_new_records.md | 48 ++--------------- docs/tutorial/geometry.md | 52 ++++++------------- docs/tutorial/group_stack.md | 39 +------------- docs/tutorial/orientation_split_polar.md | 48 ++--------------- docs/tutorial/setup.md | 25 +++++++++ docs/tutorial/setup_config.md | 20 +++++++ docs/tutorial/shorthands_store.md | 48 ++--------------- docs/tutorial/sorting.md | 48 ++--------------- .../without_coordinates_noop_channel.md | 44 +--------------- 19 files changed, 120 insertions(+), 692 deletions(-) create mode 100644 docs/tutorial/setup.md create mode 100644 docs/tutorial/setup_config.md diff --git a/docs/tutorial/aggregating_data.md b/docs/tutorial/aggregating_data.md index 15d39fc4b..bce490833 100644 --- a/docs/tutorial/aggregating_data.md +++ b/docs/tutorial/aggregating_data.md @@ -13,34 +13,7 @@ within `Genres`.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data - }) - ``` +{!tutorial/setup.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/align_range.md b/docs/tutorial/align_range.md index 1198c1685..2da245b28 100644 --- a/docs/tutorial/align_range.md +++ b/docs/tutorial/align_range.md @@ -21,50 +21,9 @@ whereas on a bar chart, horizontally.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} Change align and configures the y axis labels to disappear during the animation. diff --git a/docs/tutorial/animation_control_keyframes.md b/docs/tutorial/animation_control_keyframes.md index 1fbd197b8..ac114a639 100644 --- a/docs/tutorial/animation_control_keyframes.md +++ b/docs/tutorial/animation_control_keyframes.md @@ -11,50 +11,10 @@ In this step, we seek forward to `50%` of progress after the animation starts.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. +{!tutorial/setup.md!} - ```html - - -
-
- - +{!tutorial/setup_config.md!} - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` ```javascript chart.animate({ diff --git a/docs/tutorial/animation_options.md b/docs/tutorial/animation_options.md index bf0d1f6f1..fc6a3c93d 100644 --- a/docs/tutorial/animation_options.md +++ b/docs/tutorial/animation_options.md @@ -14,50 +14,10 @@ the default animation options.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} + ```javascript chart.animate({ diff --git a/docs/tutorial/axes_title_tooltip.md b/docs/tutorial/axes_title_tooltip.md index 8adaf32b7..32d9206ea 100644 --- a/docs/tutorial/axes_title_tooltip.md +++ b/docs/tutorial/axes_title_tooltip.md @@ -15,34 +15,7 @@ the measure (`Popularity`) to the y-axis using the set property.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data - }) - ``` +{!tutorial/setup.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/changing_dimensions.md b/docs/tutorial/changing_dimensions.md index 9a8668994..98ade9af2 100644 --- a/docs/tutorial/changing_dimensions.md +++ b/docs/tutorial/changing_dimensions.md @@ -15,50 +15,10 @@ elements.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} + ```javascript chart.animate({ diff --git a/docs/tutorial/channels_legend.md b/docs/tutorial/channels_legend.md index c6d6e2cab..c8b2db316 100644 --- a/docs/tutorial/channels_legend.md +++ b/docs/tutorial/channels_legend.md @@ -19,44 +19,22 @@ them differently with the `style` object introduced in the
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity'] - }, - x: { - set: ['Genres'] - }, +{!tutorial/setup.md!} + +```javascript +chart.animate({ + config: { + channels: { + y: { + set: ['Popularity'] }, - } - }) - ``` + x: { + set: ['Genres'] + }, + }, + } +}) +``` ```javascript chart.animate({ diff --git a/docs/tutorial/chart_layout.md b/docs/tutorial/chart_layout.md index 0c94f1e34..2e37db479 100644 --- a/docs/tutorial/chart_layout.md +++ b/docs/tutorial/chart_layout.md @@ -18,50 +18,9 @@ are aligned.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/color_palette_fonts.md b/docs/tutorial/color_palette_fonts.md index eff0bb0b8..b9ac35c01 100644 --- a/docs/tutorial/color_palette_fonts.md +++ b/docs/tutorial/color_palette_fonts.md @@ -21,50 +21,10 @@ you should add
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} + ```javascript chart.animate({ diff --git a/docs/tutorial/events.md b/docs/tutorial/events.md index 7b3a4f66a..2aadd8351 100644 --- a/docs/tutorial/events.md +++ b/docs/tutorial/events.md @@ -14,50 +14,10 @@ block with information about the clicked chart element.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} + ```javascript function clickHandler(event) { diff --git a/docs/tutorial/filter_add_new_records.md b/docs/tutorial/filter_add_new_records.md index cdecf8e24..df8d3de4f 100644 --- a/docs/tutorial/filter_add_new_records.md +++ b/docs/tutorial/filter_add_new_records.md @@ -15,50 +15,10 @@ from the chart.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} + ```javascript chart.animate({ diff --git a/docs/tutorial/geometry.md b/docs/tutorial/geometry.md index 1ee80371e..7e0fbc27b 100644 --- a/docs/tutorial/geometry.md +++ b/docs/tutorial/geometry.md @@ -12,44 +12,22 @@ Switching the geometry to area.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity'] - }, - x: { - set: ['Genres'] - }, +{!tutorial/setup.md!} + +```javascript +chart.animate({ + config: { + channels: { + y: { + set: ['Popularity'] }, - } - }) - ``` + x: { + set: ['Genres'] + }, + }, + } +}) +``` ```javascript chart.animate({ diff --git a/docs/tutorial/group_stack.md b/docs/tutorial/group_stack.md index 78896ee84..9d65f6728 100644 --- a/docs/tutorial/group_stack.md +++ b/docs/tutorial/group_stack.md @@ -14,44 +14,7 @@ we also add the same dimension to the color channel.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity'] - }, - x: { - set: ['Genres'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/orientation_split_polar.md b/docs/tutorial/orientation_split_polar.md index 478670bb4..77b60f666 100644 --- a/docs/tutorial/orientation_split_polar.md +++ b/docs/tutorial/orientation_split_polar.md @@ -14,50 +14,10 @@ only use temporarily.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} + ```javascript chart.animate({ diff --git a/docs/tutorial/setup.md b/docs/tutorial/setup.md new file mode 100644 index 000000000..e0507d383 --- /dev/null +++ b/docs/tutorial/setup.md @@ -0,0 +1,25 @@ +??? info "Info - How to setup Vizzu" + In `HTML`, create a placeholder element that will contain the rendered + chart. + + ```html + + +
+
+ + + ``` + + In `JavaScript`, initialize and configure the chart: + + ```javascript + import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' + import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' + + let chart = new Vizzu('myVizzu') + + chart.animate({ + data + }) + ``` diff --git a/docs/tutorial/setup_config.md b/docs/tutorial/setup_config.md new file mode 100644 index 000000000..b937bc0d8 --- /dev/null +++ b/docs/tutorial/setup_config.md @@ -0,0 +1,20 @@ +```javascript +chart.animate({ + config: { + channels: { + y: { + set: ['Popularity', 'Kinds'] + }, + x: { + set: ['Genres'] + }, + color: { + set: ['Kinds'] + }, + label: { + set: ['Popularity'] + }, + }, + } +}) +``` diff --git a/docs/tutorial/shorthands_store.md b/docs/tutorial/shorthands_store.md index 65189c4b3..6f65219cd 100644 --- a/docs/tutorial/shorthands_store.md +++ b/docs/tutorial/shorthands_store.md @@ -17,50 +17,10 @@ animate method, you can simplify your code by using only the object of the
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} + ```javascript chart.animate({ diff --git a/docs/tutorial/sorting.md b/docs/tutorial/sorting.md index c58996256..f199f899f 100644 --- a/docs/tutorial/sorting.md +++ b/docs/tutorial/sorting.md @@ -13,50 +13,10 @@ ascending order.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` +{!tutorial/setup.md!} + +{!tutorial/setup_config.md!} + ```javascript chart.animate({ diff --git a/docs/tutorial/without_coordinates_noop_channel.md b/docs/tutorial/without_coordinates_noop_channel.md index 286a881d9..a249af116 100644 --- a/docs/tutorial/without_coordinates_noop_channel.md +++ b/docs/tutorial/without_coordinates_noop_channel.md @@ -14,50 +14,10 @@ still on the `color` channel.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. +{!tutorial/setup.md!} - ```html - - -
-
- - +{!tutorial/setup_config.md!} - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` ```javascript chart.animate({ From 7158395783d45e1ccba9fac6d939cb6f97034621 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Tue, 14 Nov 2023 15:52:24 +0100 Subject: [PATCH 028/180] add stacking explanation --- docs/tutorial/stacking_explanation.js | 124 ++++++++++++++++++++++++++ docs/tutorial/stacking_explanation.md | 13 +++ tools/docs/mkdocs.yml | 1 + 3 files changed, 138 insertions(+) create mode 100644 docs/tutorial/stacking_explanation.js create mode 100644 docs/tutorial/stacking_explanation.md diff --git a/docs/tutorial/stacking_explanation.js b/docs/tutorial/stacking_explanation.js new file mode 100644 index 000000000..6e8a9c2f7 --- /dev/null +++ b/docs/tutorial/stacking_explanation.js @@ -0,0 +1,124 @@ +const mdChartLoaded = import('../assets/javascripts/mdchart.js') +const animOptions = { duration: 2 } + +Promise.all([mdChartLoaded]).then((results) => { + const MdChart = results[0].default + const data = { + series: [ + { name: 'D', values: ['A', 'B', 'C'] }, + { name: 'M', values: [6.1, 3.5, 1.4] }, + { name: 'i', values: [1, 1, 1] }, + ] + } + const mdchart = new MdChart(data, 'tutorial') + + mdchart.create([ + // tutorial_01 + { + anims: [ + chart => chart.animate({ + config: { + title: 'Stacking explanation', + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'], + }, + legend: null + } + }, animOptions), + chart => chart.animate({ + config: { + channels: { + x: { + set: ['D','M'], + range: { max: 12 }, + axis: true, + labels: true, + title: 'x: [ measure, dimension ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } + }, animOptions), + chart => chart.animate({ + config: { + channels: { + x: { + set: 'M', + range: { max: 7 }, + axis: true, + labels: true, + title: 'x: [ measure ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } + }, animOptions), + chart => chart.animate({ + config: { + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'], + }, + legend: null + } + }, animOptions) + ] + } + ]) +}) diff --git a/docs/tutorial/stacking_explanation.md b/docs/tutorial/stacking_explanation.md new file mode 100644 index 000000000..0b2fdfff4 --- /dev/null +++ b/docs/tutorial/stacking_explanation.md @@ -0,0 +1,13 @@ +# Stacking explanation + +In the following animation you can see an example how selecting different measures and +dimensions cause different stacking behaviour in the chart. + +First we set the x channel to a dimension and an arbitrary constant value to +illustrate stacking. Then by changing the constant to a measure the markers’ width change +according to the values. Finally when the dimension is removed the bars get +ordered by the measure. + +
+ + diff --git a/tools/docs/mkdocs.yml b/tools/docs/mkdocs.yml index e18605879..2ca433ebc 100644 --- a/tools/docs/mkdocs.yml +++ b/tools/docs/mkdocs.yml @@ -105,6 +105,7 @@ nav: - tutorial/geometry.md - Channels & legend: tutorial/channels_legend.md - Group/stack: tutorial/group_stack.md + - tutorial/stacking_explanation.md - tutorial/sorting.md - Align & range: tutorial/align_range.md - Changing dimensions: tutorial/changing_dimensions.md From 3fdd2a8d5506f71edf7df93127ddf6bdb04419eb Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 14 Nov 2023 21:13:39 +0100 Subject: [PATCH 029/180] npm run fix-format-docs --- docs/tutorial/animation_control_keyframes.md | 1 - docs/tutorial/animation_options.md | 1 - docs/tutorial/changing_dimensions.md | 1 - docs/tutorial/color_palette_fonts.md | 1 - docs/tutorial/events.md | 1 - docs/tutorial/filter_add_new_records.md | 1 - docs/tutorial/orientation_split_polar.md | 1 - docs/tutorial/setup.md | 1 + docs/tutorial/shorthands_store.md | 1 - docs/tutorial/sorting.md | 1 - docs/tutorial/stacking_explanation.js | 213 +++++++++--------- docs/tutorial/stacking_explanation.md | 10 +- .../without_coordinates_noop_channel.md | 1 - 13 files changed, 118 insertions(+), 116 deletions(-) diff --git a/docs/tutorial/animation_control_keyframes.md b/docs/tutorial/animation_control_keyframes.md index ac114a639..b7956d425 100644 --- a/docs/tutorial/animation_control_keyframes.md +++ b/docs/tutorial/animation_control_keyframes.md @@ -15,7 +15,6 @@ In this step, we seek forward to `50%` of progress after the animation starts. {!tutorial/setup_config.md!} - ```javascript chart.animate({ config: { diff --git a/docs/tutorial/animation_options.md b/docs/tutorial/animation_options.md index fc6a3c93d..21b914a61 100644 --- a/docs/tutorial/animation_options.md +++ b/docs/tutorial/animation_options.md @@ -18,7 +18,6 @@ the default animation options. {!tutorial/setup_config.md!} - ```javascript chart.animate({ config: { diff --git a/docs/tutorial/changing_dimensions.md b/docs/tutorial/changing_dimensions.md index 98ade9af2..e8affbc50 100644 --- a/docs/tutorial/changing_dimensions.md +++ b/docs/tutorial/changing_dimensions.md @@ -19,7 +19,6 @@ elements. {!tutorial/setup_config.md!} - ```javascript chart.animate({ config: { diff --git a/docs/tutorial/color_palette_fonts.md b/docs/tutorial/color_palette_fonts.md index b9ac35c01..8ac77ee5a 100644 --- a/docs/tutorial/color_palette_fonts.md +++ b/docs/tutorial/color_palette_fonts.md @@ -25,7 +25,6 @@ you should add {!tutorial/setup_config.md!} - ```javascript chart.animate({ style: { diff --git a/docs/tutorial/events.md b/docs/tutorial/events.md index 2aadd8351..14627108e 100644 --- a/docs/tutorial/events.md +++ b/docs/tutorial/events.md @@ -18,7 +18,6 @@ block with information about the clicked chart element. {!tutorial/setup_config.md!} - ```javascript function clickHandler(event) { alert(JSON.stringify(event.target)); diff --git a/docs/tutorial/filter_add_new_records.md b/docs/tutorial/filter_add_new_records.md index df8d3de4f..058657f22 100644 --- a/docs/tutorial/filter_add_new_records.md +++ b/docs/tutorial/filter_add_new_records.md @@ -19,7 +19,6 @@ from the chart. {!tutorial/setup_config.md!} - ```javascript chart.animate({ data: { diff --git a/docs/tutorial/orientation_split_polar.md b/docs/tutorial/orientation_split_polar.md index 77b60f666..f3c2fc78c 100644 --- a/docs/tutorial/orientation_split_polar.md +++ b/docs/tutorial/orientation_split_polar.md @@ -18,7 +18,6 @@ only use temporarily. {!tutorial/setup_config.md!} - ```javascript chart.animate({ config: { diff --git a/docs/tutorial/setup.md b/docs/tutorial/setup.md index e0507d383..593bf5682 100644 --- a/docs/tutorial/setup.md +++ b/docs/tutorial/setup.md @@ -9,6 +9,7 @@ + ``` In `JavaScript`, initialize and configure the chart: diff --git a/docs/tutorial/shorthands_store.md b/docs/tutorial/shorthands_store.md index 6f65219cd..4fae3351a 100644 --- a/docs/tutorial/shorthands_store.md +++ b/docs/tutorial/shorthands_store.md @@ -21,7 +21,6 @@ animate method, you can simplify your code by using only the object of the {!tutorial/setup_config.md!} - ```javascript chart.animate({ // config: { diff --git a/docs/tutorial/sorting.md b/docs/tutorial/sorting.md index f199f899f..09d1120a6 100644 --- a/docs/tutorial/sorting.md +++ b/docs/tutorial/sorting.md @@ -17,7 +17,6 @@ ascending order. {!tutorial/setup_config.md!} - ```javascript chart.animate({ config: { diff --git a/docs/tutorial/stacking_explanation.js b/docs/tutorial/stacking_explanation.js index 6e8a9c2f7..928556c47 100644 --- a/docs/tutorial/stacking_explanation.js +++ b/docs/tutorial/stacking_explanation.js @@ -7,7 +7,7 @@ Promise.all([mdChartLoaded]).then((results) => { series: [ { name: 'D', values: ['A', 'B', 'C'] }, { name: 'M', values: [6.1, 3.5, 1.4] }, - { name: 'i', values: [1, 1, 1] }, + { name: 'i', values: [1, 1, 1] } ] } const mdchart = new MdChart(data, 'tutorial') @@ -16,108 +16,119 @@ Promise.all([mdChartLoaded]).then((results) => { // tutorial_01 { anims: [ - chart => chart.animate({ - config: { - title: 'Stacking explanation', - channels: { - x: { - set: ['D', 'i'], - range: { max: 3 }, - axis: true, - labels: false, - title: 'x: [ dimension ]', - interlacing: false, - markerGuides: true, - ticks: false - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'], + (chart) => + chart.animate( + { + config: { + title: 'Stacking explanation', + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + }, + legend: null + } }, - legend: null - } - }, animOptions), - chart => chart.animate({ - config: { - channels: { - x: { - set: ['D','M'], - range: { max: 12 }, - axis: true, - labels: true, - title: 'x: [ measure, dimension ]', - interlacing: false, - markerGuides: true, - ticks: true - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - } - } - }, animOptions), - chart => chart.animate({ - config: { - channels: { - x: { - set: 'M', - range: { max: 7 }, - axis: true, - labels: true, - title: 'x: [ measure ]', - interlacing: false, - markerGuides: true, - ticks: true - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - } - } - }, animOptions), - chart => chart.animate({ - config: { - channels: { - x: { - set: ['D', 'i'], - range: { max: 3 }, - axis: true, - labels: false, - title: 'x: [ dimension ]', - interlacing: false, - markerGuides: true, - ticks: false - }, - y: { set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'], + animOptions + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['D', 'M'], + range: { max: 12 }, + axis: true, + labels: true, + title: 'x: [ measure, dimension ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } }, - legend: null - } - }, animOptions) + animOptions + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: 'M', + range: { max: 7 }, + axis: true, + labels: true, + title: 'x: [ measure ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } + }, + animOptions + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { set: null, axis: true, labels: false, title: null, interlacing: false }, + color: 'D', + label: ['D'] + }, + legend: null + } + }, + animOptions + ) ] } ]) diff --git a/docs/tutorial/stacking_explanation.md b/docs/tutorial/stacking_explanation.md index 0b2fdfff4..179c66028 100644 --- a/docs/tutorial/stacking_explanation.md +++ b/docs/tutorial/stacking_explanation.md @@ -1,12 +1,12 @@ # Stacking explanation -In the following animation you can see an example how selecting different measures and -dimensions cause different stacking behaviour in the chart. +In the following animation you can see an example how selecting different +measures and dimensions cause different stacking behaviour in the chart. First we set the x channel to a dimension and an arbitrary constant value to -illustrate stacking. Then by changing the constant to a measure the markers’ width change -according to the values. Finally when the dimension is removed the bars get -ordered by the measure. +illustrate stacking. Then by changing the constant to a measure the markers’ +width change according to the values. Finally when the dimension is removed the +bars get ordered by the measure.
diff --git a/docs/tutorial/without_coordinates_noop_channel.md b/docs/tutorial/without_coordinates_noop_channel.md index a249af116..e9bb51ac9 100644 --- a/docs/tutorial/without_coordinates_noop_channel.md +++ b/docs/tutorial/without_coordinates_noop_channel.md @@ -18,7 +18,6 @@ still on the `color` channel. {!tutorial/setup_config.md!} - ```javascript chart.animate({ config: { From 337ba89fb287536c914f7ba8a484a57806d7e82b Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Wed, 15 Nov 2023 12:34:33 +0100 Subject: [PATCH 030/180] wait for chart init, update stacking explanation --- docs/tutorial/setup.md | 2 + docs/tutorial/stacking_explanation.js | 219 +++++++++++++------------- docs/tutorial/stacking_explanation.md | 10 +- 3 files changed, 116 insertions(+), 115 deletions(-) diff --git a/docs/tutorial/setup.md b/docs/tutorial/setup.md index 593bf5682..5d02baaee 100644 --- a/docs/tutorial/setup.md +++ b/docs/tutorial/setup.md @@ -20,6 +20,8 @@ let chart = new Vizzu('myVizzu') + await chart.initializing + chart.animate({ data }) diff --git a/docs/tutorial/stacking_explanation.js b/docs/tutorial/stacking_explanation.js index 928556c47..61189f4ac 100644 --- a/docs/tutorial/stacking_explanation.js +++ b/docs/tutorial/stacking_explanation.js @@ -1,5 +1,8 @@ const mdChartLoaded = import('../assets/javascripts/mdchart.js') -const animOptions = { duration: 2 } +const animOptions = { + duration: 2, + delay: 3 +} Promise.all([mdChartLoaded]).then((results) => { const MdChart = results[0].default @@ -16,119 +19,111 @@ Promise.all([mdChartLoaded]).then((results) => { // tutorial_01 { anims: [ - (chart) => - chart.animate( - { - config: { - title: 'Stacking explanation', - channels: { - x: { - set: ['D', 'i'], - range: { max: 3 }, - axis: true, - labels: false, - title: 'x: [ dimension ]', - interlacing: false, - markerGuides: true, - ticks: false - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - }, - legend: null - } + chart => chart.animate({ + config: { + title: 'Dimension only', + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'], }, - animOptions - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['D', 'M'], - range: { max: 12 }, - axis: true, - labels: true, - title: 'x: [ measure, dimension ]', - interlacing: false, - markerGuides: true, - ticks: true - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - } - } + legend: null + } + }, { ...animOptions, delay: 0 }), + chart => chart.animate({ + config: { + title: 'Measure and dimension', + channels: { + x: { + set: ['D','M'], + range: { max: 12 }, + axis: true, + labels: true, + title: 'x: [ measure, dimension ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } + }, animOptions), + chart => chart.animate({ + config: { + title: 'Measure only', + channels: { + x: { + set: 'M', + range: { max: 7 }, + axis: true, + labels: true, + title: 'x: [ measure ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } + }, animOptions), + chart => chart.animate({ + config: { + title: 'Dimension only', + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'], }, - animOptions - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: 'M', - range: { max: 7 }, - axis: true, - labels: true, - title: 'x: [ measure ]', - interlacing: false, - markerGuides: true, - ticks: true - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - } - } - }, - animOptions - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['D', 'i'], - range: { max: 3 }, - axis: true, - labels: false, - title: 'x: [ dimension ]', - interlacing: false, - markerGuides: true, - ticks: false - }, - y: { set: null, axis: true, labels: false, title: null, interlacing: false }, - color: 'D', - label: ['D'] - }, - legend: null - } - }, - animOptions - ) + legend: null + } + }, animOptions) ] } ]) diff --git a/docs/tutorial/stacking_explanation.md b/docs/tutorial/stacking_explanation.md index 179c66028..4903fc571 100644 --- a/docs/tutorial/stacking_explanation.md +++ b/docs/tutorial/stacking_explanation.md @@ -4,9 +4,13 @@ In the following animation you can see an example how selecting different measures and dimensions cause different stacking behaviour in the chart. First we set the x channel to a dimension and an arbitrary constant value to -illustrate stacking. Then by changing the constant to a measure the markers’ -width change according to the values. Finally when the dimension is removed the -bars get ordered by the measure. +illustrate stacking. (The dimension divides the bar to equal sections along the +x-axis.) Then by changing the constant to a measure the markers’ width change +according to the values. Finally when the dimension is removed the bars get +ordered by the measure. + +Note that when no dimension is present then the markers are measured from the +origo.
From 9f977ce7d6b770698902d388c34e4c04b73daf1a Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Wed, 15 Nov 2023 13:23:07 +0100 Subject: [PATCH 031/180] fix docs formatting --- docs/tutorial/stacking_explanation.js | 217 ++++++++++++++------------ docs/tutorial/stacking_explanation.md | 6 +- 2 files changed, 117 insertions(+), 106 deletions(-) diff --git a/docs/tutorial/stacking_explanation.js b/docs/tutorial/stacking_explanation.js index 61189f4ac..e43be1737 100644 --- a/docs/tutorial/stacking_explanation.js +++ b/docs/tutorial/stacking_explanation.js @@ -19,111 +19,122 @@ Promise.all([mdChartLoaded]).then((results) => { // tutorial_01 { anims: [ - chart => chart.animate({ - config: { - title: 'Dimension only', - channels: { - x: { - set: ['D', 'i'], - range: { max: 3 }, - axis: true, - labels: false, - title: 'x: [ dimension ]', - interlacing: false, - markerGuides: true, - ticks: false - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'], + (chart) => + chart.animate( + { + config: { + title: 'Dimension only', + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + }, + legend: null + } }, - legend: null - } - }, { ...animOptions, delay: 0 }), - chart => chart.animate({ - config: { - title: 'Measure and dimension', - channels: { - x: { - set: ['D','M'], - range: { max: 12 }, - axis: true, - labels: true, - title: 'x: [ measure, dimension ]', - interlacing: false, - markerGuides: true, - ticks: true - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - } - } - }, animOptions), - chart => chart.animate({ - config: { - title: 'Measure only', - channels: { - x: { - set: 'M', - range: { max: 7 }, - axis: true, - labels: true, - title: 'x: [ measure ]', - interlacing: false, - markerGuides: true, - ticks: true - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - } - } - }, animOptions), - chart => chart.animate({ - config: { - title: 'Dimension only', - channels: { - x: { - set: ['D', 'i'], - range: { max: 3 }, - axis: true, - labels: false, - title: 'x: [ dimension ]', - interlacing: false, - markerGuides: true, - ticks: false - }, - y: { set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'], + { ...animOptions, delay: 0 } + ), + (chart) => + chart.animate( + { + config: { + title: 'Measure and dimension', + channels: { + x: { + set: ['D', 'M'], + range: { max: 12 }, + axis: true, + labels: true, + title: 'x: [ measure, dimension ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } }, - legend: null - } - }, animOptions) + animOptions + ), + (chart) => + chart.animate( + { + config: { + title: 'Measure only', + channels: { + x: { + set: 'M', + range: { max: 7 }, + axis: true, + labels: true, + title: 'x: [ measure ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } + }, + animOptions + ), + (chart) => + chart.animate( + { + config: { + title: 'Dimension only', + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { set: null, axis: true, labels: false, title: null, interlacing: false }, + color: 'D', + label: ['D'] + }, + legend: null + } + }, + animOptions + ) ] } ]) diff --git a/docs/tutorial/stacking_explanation.md b/docs/tutorial/stacking_explanation.md index 4903fc571..48e810072 100644 --- a/docs/tutorial/stacking_explanation.md +++ b/docs/tutorial/stacking_explanation.md @@ -5,12 +5,12 @@ measures and dimensions cause different stacking behaviour in the chart. First we set the x channel to a dimension and an arbitrary constant value to illustrate stacking. (The dimension divides the bar to equal sections along the -x-axis.) Then by changing the constant to a measure the markers’ width change +x-axis.) Then by changing the constant to a measure the markers’ width change according to the values. Finally when the dimension is removed the bars get -ordered by the measure. +ordered by the measure. Note that when no dimension is present then the markers are measured from the -origo. +origo.
From 812995f9c5f088deac3471ff4275e7424b47d4be Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Wed, 15 Nov 2023 13:23:51 +0100 Subject: [PATCH 032/180] add missing config --- docs/tutorial/group_stack.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/tutorial/group_stack.md b/docs/tutorial/group_stack.md index 9d65f6728..2311c366d 100644 --- a/docs/tutorial/group_stack.md +++ b/docs/tutorial/group_stack.md @@ -16,6 +16,21 @@ we also add the same dimension to the color channel. {!tutorial/setup.md!} +```javascript +chart.animate({ + config: { + channels: { + y: { + set: ['Popularity'] + }, + x: { + set: ['Genres'] + } + } + } +}) +``` + ```javascript chart.animate({ config: { From afa361ee4b3e5249067381fa0c8491695bc71a7d Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 15 Nov 2023 16:59:51 +0100 Subject: [PATCH 033/180] Format, tool fixes --- .gitignore | 3 +- docs/tutorial/aggregating_data.md | 2 +- docs/tutorial/align_range.md | 4 +- docs/tutorial/animation_control_keyframes.md | 4 +- docs/tutorial/animation_options.md | 4 +- docs/tutorial/assets/setup/config_a | 5 + docs/tutorial/assets/setup/config_b | 15 + docs/tutorial/assets/setup/config_c | 21 ++ docs/tutorial/{setup.md => assets/setup/init} | 7 +- docs/tutorial/assets/setup/setup_a.md | 4 + docs/tutorial/assets/setup/setup_b.md | 4 + docs/tutorial/assets/setup/setup_c.md | 4 + docs/tutorial/axes_title_tooltip.md | 2 +- docs/tutorial/changing_dimensions.md | 4 +- docs/tutorial/channels_legend.md | 2 +- docs/tutorial/chart_layout.md | 4 +- docs/tutorial/chart_presets.md | 29 +- docs/tutorial/color_palette_fonts.md | 4 +- docs/tutorial/events.md | 4 +- docs/tutorial/filter_add_new_records.md | 4 +- docs/tutorial/geometry.md | 2 +- docs/tutorial/group_stack.md | 2 +- docs/tutorial/orientation_split_polar.md | 4 +- docs/tutorial/setup_config.md | 20 -- docs/tutorial/shorthands_store.md | 4 +- docs/tutorial/sorting.md | 4 +- .../without_coordinates_noop_channel.md | 4 +- tools/ci/gcp/cloudbuild/cloudbuild.yaml | 10 +- tools/ci/pdm.lock | 259 +++++++++--------- tools/ci/pyproject.toml | 7 +- tools/ci/run/init-py.sh | 2 +- 31 files changed, 216 insertions(+), 232 deletions(-) create mode 100644 docs/tutorial/assets/setup/config_a create mode 100644 docs/tutorial/assets/setup/config_b create mode 100644 docs/tutorial/assets/setup/config_c rename docs/tutorial/{setup.md => assets/setup/init} (85%) create mode 100644 docs/tutorial/assets/setup/setup_a.md create mode 100644 docs/tutorial/assets/setup/setup_b.md create mode 100644 docs/tutorial/assets/setup/setup_c.md delete mode 100644 docs/tutorial/setup_config.md diff --git a/.gitignore b/.gitignore index de0d7e09c..762204216 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,8 @@ test_report.tgz __pycache__ -.venv +.venv* +vizzu_dev* .pdm-python docs/examples/**/*.png diff --git a/docs/tutorial/aggregating_data.md b/docs/tutorial/aggregating_data.md index bce490833..054bc1eca 100644 --- a/docs/tutorial/aggregating_data.md +++ b/docs/tutorial/aggregating_data.md @@ -13,7 +13,7 @@ within `Genres`.
-{!tutorial/setup.md!} +{!tutorial/assets/setup/setup_a.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/align_range.md b/docs/tutorial/align_range.md index 2da245b28..28ec3f478 100644 --- a/docs/tutorial/align_range.md +++ b/docs/tutorial/align_range.md @@ -21,9 +21,7 @@ whereas on a bar chart, horizontally.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} Change align and configures the y axis labels to disappear during the animation. diff --git a/docs/tutorial/animation_control_keyframes.md b/docs/tutorial/animation_control_keyframes.md index b7956d425..4a52f0bbd 100644 --- a/docs/tutorial/animation_control_keyframes.md +++ b/docs/tutorial/animation_control_keyframes.md @@ -11,9 +11,7 @@ In this step, we seek forward to `50%` of progress after the animation starts.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/animation_options.md b/docs/tutorial/animation_options.md index 21b914a61..c4e3ef061 100644 --- a/docs/tutorial/animation_options.md +++ b/docs/tutorial/animation_options.md @@ -14,9 +14,7 @@ the default animation options.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/assets/setup/config_a b/docs/tutorial/assets/setup/config_a new file mode 100644 index 000000000..92736df42 --- /dev/null +++ b/docs/tutorial/assets/setup/config_a @@ -0,0 +1,5 @@ + ```javascript + chart.animate({ + data + }) + ``` diff --git a/docs/tutorial/assets/setup/config_b b/docs/tutorial/assets/setup/config_b new file mode 100644 index 000000000..f25642286 --- /dev/null +++ b/docs/tutorial/assets/setup/config_b @@ -0,0 +1,15 @@ + ```javascript + chart.animate({ + data: data, + config: { + channels: { + y: { + set: ['Popularity'] + }, + x: { + set: ['Genres'] + }, + }, + } + }) + ``` diff --git a/docs/tutorial/assets/setup/config_c b/docs/tutorial/assets/setup/config_c new file mode 100644 index 000000000..6b7bc0afa --- /dev/null +++ b/docs/tutorial/assets/setup/config_c @@ -0,0 +1,21 @@ + ```javascript + chart.animate({ + data: data, + config: { + channels: { + y: { + set: ['Popularity', 'Kinds'] + }, + x: { + set: ['Genres'] + }, + color: { + set: ['Kinds'] + }, + label: { + set: ['Popularity'] + }, + }, + } + }) + ``` diff --git a/docs/tutorial/setup.md b/docs/tutorial/assets/setup/init similarity index 85% rename from docs/tutorial/setup.md rename to docs/tutorial/assets/setup/init index 5d02baaee..fd65d6db7 100644 --- a/docs/tutorial/setup.md +++ b/docs/tutorial/assets/setup/init @@ -1,4 +1,3 @@ -??? info "Info - How to setup Vizzu" In `HTML`, create a placeholder element that will contain the rendered chart. @@ -21,8 +20,4 @@ let chart = new Vizzu('myVizzu') await chart.initializing - - chart.animate({ - data - }) - ``` + ``` \ No newline at end of file diff --git a/docs/tutorial/assets/setup/setup_a.md b/docs/tutorial/assets/setup/setup_a.md new file mode 100644 index 000000000..79042f43a --- /dev/null +++ b/docs/tutorial/assets/setup/setup_a.md @@ -0,0 +1,4 @@ +??? info "Info - How to setup Vizzu" + {!tutorial/assets/setup/init!} + + {!tutorial/assets/setup/config_a!} diff --git a/docs/tutorial/assets/setup/setup_b.md b/docs/tutorial/assets/setup/setup_b.md new file mode 100644 index 000000000..70cbaba57 --- /dev/null +++ b/docs/tutorial/assets/setup/setup_b.md @@ -0,0 +1,4 @@ +??? info "Info - How to setup Vizzu" + {!tutorial/assets/setup/init!} + + {!tutorial/assets/setup/config_b!} diff --git a/docs/tutorial/assets/setup/setup_c.md b/docs/tutorial/assets/setup/setup_c.md new file mode 100644 index 000000000..1a5d72a5c --- /dev/null +++ b/docs/tutorial/assets/setup/setup_c.md @@ -0,0 +1,4 @@ +??? info "Info - How to setup Vizzu" + {!tutorial/assets/setup/init!} + + {!tutorial/assets/setup/config_c!} diff --git a/docs/tutorial/axes_title_tooltip.md b/docs/tutorial/axes_title_tooltip.md index 32d9206ea..6c72606a0 100644 --- a/docs/tutorial/axes_title_tooltip.md +++ b/docs/tutorial/axes_title_tooltip.md @@ -15,7 +15,7 @@ the measure (`Popularity`) to the y-axis using the set property.
-{!tutorial/setup.md!} +{!tutorial/assets/setup/setup_a.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/changing_dimensions.md b/docs/tutorial/changing_dimensions.md index e8affbc50..bd542230b 100644 --- a/docs/tutorial/changing_dimensions.md +++ b/docs/tutorial/changing_dimensions.md @@ -15,9 +15,7 @@ elements.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/channels_legend.md b/docs/tutorial/channels_legend.md index c8b2db316..b7275278c 100644 --- a/docs/tutorial/channels_legend.md +++ b/docs/tutorial/channels_legend.md @@ -19,7 +19,7 @@ them differently with the `style` object introduced in the
-{!tutorial/setup.md!} +{!tutorial/assets/setup/setup_b.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/chart_layout.md b/docs/tutorial/chart_layout.md index 2e37db479..9bdebbb64 100644 --- a/docs/tutorial/chart_layout.md +++ b/docs/tutorial/chart_layout.md @@ -18,9 +18,7 @@ are aligned.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/chart_presets.md b/docs/tutorial/chart_presets.md index 51ad2c9c5..ee3d8957d 100644 --- a/docs/tutorial/chart_presets.md +++ b/docs/tutorial/chart_presets.md @@ -19,34 +19,7 @@ stacked bubble chart using its preset.
-??? info "Info - How to setup Vizzu" - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - chart.initializing - - chart.animate({ - data - }) - ``` +{!tutorial/assets/setup/setup_a.md!} ```javascript chart.animate(Vizzu.presets.stackedBubble({ diff --git a/docs/tutorial/color_palette_fonts.md b/docs/tutorial/color_palette_fonts.md index 8ac77ee5a..5c8defa99 100644 --- a/docs/tutorial/color_palette_fonts.md +++ b/docs/tutorial/color_palette_fonts.md @@ -21,9 +21,7 @@ you should add
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/events.md b/docs/tutorial/events.md index 14627108e..5efb6b1cb 100644 --- a/docs/tutorial/events.md +++ b/docs/tutorial/events.md @@ -14,9 +14,7 @@ block with information about the clicked chart element.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript function clickHandler(event) { diff --git a/docs/tutorial/filter_add_new_records.md b/docs/tutorial/filter_add_new_records.md index 058657f22..d68635a8b 100644 --- a/docs/tutorial/filter_add_new_records.md +++ b/docs/tutorial/filter_add_new_records.md @@ -15,9 +15,7 @@ from the chart.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/geometry.md b/docs/tutorial/geometry.md index 7e0fbc27b..3a90361ad 100644 --- a/docs/tutorial/geometry.md +++ b/docs/tutorial/geometry.md @@ -12,7 +12,7 @@ Switching the geometry to area.
-{!tutorial/setup.md!} +{!tutorial/assets/setup/setup_b.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/group_stack.md b/docs/tutorial/group_stack.md index 2311c366d..89b29e529 100644 --- a/docs/tutorial/group_stack.md +++ b/docs/tutorial/group_stack.md @@ -14,7 +14,7 @@ we also add the same dimension to the color channel.
-{!tutorial/setup.md!} +{!tutorial/assets/setup/setup_b.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/orientation_split_polar.md b/docs/tutorial/orientation_split_polar.md index f3c2fc78c..0694b33b4 100644 --- a/docs/tutorial/orientation_split_polar.md +++ b/docs/tutorial/orientation_split_polar.md @@ -14,9 +14,7 @@ only use temporarily.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/setup_config.md b/docs/tutorial/setup_config.md deleted file mode 100644 index b937bc0d8..000000000 --- a/docs/tutorial/setup_config.md +++ /dev/null @@ -1,20 +0,0 @@ -```javascript -chart.animate({ - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } -}) -``` diff --git a/docs/tutorial/shorthands_store.md b/docs/tutorial/shorthands_store.md index 4fae3351a..9e69d3eb0 100644 --- a/docs/tutorial/shorthands_store.md +++ b/docs/tutorial/shorthands_store.md @@ -17,9 +17,7 @@ animate method, you can simplify your code by using only the object of the
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/sorting.md b/docs/tutorial/sorting.md index 09d1120a6..fd04a60b0 100644 --- a/docs/tutorial/sorting.md +++ b/docs/tutorial/sorting.md @@ -13,9 +13,7 @@ ascending order.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/docs/tutorial/without_coordinates_noop_channel.md b/docs/tutorial/without_coordinates_noop_channel.md index e9bb51ac9..4653ee58c 100644 --- a/docs/tutorial/without_coordinates_noop_channel.md +++ b/docs/tutorial/without_coordinates_noop_channel.md @@ -14,9 +14,7 @@ still on the `color` channel.
-{!tutorial/setup.md!} - -{!tutorial/setup_config.md!} +{!tutorial/assets/setup/setup_c.md!} ```javascript chart.animate({ diff --git a/tools/ci/gcp/cloudbuild/cloudbuild.yaml b/tools/ci/gcp/cloudbuild/cloudbuild.yaml index b12506dd2..99419f980 100644 --- a/tools/ci/gcp/cloudbuild/cloudbuild.yaml +++ b/tools/ci/gcp/cloudbuild/cloudbuild.yaml @@ -173,8 +173,8 @@ steps: chmod 400 /root/.ssh/id_rsa ssh-keyscan -t rsa github.com > /root/.ssh/known_hosts git clone --single-branch --branch main --depth 1 'git@github.com:vizzuhq/vizzu-lib-doc' - git config --global user.name "David Vegh" - git config --global user.email "veghdev@gmail.com" + git config --global user.name "$$VIZZUHQ_GITHUB_USER" + git config --global user.email "$$VIZZUHQ_GITHUB_EMAIL" npm run docs-gen-thumbnail-gsutil if [ "$_ISRELEASE" == "true" ] then @@ -198,6 +198,8 @@ steps: dir: /workspace secretEnv: - VIZZUHQ_GITHUB_SSH + - VIZZUHQ_GITHUB_USER + - VIZZUHQ_GITHUB_EMAIL - name: vizzu/vizzu-dev-wasm:0.9 id: release @@ -263,6 +265,10 @@ availableSecrets: env: VIZZUHQ_GITHUB_SSH - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_API/versions/latest env: VIZZUHQ_GITHUB_API + - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_USER/versions/latest + env: VIZZUHQ_GITHUB_USER + - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_EMAIL/versions/latest + env: VIZZUHQ_GITHUB_EMAIL - versionName: projects/418279184538/secrets/VIZZUHQ_NPM_API/versions/latest env: VIZZUHQ_NPM_API timeout: 2400s diff --git a/tools/ci/pdm.lock b/tools/ci/pdm.lock index b604039a1..72ae37ed8 100644 --- a/tools/ci/pdm.lock +++ b/tools/ci/pdm.lock @@ -6,7 +6,7 @@ groups = ["default", "codequality", "docs", "packagetool"] cross_platform = true static_urls = false lock_version = "4.3" -content_hash = "sha256:d3dcd6c65af60d8031413ea9b8118e5690213ea61d2d1030aa975156d5bc8fe1" +content_hash = "sha256:e2ec3ea83f020d0a9ee8731f8512235d145155161f8e08c11b277ecd91dad12a" [[package]] name = "astroid" @@ -114,12 +114,12 @@ files = [ [[package]] name = "blinker" -version = "1.6.2" -requires_python = ">=3.7" +version = "1.7.0" +requires_python = ">=3.8" summary = "Fast, simple object-to-object and broadcast signaling" files = [ - {file = "blinker-1.6.2-py3-none-any.whl", hash = "sha256:c3d739772abb7bc2860abf5f2ec284223d9ad5c76da018234f6f50d6f31ab1f0"}, - {file = "blinker-1.6.2.tar.gz", hash = "sha256:4afd3de66ef3a9f8067559fb7a1cbe555c17dcbe15971b05d1b625c3e7abe213"}, + {file = "blinker-1.7.0-py3-none-any.whl", hash = "sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9"}, + {file = "blinker-1.7.0.tar.gz", hash = "sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182"}, ] [[package]] @@ -163,100 +163,100 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.3.0" +version = "3.3.2" requires_python = ">=3.7.0" summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." files = [ - {file = "charset-normalizer-3.3.0.tar.gz", hash = "sha256:63563193aec44bce707e0c5ca64ff69fa72ed7cf34ce6e11d5127555756fd2f6"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:effe5406c9bd748a871dbcaf3ac69167c38d72db8c9baf3ff954c344f31c4cbe"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4162918ef3098851fcd8a628bf9b6a98d10c380725df9e04caf5ca6dd48c847a"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0570d21da019941634a531444364f2482e8db0b3425fcd5ac0c36565a64142c8"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5707a746c6083a3a74b46b3a631d78d129edab06195a92a8ece755aac25a3f3d"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:278c296c6f96fa686d74eb449ea1697f3c03dc28b75f873b65b5201806346a69"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4b71f4d1765639372a3b32d2638197f5cd5221b19531f9245fcc9ee62d38f56"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5969baeaea61c97efa706b9b107dcba02784b1601c74ac84f2a532ea079403e"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3f93dab657839dfa61025056606600a11d0b696d79386f974e459a3fbc568ec"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:db756e48f9c5c607b5e33dd36b1d5872d0422e960145b08ab0ec7fd420e9d649"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:232ac332403e37e4a03d209a3f92ed9071f7d3dbda70e2a5e9cff1c4ba9f0678"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e5c1502d4ace69a179305abb3f0bb6141cbe4714bc9b31d427329a95acfc8bdd"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:2502dd2a736c879c0f0d3e2161e74d9907231e25d35794584b1ca5284e43f596"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23e8565ab7ff33218530bc817922fae827420f143479b753104ab801145b1d5b"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-win32.whl", hash = "sha256:1872d01ac8c618a8da634e232f24793883d6e456a66593135aeafe3784b0848d"}, - {file = "charset_normalizer-3.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:557b21a44ceac6c6b9773bc65aa1b4cc3e248a5ad2f5b914b91579a32e22204d"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d7eff0f27edc5afa9e405f7165f85a6d782d308f3b6b9d96016c010597958e63"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6a685067d05e46641d5d1623d7c7fdf15a357546cbb2f71b0ebde91b175ffc3e"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0d3d5b7db9ed8a2b11a774db2bbea7ba1884430a205dbd54a32d61d7c2a190fa"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2935ffc78db9645cb2086c2f8f4cfd23d9b73cc0dc80334bc30aac6f03f68f8c"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fe359b2e3a7729010060fbca442ca225280c16e923b37db0e955ac2a2b72a05"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:380c4bde80bce25c6e4f77b19386f5ec9db230df9f2f2ac1e5ad7af2caa70459"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0d1e3732768fecb052d90d62b220af62ead5748ac51ef61e7b32c266cac9293"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b2919306936ac6efb3aed1fbf81039f7087ddadb3160882a57ee2ff74fd2382"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f8888e31e3a85943743f8fc15e71536bda1c81d5aa36d014a3c0c44481d7db6e"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:82eb849f085624f6a607538ee7b83a6d8126df6d2f7d3b319cb837b289123078"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7b8b8bf1189b3ba9b8de5c8db4d541b406611a71a955bbbd7385bbc45fcb786c"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5adf257bd58c1b8632046bbe43ee38c04e1038e9d37de9c57a94d6bd6ce5da34"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c350354efb159b8767a6244c166f66e67506e06c8924ed74669b2c70bc8735b1"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-win32.whl", hash = "sha256:02af06682e3590ab952599fbadac535ede5d60d78848e555aa58d0c0abbde786"}, - {file = "charset_normalizer-3.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:86d1f65ac145e2c9ed71d8ffb1905e9bba3a91ae29ba55b4c46ae6fc31d7c0d4"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:3b447982ad46348c02cb90d230b75ac34e9886273df3a93eec0539308a6296d7"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:abf0d9f45ea5fb95051c8bfe43cb40cda383772f7e5023a83cc481ca2604d74e"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b09719a17a2301178fac4470d54b1680b18a5048b481cb8890e1ef820cb80455"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3d9b48ee6e3967b7901c052b670c7dda6deb812c309439adaffdec55c6d7b78"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:edfe077ab09442d4ef3c52cb1f9dab89bff02f4524afc0acf2d46be17dc479f5"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3debd1150027933210c2fc321527c2299118aa929c2f5a0a80ab6953e3bd1908"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86f63face3a527284f7bb8a9d4f78988e3c06823f7bea2bd6f0e0e9298ca0403"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24817cb02cbef7cd499f7c9a2735286b4782bd47a5b3516a0e84c50eab44b98e"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c71f16da1ed8949774ef79f4a0260d28b83b3a50c6576f8f4f0288d109777989"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:9cf3126b85822c4e53aa28c7ec9869b924d6fcfb76e77a45c44b83d91afd74f9"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:b3b2316b25644b23b54a6f6401074cebcecd1244c0b8e80111c9a3f1c8e83d65"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:03680bb39035fbcffe828eae9c3f8afc0428c91d38e7d61aa992ef7a59fb120e"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4cc152c5dd831641e995764f9f0b6589519f6f5123258ccaca8c6d34572fefa8"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-win32.whl", hash = "sha256:b8f3307af845803fb0b060ab76cf6dd3a13adc15b6b451f54281d25911eb92df"}, - {file = "charset_normalizer-3.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:8eaf82f0eccd1505cf39a45a6bd0a8cf1c70dcfc30dba338207a969d91b965c0"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dc45229747b67ffc441b3de2f3ae5e62877a282ea828a5bdb67883c4ee4a8810"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f4a0033ce9a76e391542c182f0d48d084855b5fcba5010f707c8e8c34663d77"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ada214c6fa40f8d800e575de6b91a40d0548139e5dc457d2ebb61470abf50186"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b1121de0e9d6e6ca08289583d7491e7fcb18a439305b34a30b20d8215922d43c"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1063da2c85b95f2d1a430f1c33b55c9c17ffaf5e612e10aeaad641c55a9e2b9d"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70f1d09c0d7748b73290b29219e854b3207aea922f839437870d8cc2168e31cc"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:250c9eb0f4600361dd80d46112213dff2286231d92d3e52af1e5a6083d10cad9"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:750b446b2ffce1739e8578576092179160f6d26bd5e23eb1789c4d64d5af7dc7"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:fc52b79d83a3fe3a360902d3f5d79073a993597d48114c29485e9431092905d8"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:588245972aca710b5b68802c8cad9edaa98589b1b42ad2b53accd6910dad3545"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e39c7eb31e3f5b1f88caff88bcff1b7f8334975b46f6ac6e9fc725d829bc35d4"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-win32.whl", hash = "sha256:abecce40dfebbfa6abf8e324e1860092eeca6f7375c8c4e655a8afb61af58f2c"}, - {file = "charset_normalizer-3.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:24a91a981f185721542a0b7c92e9054b7ab4fea0508a795846bc5b0abf8118d4"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:67b8cc9574bb518ec76dc8e705d4c39ae78bb96237cb533edac149352c1f39fe"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac71b2977fb90c35d41c9453116e283fac47bb9096ad917b8819ca8b943abecd"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3ae38d325b512f63f8da31f826e6cb6c367336f95e418137286ba362925c877e"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:542da1178c1c6af8873e143910e2269add130a299c9106eef2594e15dae5e482"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30a85aed0b864ac88309b7d94be09f6046c834ef60762a8833b660139cfbad13"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aae32c93e0f64469f74ccc730a7cb21c7610af3a775157e50bbd38f816536b38"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b26ddf78d57f1d143bdf32e820fd8935d36abe8a25eb9ec0b5a71c82eb3895"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f5d10bae5d78e4551b7be7a9b29643a95aded9d0f602aa2ba584f0388e7a557"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:249c6470a2b60935bafd1d1d13cd613f8cd8388d53461c67397ee6a0f5dce741"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c5a74c359b2d47d26cdbbc7845e9662d6b08a1e915eb015d044729e92e7050b7"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:b5bcf60a228acae568e9911f410f9d9e0d43197d030ae5799e20dca8df588287"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:187d18082694a29005ba2944c882344b6748d5be69e3a89bf3cc9d878e548d5a"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:81bf654678e575403736b85ba3a7867e31c2c30a69bc57fe88e3ace52fb17b89"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-win32.whl", hash = "sha256:85a32721ddde63c9df9ebb0d2045b9691d9750cb139c161c80e500d210f5e26e"}, - {file = "charset_normalizer-3.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:468d2a840567b13a590e67dd276c570f8de00ed767ecc611994c301d0f8c014f"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e0fc42822278451bc13a2e8626cf2218ba570f27856b536e00cfa53099724828"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:09c77f964f351a7369cc343911e0df63e762e42bac24cd7d18525961c81754f4"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12ebea541c44fdc88ccb794a13fe861cc5e35d64ed689513a5c03d05b53b7c82"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:805dfea4ca10411a5296bcc75638017215a93ffb584c9e344731eef0dcfb026a"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96c2b49eb6a72c0e4991d62406e365d87067ca14c1a729a870d22354e6f68115"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aaf7b34c5bc56b38c931a54f7952f1ff0ae77a2e82496583b247f7c969eb1479"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:619d1c96099be5823db34fe89e2582b336b5b074a7f47f819d6b3a57ff7bdb86"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0ac5e7015a5920cfce654c06618ec40c33e12801711da6b4258af59a8eff00a"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:93aa7eef6ee71c629b51ef873991d6911b906d7312c6e8e99790c0f33c576f89"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7966951325782121e67c81299a031f4c115615e68046f79b85856b86ebffc4cd"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:02673e456dc5ab13659f85196c534dc596d4ef260e4d86e856c3b2773ce09843"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:c2af80fb58f0f24b3f3adcb9148e6203fa67dd3f61c4af146ecad033024dde43"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:153e7b6e724761741e0974fc4dcd406d35ba70b92bfe3fedcb497226c93b9da7"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-win32.whl", hash = "sha256:d47ecf253780c90ee181d4d871cd655a789da937454045b17b5798da9393901a"}, - {file = "charset_normalizer-3.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:d97d85fa63f315a8bdaba2af9a6a686e0eceab77b3089af45133252618e70884"}, - {file = "charset_normalizer-3.3.0-py3-none-any.whl", hash = "sha256:e46cd37076971c1040fc8c41273a8b3e2c624ce4f2be3f5dfcb7a430c1d3acc2"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] @@ -325,12 +325,12 @@ files = [ [[package]] name = "filelock" -version = "3.12.4" +version = "3.13.1" requires_python = ">=3.8" summary = "A platform independent file lock." files = [ - {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, - {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, ] [[package]] @@ -538,12 +538,12 @@ files = [ [[package]] name = "markdown" -version = "3.4.4" -requires_python = ">=3.7" +version = "3.5.1" +requires_python = ">=3.8" summary = "Python implementation of John Gruber's Markdown." files = [ - {file = "Markdown-3.4.4-py3-none-any.whl", hash = "sha256:a4c1b65c0957b4bd9e7d86ddc7b3c9868fb9670660f6f99f6d1bca8954d5a941"}, - {file = "Markdown-3.4.4.tar.gz", hash = "sha256:225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6"}, + {file = "Markdown-3.5.1-py3-none-any.whl", hash = "sha256:5874b47d4ee3f0b14d764324d2c94c03ea66bee56f2d929da9f2508d65e722dc"}, + {file = "Markdown-3.5.1.tar.gz", hash = "sha256:b65d7beb248dc22f2e8a31fb706d93798093c308dc1aba295aedeb9d41a813bd"}, ] [[package]] @@ -857,10 +857,7 @@ files = [ [[package]] name = "mike" -version = "2.1.0.dev0" -git = "https://github.com/jimporter/mike.git" -ref = "master" -revision = "076a4af3270a448f6aeb880c9c6c2fc0d80f603f" +version = "2.0.0" summary = "Manage multiple versions of your MkDocs-powered documentation" dependencies = [ "importlib-metadata", @@ -871,6 +868,10 @@ dependencies = [ "pyyaml>=5.1", "verspec", ] +files = [ + {file = "mike-2.0.0-py3-none-any.whl", hash = "sha256:87f496a65900f93ba92d72940242b65c86f3f2f82871bc60ebdcffc91fad1d9e"}, + {file = "mike-2.0.0.tar.gz", hash = "sha256:566f1cab1a58cc50b106fb79ea2f1f56e7bfc8b25a051e95e6eaee9fba0922de"}, +] [[package]] name = "mkdocs" @@ -1218,12 +1219,12 @@ files = [ [[package]] name = "platformdirs" -version = "3.10.0" +version = "3.11.0" requires_python = ">=3.7" summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." files = [ - {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, - {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, + {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, + {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, ] [[package]] @@ -1620,12 +1621,12 @@ files = [ [[package]] name = "shellingham" -version = "1.5.3" +version = "1.5.4" requires_python = ">=3.7" summary = "Tool to Detect Surrounding Shell" files = [ - {file = "shellingham-1.5.3-py2.py3-none-any.whl", hash = "sha256:419c6a164770c9c7cfcaeddfacb3d31ac7a8db0b0f3e9c1287679359734107e9"}, - {file = "shellingham-1.5.3.tar.gz", hash = "sha256:cb4a6fec583535bc6da17b647dd2330cf7ef30239e05d547d99ae3705fd0f7f8"}, + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, ] [[package]] @@ -1670,12 +1671,12 @@ files = [ [[package]] name = "tomlkit" -version = "0.12.1" +version = "0.12.3" requires_python = ">=3.7" summary = "Style preserving TOML library" files = [ - {file = "tomlkit-0.12.1-py3-none-any.whl", hash = "sha256:712cbd236609acc6a3e2e97253dfc52d4c2082982a88f61b640ecf0817eab899"}, - {file = "tomlkit-0.12.1.tar.gz", hash = "sha256:38e1ff8edb991273ec9f6181244a6a391ac30e9f5098e7535640ea6be97a7c86"}, + {file = "tomlkit-0.12.3-py3-none-any.whl", hash = "sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba"}, + {file = "tomlkit-0.12.3.tar.gz", hash = "sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"}, ] [[package]] @@ -1689,12 +1690,12 @@ files = [ [[package]] name = "types-markdown" -version = "3.5.0.1" +version = "3.5.0.2" requires_python = ">=3.7" summary = "Typing stubs for Markdown" files = [ - {file = "types-Markdown-3.5.0.1.tar.gz", hash = "sha256:c57ef7d510cb882ef0c1bfef3fc9401cfc329685eabdd9b15ce674f90ca6c546"}, - {file = "types_Markdown-3.5.0.1-py3-none-any.whl", hash = "sha256:816e19f03b08dcf74e8873080cccbc1577644940c49874ae5c2b89f400e149ac"}, + {file = "types-Markdown-3.5.0.2.tar.gz", hash = "sha256:111d96929838e3535040a3c029df97a66d4f7e1fd297020b9134ec9084b9b46c"}, + {file = "types_Markdown-3.5.0.2-py3-none-any.whl", hash = "sha256:4ac8a2298ce0897bc726df9c2eddeb11e7f832a5f456ee3f84bb0d299f595e5b"}, ] [[package]] @@ -1737,7 +1738,7 @@ files = [ [[package]] name = "unearth" -version = "0.11.0" +version = "0.12.1" requires_python = ">=3.7" summary = "A utility to fetch and download python packages" dependencies = [ @@ -1745,18 +1746,18 @@ dependencies = [ "requests>=2.25", ] files = [ - {file = "unearth-0.11.0-py3-none-any.whl", hash = "sha256:81eae966dd66b23dd578ff14ca155a5387d3596fbe2b44212508090143c250a2"}, - {file = "unearth-0.11.0.tar.gz", hash = "sha256:af20729b398d2f3b839251d745e4f40f23cb09bd6b797e0a6ff6eed46ca70422"}, + {file = "unearth-0.12.1-py3-none-any.whl", hash = "sha256:a5a5c51ca44965cbe3618116bd592bb0bbe3705af5fe14e5792660d904aad7c8"}, + {file = "unearth-0.12.1.tar.gz", hash = "sha256:4caad941b60f51e50fdc109866234d407910aef77f1233aa1b6b5d168c7427ee"}, ] [[package]] name = "urllib3" -version = "2.0.5" -requires_python = ">=3.7" +version = "2.1.0" +requires_python = ">=3.8" summary = "HTTP library with thread-safe connection pooling, file post, and more." files = [ - {file = "urllib3-2.0.5-py3-none-any.whl", hash = "sha256:ef16afa8ba34a1f989db38e1dbbe0c302e4289a47856990d0682e374563ce35e"}, - {file = "urllib3-2.0.5.tar.gz", hash = "sha256:13abf37382ea2ce6fb744d4dad67838eec857c9f4f57009891805e0b5e123594"}, + {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, + {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, ] [[package]] @@ -1770,7 +1771,7 @@ files = [ [[package]] name = "virtualenv" -version = "20.24.5" +version = "20.24.6" requires_python = ">=3.7" summary = "Virtual Python Environment builder" dependencies = [ @@ -1779,8 +1780,8 @@ dependencies = [ "platformdirs<4,>=3.9.1", ] files = [ - {file = "virtualenv-20.24.5-py3-none-any.whl", hash = "sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b"}, - {file = "virtualenv-20.24.5.tar.gz", hash = "sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"}, + {file = "virtualenv-20.24.6-py3-none-any.whl", hash = "sha256:520d056652454c5098a00c0f073611ccbea4c79089331f60bf9d7ba247bb7381"}, + {file = "virtualenv-20.24.6.tar.gz", hash = "sha256:02ece4f56fbf939dbbc33c0715159951d6bf14aaf5457b092e4548e1382455af"}, ] [[package]] diff --git a/tools/ci/pyproject.toml b/tools/ci/pyproject.toml index 0ccd507c4..f80797e7f 100644 --- a/tools/ci/pyproject.toml +++ b/tools/ci/pyproject.toml @@ -5,9 +5,7 @@ description = "" authors = [ {name = "Vizzu Inc.", email = "hello@vizzuhq.com"}, ] -dependencies = [ - "markdown-include>=0.8.1", -] +dependencies = [] requires-python = ">=3.10" license = {text = "Apache-2.0"} @@ -33,13 +31,14 @@ docs = [ "mdformat-footnote", "mdformat-frontmatter", "mdx_truly_sane_lists", + "markdown-include>=0.8.1", "mkdocs", "mkdocs-material", "mkdocs-section-index", "mkdocs-literate-nav", "mkdocs-autorefs", "mkdocs-gen-files", - "mike @ git+https://github.com/jimporter/mike.git@master", + "mike", "pyyaml", "types-pyyaml", "markdown", diff --git a/tools/ci/run/init-py.sh b/tools/ci/run/init-py.sh index 63b01eba8..f75512fb3 100755 --- a/tools/ci/run/init-py.sh +++ b/tools/ci/run/init-py.sh @@ -7,7 +7,7 @@ if ! python3 -c 'import sys; assert sys.version_info >= (3,10)' > /dev/null; the exit 1 fi -python3 -m venv --copies ".venv" +python3.10 -m venv --copies ".venv" || python3 -m venv --copies ".venv" source .venv/bin/activate pip install pdm==2.8.0 pdm install -p tools/ci From 2616581a2a3ac0d6e53385fb4d95e8cb2b317390 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 15 Nov 2023 17:06:13 +0100 Subject: [PATCH 034/180] Remove code redundancies --- docs/tutorial/channels_legend.md | 15 --------------- docs/tutorial/geometry.md | 15 --------------- docs/tutorial/group_stack.md | 15 --------------- 3 files changed, 45 deletions(-) diff --git a/docs/tutorial/channels_legend.md b/docs/tutorial/channels_legend.md index b7275278c..49a1bc439 100644 --- a/docs/tutorial/channels_legend.md +++ b/docs/tutorial/channels_legend.md @@ -21,21 +21,6 @@ them differently with the `style` object introduced in the {!tutorial/assets/setup/setup_b.md!} -```javascript -chart.animate({ - config: { - channels: { - y: { - set: ['Popularity'] - }, - x: { - set: ['Genres'] - }, - }, - } -}) -``` - ```javascript chart.animate({ config: { diff --git a/docs/tutorial/geometry.md b/docs/tutorial/geometry.md index 3a90361ad..5f7aa1851 100644 --- a/docs/tutorial/geometry.md +++ b/docs/tutorial/geometry.md @@ -14,21 +14,6 @@ Switching the geometry to area. {!tutorial/assets/setup/setup_b.md!} -```javascript -chart.animate({ - config: { - channels: { - y: { - set: ['Popularity'] - }, - x: { - set: ['Genres'] - }, - }, - } -}) -``` - ```javascript chart.animate({ config: { diff --git a/docs/tutorial/group_stack.md b/docs/tutorial/group_stack.md index 89b29e529..acecb3508 100644 --- a/docs/tutorial/group_stack.md +++ b/docs/tutorial/group_stack.md @@ -16,21 +16,6 @@ we also add the same dimension to the color channel. {!tutorial/assets/setup/setup_b.md!} -```javascript -chart.animate({ - config: { - channels: { - y: { - set: ['Popularity'] - }, - x: { - set: ['Genres'] - } - } - } -}) -``` - ```javascript chart.animate({ config: { From abc5cb41f06c764d30cc711aa9eb013fa36de403 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 15 Nov 2023 17:35:57 +0100 Subject: [PATCH 035/180] Set version to 0.9.1 --- CHANGELOG.md | 2 ++ docs/tutorial/aggregating_data.md | 2 +- docs/tutorial/align_range.md | 2 +- docs/tutorial/animation_control_keyframes.md | 2 +- docs/tutorial/animation_options.md | 2 +- docs/tutorial/assets/setup/{setup_a.md => setup_a} | 0 docs/tutorial/assets/setup/{setup_b.md => setup_b} | 0 docs/tutorial/assets/setup/{setup_c.md => setup_c} | 0 docs/tutorial/axes_title_tooltip.md | 2 +- docs/tutorial/changing_dimensions.md | 2 +- docs/tutorial/channels_legend.md | 2 +- docs/tutorial/chart_layout.md | 2 +- docs/tutorial/chart_presets.md | 2 +- docs/tutorial/color_palette_fonts.md | 2 +- docs/tutorial/events.md | 2 +- docs/tutorial/filter_add_new_records.md | 2 +- docs/tutorial/geometry.md | 2 +- docs/tutorial/group_stack.md | 2 +- docs/tutorial/orientation_split_polar.md | 2 +- docs/tutorial/shorthands_store.md | 2 +- docs/tutorial/sorting.md | 2 +- docs/tutorial/without_coordinates_noop_channel.md | 2 +- src/chart/main/version.cpp | 2 +- 23 files changed, 21 insertions(+), 19 deletions(-) rename docs/tutorial/assets/setup/{setup_a.md => setup_a} (100%) rename docs/tutorial/assets/setup/{setup_b.md => setup_b} (100%) rename docs/tutorial/assets/setup/{setup_c.md => setup_c} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index e42eb7ff7..56421cac9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] +## [0.9.1] - 2023-11-15 + ### Fixed - Fixed crash on splitted chart with no measure. diff --git a/docs/tutorial/aggregating_data.md b/docs/tutorial/aggregating_data.md index 054bc1eca..0acb44bbc 100644 --- a/docs/tutorial/aggregating_data.md +++ b/docs/tutorial/aggregating_data.md @@ -13,7 +13,7 @@ within `Genres`.
-{!tutorial/assets/setup/setup_a.md!} +{!tutorial/assets/setup/setup_a!} ```javascript chart.animate({ diff --git a/docs/tutorial/align_range.md b/docs/tutorial/align_range.md index 28ec3f478..eb54b323f 100644 --- a/docs/tutorial/align_range.md +++ b/docs/tutorial/align_range.md @@ -21,7 +21,7 @@ whereas on a bar chart, horizontally.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} Change align and configures the y axis labels to disappear during the animation. diff --git a/docs/tutorial/animation_control_keyframes.md b/docs/tutorial/animation_control_keyframes.md index 4a52f0bbd..1417fe717 100644 --- a/docs/tutorial/animation_control_keyframes.md +++ b/docs/tutorial/animation_control_keyframes.md @@ -11,7 +11,7 @@ In this step, we seek forward to `50%` of progress after the animation starts.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/docs/tutorial/animation_options.md b/docs/tutorial/animation_options.md index c4e3ef061..6ddc54b1c 100644 --- a/docs/tutorial/animation_options.md +++ b/docs/tutorial/animation_options.md @@ -14,7 +14,7 @@ the default animation options.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/docs/tutorial/assets/setup/setup_a.md b/docs/tutorial/assets/setup/setup_a similarity index 100% rename from docs/tutorial/assets/setup/setup_a.md rename to docs/tutorial/assets/setup/setup_a diff --git a/docs/tutorial/assets/setup/setup_b.md b/docs/tutorial/assets/setup/setup_b similarity index 100% rename from docs/tutorial/assets/setup/setup_b.md rename to docs/tutorial/assets/setup/setup_b diff --git a/docs/tutorial/assets/setup/setup_c.md b/docs/tutorial/assets/setup/setup_c similarity index 100% rename from docs/tutorial/assets/setup/setup_c.md rename to docs/tutorial/assets/setup/setup_c diff --git a/docs/tutorial/axes_title_tooltip.md b/docs/tutorial/axes_title_tooltip.md index 6c72606a0..7dbaf27e4 100644 --- a/docs/tutorial/axes_title_tooltip.md +++ b/docs/tutorial/axes_title_tooltip.md @@ -15,7 +15,7 @@ the measure (`Popularity`) to the y-axis using the set property.
-{!tutorial/assets/setup/setup_a.md!} +{!tutorial/assets/setup/setup_a!} ```javascript chart.animate({ diff --git a/docs/tutorial/changing_dimensions.md b/docs/tutorial/changing_dimensions.md index bd542230b..1e7733851 100644 --- a/docs/tutorial/changing_dimensions.md +++ b/docs/tutorial/changing_dimensions.md @@ -15,7 +15,7 @@ elements.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/docs/tutorial/channels_legend.md b/docs/tutorial/channels_legend.md index 49a1bc439..84922df02 100644 --- a/docs/tutorial/channels_legend.md +++ b/docs/tutorial/channels_legend.md @@ -19,7 +19,7 @@ them differently with the `style` object introduced in the
-{!tutorial/assets/setup/setup_b.md!} +{!tutorial/assets/setup/setup_b!} ```javascript chart.animate({ diff --git a/docs/tutorial/chart_layout.md b/docs/tutorial/chart_layout.md index 9bdebbb64..a25839e8c 100644 --- a/docs/tutorial/chart_layout.md +++ b/docs/tutorial/chart_layout.md @@ -18,7 +18,7 @@ are aligned.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/docs/tutorial/chart_presets.md b/docs/tutorial/chart_presets.md index ee3d8957d..3b60cb265 100644 --- a/docs/tutorial/chart_presets.md +++ b/docs/tutorial/chart_presets.md @@ -19,7 +19,7 @@ stacked bubble chart using its preset.
-{!tutorial/assets/setup/setup_a.md!} +{!tutorial/assets/setup/setup_a!} ```javascript chart.animate(Vizzu.presets.stackedBubble({ diff --git a/docs/tutorial/color_palette_fonts.md b/docs/tutorial/color_palette_fonts.md index 5c8defa99..b7683f490 100644 --- a/docs/tutorial/color_palette_fonts.md +++ b/docs/tutorial/color_palette_fonts.md @@ -21,7 +21,7 @@ you should add
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/docs/tutorial/events.md b/docs/tutorial/events.md index 5efb6b1cb..22dc79df3 100644 --- a/docs/tutorial/events.md +++ b/docs/tutorial/events.md @@ -14,7 +14,7 @@ block with information about the clicked chart element.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript function clickHandler(event) { diff --git a/docs/tutorial/filter_add_new_records.md b/docs/tutorial/filter_add_new_records.md index d68635a8b..16149585d 100644 --- a/docs/tutorial/filter_add_new_records.md +++ b/docs/tutorial/filter_add_new_records.md @@ -15,7 +15,7 @@ from the chart.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/docs/tutorial/geometry.md b/docs/tutorial/geometry.md index 5f7aa1851..b131fdeb8 100644 --- a/docs/tutorial/geometry.md +++ b/docs/tutorial/geometry.md @@ -12,7 +12,7 @@ Switching the geometry to area.
-{!tutorial/assets/setup/setup_b.md!} +{!tutorial/assets/setup/setup_b!} ```javascript chart.animate({ diff --git a/docs/tutorial/group_stack.md b/docs/tutorial/group_stack.md index acecb3508..38248fd2d 100644 --- a/docs/tutorial/group_stack.md +++ b/docs/tutorial/group_stack.md @@ -14,7 +14,7 @@ we also add the same dimension to the color channel.
-{!tutorial/assets/setup/setup_b.md!} +{!tutorial/assets/setup/setup_b!} ```javascript chart.animate({ diff --git a/docs/tutorial/orientation_split_polar.md b/docs/tutorial/orientation_split_polar.md index 0694b33b4..4a1133d0b 100644 --- a/docs/tutorial/orientation_split_polar.md +++ b/docs/tutorial/orientation_split_polar.md @@ -14,7 +14,7 @@ only use temporarily.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/docs/tutorial/shorthands_store.md b/docs/tutorial/shorthands_store.md index 9e69d3eb0..107f902f2 100644 --- a/docs/tutorial/shorthands_store.md +++ b/docs/tutorial/shorthands_store.md @@ -17,7 +17,7 @@ animate method, you can simplify your code by using only the object of the
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/docs/tutorial/sorting.md b/docs/tutorial/sorting.md index fd04a60b0..fe6c517a7 100644 --- a/docs/tutorial/sorting.md +++ b/docs/tutorial/sorting.md @@ -13,7 +13,7 @@ ascending order.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/docs/tutorial/without_coordinates_noop_channel.md b/docs/tutorial/without_coordinates_noop_channel.md index 4653ee58c..00ca937e3 100644 --- a/docs/tutorial/without_coordinates_noop_channel.md +++ b/docs/tutorial/without_coordinates_noop_channel.md @@ -14,7 +14,7 @@ still on the `color` channel.
-{!tutorial/assets/setup/setup_c.md!} +{!tutorial/assets/setup/setup_c!} ```javascript chart.animate({ diff --git a/src/chart/main/version.cpp b/src/chart/main/version.cpp index 7bbd68fd2..ba3aa55bd 100644 --- a/src/chart/main/version.cpp +++ b/src/chart/main/version.cpp @@ -1,5 +1,5 @@ #include "version.h" -const App::Version Vizzu::Main::version(0, 9, 0); +const App::Version Vizzu::Main::version(0, 9, 1); const char *const Vizzu::Main::siteUrl = "https://vizzuhq.com/"; From 8b60848369d97b29261e455107105d27d258446f Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 15 Nov 2023 18:32:38 +0100 Subject: [PATCH 036/180] Fix changelog --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56421cac9..df54ea4ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -61,8 +61,7 @@ `Vizzu.feature()` with name `cssProperties`. - `shorthands`, `pointerEvents`, `pivotData`, `rendering` features can be disabled through `Vizzu.feature()` -- TypeScript interface made more typesafe, while the javascript api got ported to -- TypeScript. +- TypeScript interface made more typesafe, while the javascript api got ported to TypeScript. - `pointeron` event removed, `pointerleave` event added. - `Vizzu.feature.htmlCanvas.element` introduced to expose the underlying HTML canvas element. - `Vizzu.feature.rendering.update()` introduced to trigger chart re-rendering. From 246fb9f5a28778687ee2c997431b75777a025363 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Thu, 16 Nov 2023 16:44:19 +0100 Subject: [PATCH 037/180] TypeScript definition fixed, measures can contain null values. --- CHANGELOG.md | 4 ++++ src/apps/weblib/ts-api/data.ts | 4 ++-- src/apps/weblib/typeschema-api/data.yaml | 4 +++- tools/ci/type/gen-dts.cjs | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df54ea4ec..ab7863a8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- TypeScript definition fixed, measures can contain null values. + ## [0.9.1] - 2023-11-15 ### Fixed diff --git a/src/apps/weblib/ts-api/data.ts b/src/apps/weblib/ts-api/data.ts index e35232ed8..c2325a2cf 100644 --- a/src/apps/weblib/ts-api/data.ts +++ b/src/apps/weblib/ts-api/data.ts @@ -88,9 +88,9 @@ export class Data { } } - private _detectType(values: (string | number)[]): D.SeriesType | null { + private _detectType(values: (string | number | null)[]): D.SeriesType | null { if (Array.isArray(values) && values.length) { - if (typeof values[0] === 'number') { + if (typeof values[0] === 'number' || values[0] === null) { return 'measure' } else if (typeof values[0] === 'string') { return 'dimension' diff --git a/src/apps/weblib/typeschema-api/data.yaml b/src/apps/weblib/typeschema-api/data.yaml index cae0176b7..cb17b9937 100644 --- a/src/apps/weblib/typeschema-api/data.yaml +++ b/src/apps/weblib/typeschema-api/data.yaml @@ -107,7 +107,9 @@ definitions: - type: array items: { type: string } - type: array - items: { type: number } + items: + type: number + nullable: true Series: $extends: SeriesMetaInfo diff --git a/tools/ci/type/gen-dts.cjs b/tools/ci/type/gen-dts.cjs index bc4fa1d36..0ebaa9f45 100644 --- a/tools/ci/type/gen-dts.cjs +++ b/tools/ci/type/gen-dts.cjs @@ -177,7 +177,7 @@ class DTSGenerator { _getType(name, definition) { const type = this._getRawType(name, definition) if (definition.nullable) { - return `${type} | null` + return `(${type} | null)` } else { return type } From 7ae148cf821bf51d0d85ffd3c67d6a949023a8f8 Mon Sep 17 00:00:00 2001 From: dovicsin Date: Fri, 17 Nov 2023 11:10:41 +0100 Subject: [PATCH 038/180] refact npm script names --- package.json | 132 +++++++++++++++++++++++++-------------------------- 1 file changed, 65 insertions(+), 67 deletions(-) diff --git a/package.json b/package.json index 877635aaf..bd312171f 100644 --- a/package.json +++ b/package.json @@ -46,74 +46,72 @@ "url": "https://github.com/vizzuhq/vizzu-lib.git" }, "scripts": { - "init-js": "npm install", - "init-py": "./tools/ci/run/init-py.sh", - "init-src": "npm run init-js", - "init-docs": "npm run init-js && npm run init-py", - "init-tools": "npm run init-js && npm run init-py", - "init": "npm run init-js && npm run init-py", - "lock-js": "npm update", - "lock-py": "./tools/ci/run/lock-py.sh", - "lock": "npm-run-all lock-js lock-py", - "fix-format-src-js": "npx prettier --config .prettierrc -w src test package.json", - "format-src-js": "npx prettier --config .prettierrc -c src test package.json", - "fix-format-src": "npm-run-all fix-format-src-js", - "format-src": "npm-run-all format-src-js", - "fix-format-docs-js": "npx prettier --config .prettierrc -w docs", - "format-docs-js": "npx prettier --config .prettierrc -c docs", - "fix-format-docs-py": "./tools/ci/run/format-mdformat-py.sh docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", - "format-docs-py": "./tools/ci/run/format-mdformat-py.sh --check docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", - "fix-format-docs": "npm-run-all fix-format-docs-js fix-format-docs-py", - "format-docs": "npm-run-all format-docs-js format-docs-py", - "fix-format-tools-js": "npx prettier --config .prettierrc -w tools/ci tools/docs .prettierrc .eslintrc.cjs .puppeteerrc.cjs .github", - "format-tools-js": "npx prettier --config .prettierrc -c tools/ci tools/docs .prettierrc .eslintrc.cjs .puppeteerrc.cjs .github", - "fix-format-tools-py": "./tools/ci/run/format-black-py.sh tools", - "format-tools-py": "./tools/ci/run/format-black-py.sh --diff --check tools", - "fix-format-tools": "npm-run-all fix-format-tools-js fix-format-tools-py", - "format-tools": "npm-run-all format-tools-js format-tools-py", - "fix-format": "npm-run-all fix-format-src fix-format-docs fix-format-tools", - "format": "npm-run-all format-src format-docs format-tools", - "fix-lint-src-js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs src test", - "lint-src-js": "npx eslint --ext .js,.cjs,.mjs,.ts --config .eslintrc.cjs src test", - "fix-lint-src": "npm-run-all fix-lint-src-js", - "lint-src": "npm-run-all lint-src-js", - "fix-lint-docs-js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", - "lint-docs-js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", - "fix-lint-docs": "npm-run-all fix-lint-docs-js", - "lint-docs": "npm-run-all lint-docs-js", - "fix-lint-tools-js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", - "lint-tools-js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", - "lint-tools-py": "./tools/ci/run/lint-pylint-py.sh tools", - "fix-lint-tools": "npm-run-all fix-lint-tools-js", - "lint-tools": "npm-run-all lint-tools-js lint-tools-py", - "fix-lint": "npm-run-all fix-lint-src fix-lint-docs fix-lint-tools", - "lint": "npm-run-all lint-src lint-docs lint-tools", - "type-tools-py": "./tools/ci/run/type-mypy-py.sh tools", - "type-tools": "npm-run-all type-tools-py", - "type": "npm-run-all type-tools", - "test-unit-src": "NODE_OPTIONS='--experimental-vm-modules' npx jest --config test/unit/jest.config.js --verbose", - "test-unit-test": "npx jest --config=./test/integration/modules/jest.config.cjs --verbose", - "test-man": "node test/integration/man.cjs", + "install": "npm-run-all install:*", + "install:js": "npm install", + "install:py": "./tools/ci/run/init-py.sh", + "lock": "npm-run-all lock:*", + "lock:js": "npm update", + "lock:py": "./tools/ci/run/lock-py.sh", + "format": "npm-run-all format:*", + "format:src": "npm-run-all format-src:*", + "format-src:js": "npx prettier --config .prettierrc -c src test package.json", + "format:docs": "npm-run-all format-docs:*", + "format-docs:js": "npx prettier --config .prettierrc -c docs", + "format-docs:py": "./tools/ci/run/format-mdformat-py.sh --check docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", + "format:tools": "npm-run-all format-tools:*", + "format-tools:js": "npx prettier --config .prettierrc -c tools/ci tools/docs .prettierrc .eslintrc.cjs .puppeteerrc.cjs .github", + "format-tools:py": "./tools/ci/run/format-black-py.sh --diff --check tools", + "lint": "npm-run-all lint:*", + "lint:src": "npm-run-all lint-src:*", + "lint-src:js": "npx eslint --ext .js,.cjs,.mjs,.ts --config .eslintrc.cjs src test", + "lint:docs": "npm-run-all lint-docs:*", + "lint-docs:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", + "lint:tools": "npm-run-all lint-tools:*", + "lint-tools:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", + "lint-tools:py": "./tools/ci/run/lint-pylint-py.sh tools", + "fix": "npm-run-all fix:*", + "fix:format": "npm-run-all fix-format:*", + "fix-format:src": "npm-run-all fix-format-src:js", + "fix-format-src:js": "npx prettier --config .prettierrc -w src test package.json", + "fix-format:docs": "npm-run-all fix-format-docs:*", + "fix-format-docs:js": "npx prettier --config .prettierrc -w docs", + "fix-format-docs:py": "./tools/ci/run/format-mdformat-py.sh docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", + "fix-format:tools": "npm-run-all fix-format-tools:*", + "fix-format-tools:js": "npx prettier --config .prettierrc -w tools/ci tools/docs .prettierrc .eslintrc.cjs .puppeteerrc.cjs .github", + "fix-format-tools:py": "./tools/ci/run/format-black-py.sh tools", + "fix:lint": "npm-run-all fix-lint:*", + "fix-lint:tools": "npm-run-all fix-lint-tools:*", + "fix-lint-tools:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", + "fix-lint:src": "npm-run-all fix-lint-src:*", + "fix-lint-src:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs src test", + "fix-lint:docs": "npm-run-all fix-lint-docs:*", + "fix-lint-docs:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", + "type": "npm-run-all type:*", + "type:tools": "npm-run-all type-tools:*", + "type-tools:py": "./tools/ci/run/type-mypy-py.sh tools", "test": "node test/integration/test.cjs", - "ci-src": "npm-run-all format-src lint-src test-unit-src test-unit-test test", - "ci-docs": "npm-run-all format-docs lint-docs", - "ci-tools": "npm-run-all format-tools lint-tools type-tools", - "ci": "npm-run-all ci-src ci-docs ci-tools", - "docs-gen-thumbnail": "./tools/ci/run/docs-gen-thumbnail.sh", - "docs-gen-thumbnail-gsutil": "./tools/ci/run/docs-gen-thumbnail-gsutil.sh", - "docs-build": "./tools/ci/run/docs-build.sh", - "docs-deploy": "./tools/ci/run/docs-deploy.sh", - "pkg-build-desktop": "./tools/ci/run/pkg-build-desktop.sh", - "pkg-build-desktop-clangformat": "./tools/ci/run/pkg-build-desktop-clangformat.sh", - "pkg-build-desktop-clangtidy": "./tools/ci/run/pkg-build-desktop-clangtidy.sh", - "pkg-build-wasm": "./tools/ci/run/pkg-build-wasm.sh", - "pkg-build-wasm-wocpp": "./tools/ci/run/pkg-build-wasm-wocpp.sh", - "pkg-build-wasm-wocpp-gsutil": "./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh", - "pkg-build-ts": "./tools/ci/run/pkg-build-ts.sh", - "pkg-rollup-js": "./tools/ci/run/pkg-rollup-js.sh", - "pkg-set-version-js": "./tools/ci/run/pkg-set-version-js.sh", - "pkg-build-js": "./tools/ci/run/pkg-build-js.sh", - "pkg-purge-js": "./tools/ci/run/pkg-purge-js.sh" + "test:man": "node test/integration/man.cjs", + "test:unit-test": "npx jest --config=./test/integration/modules/jest.config.cjs --verbose", + "test:unit-src": "NODE_OPTIONS='--experimental-vm-modules' npx jest --config test/unit/jest.config.js --verbose", + "ci": "npm-run-all ci:*", + "ci:src": "npm-run-all format:src lint:src test:unit-src test:unit-test test", + "ci:docs": "npm-run-all format:docs lint:docs", + "ci:tools": "npm-run-all format:tools lint:tools type:tools", + "docs:build": "./tools/ci/run/docs-build.sh", + "docs:deploy": "./tools/ci/run/docs-deploy.sh", + "docs:gen-thumbnail": "./tools/ci/run/docs-gen-thumbnail.sh", + "docs:gen-thumbnail-gsutil": "./tools/ci/run/docs-gen-thumbnail-gsutil.sh", + "pkg:rollup-js": "./tools/ci/run/pkg-rollup-js.sh", + "pkg:set-version-js": "./tools/ci/run/pkg-set-version-js.sh", + "pkg:purge-js": "./tools/ci/run/pkg-purge-js.sh", + "pkg-build:js": "./tools/ci/run/pkg-build-js.sh", + "pkg-build:ts": "./tools/ci/run/pkg-build-ts.sh", + "pkg-build:desktop": "./tools/ci/run/pkg-build-desktop.sh", + "pkg-build:desktop-clangformat": "./tools/ci/run/pkg-build-desktop-clangformat.sh", + "pkg-build:desktop-clangtidy": "./tools/ci/run/pkg-build-desktop-clangtidy.sh", + "pkg-build:wasm": "./tools/ci/run/pkg-build-wasm.sh", + "pkg-build:wasm-wocpp": "./tools/ci/run/pkg-build-wasm-wocpp.sh", + "pkg-build:wasm-wocpp-gsutil": "./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh" }, "devDependencies": { "@rollup/plugin-terser": "^0.4.3", From dda4134325ade81e625aded6419131797c973cdb Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 20 Nov 2023 11:59:25 +0100 Subject: [PATCH 039/180] Move control options to base anim --- project/cmake/weblib/emcc.txt | 2 + src/apps/weblib/cinterface.cpp | 20 ++++++++++ src/apps/weblib/cinterface.h | 5 +++ src/base/anim/control.cpp | 64 +++++++++++++++++--------------- src/base/anim/control.h | 35 +++++++++-------- src/chart/animator/animation.cpp | 2 +- src/chart/animator/animation.h | 2 +- src/chart/animator/animator.cpp | 2 +- src/chart/animator/animator.h | 2 +- src/chart/animator/options.h | 12 +----- 10 files changed, 86 insertions(+), 60 deletions(-) diff --git a/project/cmake/weblib/emcc.txt b/project/cmake/weblib/emcc.txt index 168f0fc93..f564847a8 100644 --- a/project/cmake/weblib/emcc.txt +++ b/project/cmake/weblib/emcc.txt @@ -48,6 +48,8 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \ '_chart_canvasToRelCoords',\ '_chart_setKeyframe',\ '_anim_control',\ +'_anim_control_setValue',\ +'_anim_control_getValue',\ '_anim_setValue'] \ -s ALLOW_TABLE_GROWTH \ --js-library ${CMAKE_CURRENT_LIST_DIR}/../../../src/apps/weblib/canvas.js \ diff --git a/src/apps/weblib/cinterface.cpp b/src/apps/weblib/cinterface.cpp index 46ebe67d8..9fbcf4b99 100644 --- a/src/apps/weblib/cinterface.cpp +++ b/src/apps/weblib/cinterface.cpp @@ -380,6 +380,26 @@ void anim_control(APIHandles::Chart chart, param); } +void anim_control_setValue([[maybe_unused]] APIHandles::Chart chart, + [[maybe_unused]] const char *path, + [[maybe_unused]] const char *value) +{ + /* + return Interface::getInstance().animControl(chart, + path, + value); + */ +} + +void anim_control_getValue([[maybe_unused]] APIHandles::Chart chart, + [[maybe_unused]] const char *path) +{ + /* + return Interface::getInstance().animControl(chart, + path); + */ +} + void anim_setValue(APIHandles::Chart chart, const char *path, const char *value) diff --git a/src/apps/weblib/cinterface.h b/src/apps/weblib/cinterface.h index 28611e03c..fadff87c7 100644 --- a/src/apps/weblib/cinterface.h +++ b/src/apps/weblib/cinterface.h @@ -130,6 +130,11 @@ extern void event_preventDefault(APIHandles::Event event); extern void anim_control(APIHandles::Chart chart, const char *command, const char *param); +extern void anim_control_setValue(APIHandles::Chart chart, + const char *path, + const char *value); +extern void anim_control_getValue(APIHandles::Chart chart, + const char *path); extern void anim_setValue(APIHandles::Chart chart, const char *path, const char *value); diff --git a/src/base/anim/control.cpp b/src/base/anim/control.cpp index c1ea386e7..74391f3d4 100644 --- a/src/base/anim/control.cpp +++ b/src/base/anim/control.cpp @@ -29,10 +29,10 @@ void Control::seek(const std::string &value) Duration Control::getPosition() const { - return controlled.getDuration() * progress; + return controlled.getDuration() * options.position; } -double Control::getProgress() const { return progress; } +double Control::getProgress() const { return options.position; } void Control::seekProgress(double value) { @@ -42,15 +42,15 @@ void Control::seekProgress(double value) void Control::setProgress(double value) { - progress = value; + options.position = value; - if (progress > 1.0) { - playState = PlayState::paused; - progress = 1.0; + if (options.position > 1.0) { + options.playState = PlayState::paused; + options.position = 1.0; } - else if (progress < 0.0) { - playState = PlayState::paused; - progress = 0.0; + else if (options.position < 0.0) { + options.playState = PlayState::paused; + options.position = 0.0; } } @@ -72,13 +72,19 @@ double Control::positionToProgress(Duration pos) const void Control::setSpeed(double speed) { - this->speed = std::max(0.0, speed); + options.speed = std::max(0.0, speed); update(); } -bool Control::atStartPosition() const { return progress <= 0.0; } +bool Control::atStartPosition() const +{ + return options.position <= 0.0; +} -bool Control::atEndPosition() const { return progress >= 1.0; } +bool Control::atEndPosition() const +{ + return options.position >= 1.0; +} bool Control::atIntermediatePosition() const { @@ -87,10 +93,7 @@ bool Control::atIntermediatePosition() const void Control::reset() { - playState = PlayState::paused; - direction = Direction::normal; - progress = 0.0; - speed = 1.0; + options = {PlayState::paused}; actTime = TimePoint(); cancelled = false; finished = false; @@ -98,17 +101,17 @@ void Control::reset() void Control::stop() { - playState = PlayState::paused; - direction = Direction::normal; - progress = 0.0; + options.playState = PlayState::paused; + options.direction = Direction::normal; + options.position = 0.0; update(); } void Control::cancel() { - playState = PlayState::paused; - direction = Direction::normal; - progress = 0.0; + options.playState = PlayState::paused; + options.direction = Direction::normal; + options.position = 0.0; cancelled = true; update(); } @@ -119,23 +122,23 @@ void Control::update(const TimePoint &time) { if (actTime == TimePoint()) actTime = time; - auto running = playState == PlayState::running; + auto running = options.playState == PlayState::running; Duration timeStep{time - std::exchange(actTime, time)}; - timeStep = timeStep * speed - * (direction == Direction::normal ? 1.0 : -1.0); + timeStep = timeStep * options.speed + * (options.direction == Direction::normal ? 1.0 : -1.0); if (running && timeStep != Duration(0.0)) { setPosition(getPosition() + timeStep); } - if (lastProgress != progress) { + if (lastPosition != options.position) { controlled.setPosition(getPosition()); if (onChange) onChange(); } - lastProgress = progress; + lastPosition = options.position; finish(running); } @@ -150,10 +153,11 @@ void Control::finish(bool preRun) } } else if (preRun - && ((direction == Direction::normal && atEndPosition()) - || (direction == Direction::reverse + && ((options.direction == Direction::normal + && atEndPosition()) + || (options.direction == Direction::reverse && atStartPosition())) - && playState != PlayState::running) { + && options.playState != PlayState::running) { if (!finished && onFinish) { onFinish(true); finished = true; diff --git a/src/base/anim/control.h b/src/base/anim/control.h index a57ca8efc..0046846cc 100644 --- a/src/base/anim/control.h +++ b/src/base/anim/control.h @@ -15,6 +15,14 @@ class Control enum class PlayState { paused, running }; enum class Direction { normal, reverse }; + struct Option + { + PlayState playState{PlayState::running}; + Direction direction{Direction::normal}; + double position{0.0}; + double speed{1.0}; + }; + using OnChange = std::function; using OnFinish = std::function; @@ -27,19 +35,19 @@ class Control void seek(const std::string &value); void seekProgress(double value); void seekTime(Duration pos); - void pause() { playState = PlayState::paused; } - void play() { playState = PlayState::running; } - void setPlayState(PlayState state) { playState = state; } - void setDirection(Direction dir) { direction = dir; } + void pause() { options.playState = PlayState::paused; } + void play() { options.playState = PlayState::running; } + void setPlayState(PlayState state) { options.playState = state; } + void setDirection(Direction dir) { options.direction = dir; } void setSpeed(double speed); void stop(); void cancel(); void reverse() { - direction = direction == Direction::normal - ? Direction::reverse - : Direction::normal; + options.direction = options.direction == Direction::normal + ? Direction::reverse + : Direction::normal; } [[nodiscard]] Duration getPosition() const; @@ -47,12 +55,12 @@ class Control [[nodiscard]] bool isRunning() const { - return playState == PlayState::running; + return options.playState == PlayState::running; }; [[nodiscard]] bool isReversed() const { - return direction == Direction::reverse; + return options.direction == Direction::reverse; }; [[nodiscard]] bool atStartPosition() const; @@ -63,15 +71,12 @@ class Control Util::Event<> onComplete; protected: - bool changed{}; bool cancelled{}; bool finished{}; Controllable &controlled; - double progress{0.0}; - double lastProgress{0.0}; - PlayState playState{PlayState::paused}; - Direction direction{Direction::normal}; - double speed{1.0}; + Option options{PlayState::paused}; + double lastPosition{0.0}; + TimePoint actTime; OnFinish onFinish; OnChange onChange; diff --git a/src/chart/animator/animation.cpp b/src/chart/animator/animation.cpp index 4d77f3747..62a58d1c4 100644 --- a/src/chart/animator/animation.cpp +++ b/src/chart/animator/animation.cpp @@ -204,7 +204,7 @@ void Animation::addKeyframe(const Gen::PlotPtr &source, ::Anim::Sequence::addKeyframe(keyframe); } -void Animation::animate(const Options::Control &options, +void Animation::animate(const ::Anim::Control::Option &options, OnComplete onThisCompletes) { if (isRunning()) diff --git a/src/chart/animator/animation.h b/src/chart/animator/animation.h index 769336a65..260e128b9 100644 --- a/src/chart/animator/animation.h +++ b/src/chart/animator/animation.h @@ -22,7 +22,7 @@ class Animation : public ::Anim::Sequence, public ::Anim::Control void addKeyframe(const Gen::PlotPtr &next, const Options::Keyframe &options); - void animate(const Options::Control &options, + void animate(const ::Anim::Control::Option &options, OnComplete onThisCompletes = OnComplete()); private: diff --git a/src/chart/animator/animator.cpp b/src/chart/animator/animator.cpp index 2f973c1e8..aefd437b2 100644 --- a/src/chart/animator/animator.cpp +++ b/src/chart/animator/animator.cpp @@ -22,7 +22,7 @@ void Animator::setAnimation(const Anim::AnimationPtr &animation) nextAnimation = animation; } -void Animator::animate(const Options::Control &options, +void Animator::animate(const ::Anim::Control::Option &options, const Animation::OnComplete &onThisCompletes) { if (running) diff --git a/src/chart/animator/animator.h b/src/chart/animator/animator.h index 6b9c67aa8..7051f2b13 100644 --- a/src/chart/animator/animator.h +++ b/src/chart/animator/animator.h @@ -24,7 +24,7 @@ class Animator void setAnimation(const Anim::AnimationPtr &animation); - void animate(const Options::Control &options = Options::Control(), + void animate(const ::Anim::Control::Option &options = {}, const Animation::OnComplete &onThisCompletes = Animation::OnComplete()); diff --git a/src/chart/animator/options.h b/src/chart/animator/options.h index 5d0cc5a3d..8c6628d30 100644 --- a/src/chart/animator/options.h +++ b/src/chart/animator/options.h @@ -52,18 +52,8 @@ class Options [[nodiscard]] RegroupStrategy getRegroupStrategy() const; }; - struct Control - { - ::Anim::Control::PlayState playState{ - ::Anim::Control::PlayState::running}; - ::Anim::Control::Direction direction{ - ::Anim::Control::Direction::normal}; - double position{0.0}; - double speed{1.0}; - }; - Keyframe keyframe; - Control control; + ::Anim::Control::Option control; void set(const std::string &path, const std::string &value); }; From 8d1c9025e5397e522cc183466bc75044a291ba94 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 20 Nov 2023 14:42:20 +0100 Subject: [PATCH 040/180] Anim control with auto_accessor --- project/cmake/weblib/emcc.txt | 1 - src/apps/weblib/cinterface.cpp | 21 ++----- src/apps/weblib/cinterface.h | 2 +- src/apps/weblib/interface.cpp | 38 ++++++------- src/apps/weblib/interface.h | 8 ++- src/apps/weblib/ts-api/cvizzu.types.d.ts | 3 +- src/base/anim/control.cpp | 46 ++++++++++++---- src/base/anim/control.h | 12 ++-- src/base/refl/auto_accessor.h | 70 ++++++++++++++++++++++++ src/chart/animator/animation.cpp | 5 +- 10 files changed, 139 insertions(+), 67 deletions(-) create mode 100644 src/base/refl/auto_accessor.h diff --git a/project/cmake/weblib/emcc.txt b/project/cmake/weblib/emcc.txt index f564847a8..835d2cde8 100644 --- a/project/cmake/weblib/emcc.txt +++ b/project/cmake/weblib/emcc.txt @@ -47,7 +47,6 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \ '_chart_relToCanvasCoords',\ '_chart_canvasToRelCoords',\ '_chart_setKeyframe',\ -'_anim_control',\ '_anim_control_setValue',\ '_anim_control_getValue',\ '_anim_setValue'] \ diff --git a/src/apps/weblib/cinterface.cpp b/src/apps/weblib/cinterface.cpp index 9fbcf4b99..d7dffde3e 100644 --- a/src/apps/weblib/cinterface.cpp +++ b/src/apps/weblib/cinterface.cpp @@ -371,33 +371,20 @@ void chart_setKeyframe(APIHandles::Chart chart) return Interface::getInstance().setKeyframe(chart); } -void anim_control(APIHandles::Chart chart, - const char *command, - const char *param) -{ - return Interface::getInstance().animControl(chart, - command, - param); -} - void anim_control_setValue([[maybe_unused]] APIHandles::Chart chart, [[maybe_unused]] const char *path, [[maybe_unused]] const char *value) { - /* - return Interface::getInstance().animControl(chart, + return Interface::getInstance().setAnimControlValue(chart, path, value); - */ } -void anim_control_getValue([[maybe_unused]] APIHandles::Chart chart, +const char *anim_control_getValue( + [[maybe_unused]] APIHandles::Chart chart, [[maybe_unused]] const char *path) { - /* - return Interface::getInstance().animControl(chart, - path); - */ + return Interface::getInstance().getAnimControlValue(chart, path); } void anim_setValue(APIHandles::Chart chart, diff --git a/src/apps/weblib/cinterface.h b/src/apps/weblib/cinterface.h index fadff87c7..4e5ca516c 100644 --- a/src/apps/weblib/cinterface.h +++ b/src/apps/weblib/cinterface.h @@ -133,7 +133,7 @@ extern void anim_control(APIHandles::Chart chart, extern void anim_control_setValue(APIHandles::Chart chart, const char *path, const char *value); -extern void anim_control_getValue(APIHandles::Chart chart, +extern const char *anim_control_getValue(APIHandles::Chart chart, const char *path); extern void anim_setValue(APIHandles::Chart chart, const char *path, diff --git a/src/apps/weblib/interface.cpp b/src/apps/weblib/interface.cpp index 4513b393f..c67ecd036 100644 --- a/src/apps/weblib/interface.cpp +++ b/src/apps/weblib/interface.cpp @@ -229,29 +229,27 @@ void Interface::setKeyframe(ObjectRegistry::Handle chart) getChart(chart)->setKeyframe(); } -void Interface::animControl(ObjectRegistry::Handle chart, - const char *command, - const char *param) +void Interface::setAnimControlValue(ObjectRegistry::Handle chart, + const char *path, + const char *value) { auto &&chartPtr = getChart(chart); auto &ctrl = chartPtr->getAnimControl(); - const std::string cmd(command); - if (cmd == "seek") - ctrl.seek(param); - else if (cmd == "setSpeed") - ctrl.setSpeed(std::stod(param)); - else if (cmd == "pause") - ctrl.pause(); - else if (cmd == "play") - ctrl.play(); - else if (cmd == "stop") - ctrl.stop(); - else if (cmd == "cancel") - ctrl.cancel(); - else if (cmd == "reverse") - ctrl.reverse(); - else - throw std::logic_error("invalid animation command"); + + ctrl.setValue(path, value); +} +const char *Interface::getAnimControlValue( + ObjectRegistry::Handle chart, + const char *path) +{ + thread_local std::string res; + + auto &&chartPtr = getChart(chart); + auto &ctrl = chartPtr->getAnimControl(); + + res = ctrl.getValue(path); + + return res.c_str(); } void Interface::setAnimValue(ObjectRegistry::Handle chart, diff --git a/src/apps/weblib/interface.h b/src/apps/weblib/interface.h index c2e9832bb..645fe1298 100644 --- a/src/apps/weblib/interface.h +++ b/src/apps/weblib/interface.h @@ -108,9 +108,11 @@ class Interface void animate(ObjectRegistry::Handle chart, void (*callback)(bool)); void setKeyframe(ObjectRegistry::Handle chart); - void animControl(ObjectRegistry::Handle chart, - const char *command, - const char *param); + void setAnimControlValue(ObjectRegistry::Handle chart, + const char *path, + const char *value); + const char *getAnimControlValue(ObjectRegistry::Handle chart, + const char *path); void setAnimValue(ObjectRegistry::Handle chart, const char *path, const char *value); diff --git a/src/apps/weblib/ts-api/cvizzu.types.d.ts b/src/apps/weblib/ts-api/cvizzu.types.d.ts index 703658c7c..8faf26087 100644 --- a/src/apps/weblib/ts-api/cvizzu.types.d.ts +++ b/src/apps/weblib/ts-api/cvizzu.types.d.ts @@ -127,7 +127,8 @@ export interface CVizzu { _addEventListener(chart: CChartPtr, name: CString, callback: CFunction): void _removeEventListener(chart: CChartPtr, name: CString, callback: CFunction): void _event_preventDefault(event: CEventPtr): void - _anim_control(chart: CChartPtr, command: CString, param: CString): void + _anim_control_setValue(chart: CChartPtr, command: CString, param: CString): void + _anim_control_getValue(chart: CChartPtr, command: CString): CString _anim_setValue(chart: CChartPtr, path: CString, value: CString): void } diff --git a/src/base/anim/control.cpp b/src/base/anim/control.cpp index 74391f3d4..3b88daeab 100644 --- a/src/base/anim/control.cpp +++ b/src/base/anim/control.cpp @@ -2,6 +2,7 @@ #include +#include "base/refl/auto_accessor.h" #include "base/text/valueunit.h" namespace Anim @@ -34,11 +35,7 @@ Duration Control::getPosition() const double Control::getProgress() const { return options.position; } -void Control::seekProgress(double value) -{ - setProgress(value); - update(); -} +void Control::seekProgress(double value) { setProgress(value); } void Control::setProgress(double value) { @@ -86,11 +83,6 @@ bool Control::atEndPosition() const return options.position >= 1.0; } -bool Control::atIntermediatePosition() const -{ - return !atStartPosition() && !atEndPosition(); -} - void Control::reset() { options = {PlayState::paused}; @@ -104,7 +96,6 @@ void Control::stop() options.playState = PlayState::paused; options.direction = Direction::normal; options.position = 0.0; - update(); } void Control::cancel() @@ -113,7 +104,6 @@ void Control::cancel() options.direction = Direction::normal; options.position = 0.0; cancelled = true; - update(); } void Control::update() { update(actTime); } @@ -165,4 +155,36 @@ void Control::finish(bool preRun) } } +void Control::setValue(std::string_view path, + const std::string &value) +{ + if (path == "seek") { seek(value); } + else if (path == "cancel") { + cancel(); + } + else if (path == "stop") { + stop(); + } + else if (auto &&set_accessor = + Refl::Access::getAccessor(path) + .set) { + set_accessor(options, value); + } + else { + throw std::logic_error("invalid animation command"); + } + update(); +} + +std::string Control::getValue(std::string_view path) +{ + if (auto &&get_accessor = + Refl::Access::getAccessor(path).get) { + return get_accessor(options); + } + else { + throw std::logic_error("invalid animation command"); + } +} + } \ No newline at end of file diff --git a/src/base/anim/control.h b/src/base/anim/control.h index 0046846cc..16fb813ab 100644 --- a/src/base/anim/control.h +++ b/src/base/anim/control.h @@ -2,6 +2,7 @@ #define BASE_ANIM_CONTROL_H #include +#include #include "base/anim/controllable.h" #include "base/util/event.h" @@ -35,14 +36,15 @@ class Control void seek(const std::string &value); void seekProgress(double value); void seekTime(Duration pos); - void pause() { options.playState = PlayState::paused; } - void play() { options.playState = PlayState::running; } void setPlayState(PlayState state) { options.playState = state; } void setDirection(Direction dir) { options.direction = dir; } void setSpeed(double speed); void stop(); void cancel(); + void setValue(std::string_view path, const std::string &value); + std::string getValue(std::string_view path); + void reverse() { options.direction = options.direction == Direction::normal @@ -58,14 +60,8 @@ class Control return options.playState == PlayState::running; }; - [[nodiscard]] bool isReversed() const - { - return options.direction == Direction::reverse; - }; - [[nodiscard]] bool atStartPosition() const; [[nodiscard]] bool atEndPosition() const; - [[nodiscard]] bool atIntermediatePosition() const; Util::Event<> onBegin; Util::Event<> onComplete; diff --git a/src/base/refl/auto_accessor.h b/src/base/refl/auto_accessor.h new file mode 100644 index 000000000..e70bc3267 --- /dev/null +++ b/src/base/refl/auto_accessor.h @@ -0,0 +1,70 @@ +#ifndef VIZZU_REFL_AUTO_ACCESS_H +#define VIZZU_REFL_AUTO_ACCESS_H + +#include +#include +#include + +#include "base/conv/parse.h" +#include "base/conv/tostring.h" + +#include "auto_struct.h" + +namespace Refl::Access +{ +template struct Accessor +{ + std::string (*get)(const Object &); + void (*set)(Object &, const std::string &); +}; + +template (nullptr)), + class = std::make_index_sequence>> +constexpr void *accessor_pairs{}; + +template +constexpr std::initializer_list< + std::pair>> + accessor_pairs> = { + {std::tuple_element_t::name(), + {.get = + +[](const Object &o) + { + return Conv::toString( + std::tuple_element_t::get( + o)); + }, + .set = + +[](Object &o, const std::string &str) + { + using Type = std::remove_cvref_t< + decltype(std::tuple_element_t::get(o))>; + auto &member = Refl::Functors::FuncPtr>(o); + member = Conv::parse(str); + }}}...}; + +template +static const std::map> & +getAccessors() +{ + static const std::map> + &accessors{accessor_pairs}; + return accessors; +} + +template +Accessor getAccessor(std::string_view member) +{ + auto &accessors = getAccessors(); + if (auto it = accessors.find(member); it != accessors.end()) + return it->second; + return {}; +} +} + +#endif diff --git a/src/chart/animator/animation.cpp b/src/chart/animator/animation.cpp index 62a58d1c4..94b7c9cd6 100644 --- a/src/chart/animator/animation.cpp +++ b/src/chart/animator/animation.cpp @@ -212,10 +212,7 @@ void Animation::animate(const ::Anim::Control::Option &options, completionCallback = std::move(onThisCompletes); ::Anim::Control::reset(); - ::Anim::Control::setPlayState(options.playState); - ::Anim::Control::setDirection(options.direction); - ::Anim::Control::seekProgress(options.position); - ::Anim::Control::setSpeed(options.speed); + this->options = options; onBegin(); } From 9901e1ea7bc6fe69750e8bdd6d6f3b03d06afae2 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 20 Nov 2023 14:56:15 +0100 Subject: [PATCH 041/180] Refresh .ts module --- src/apps/weblib/ts-api/animcontrol.ts | 18 ++++++++++++------ src/apps/weblib/ts-api/module/canimctrl.ts | 4 ++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/apps/weblib/ts-api/animcontrol.ts b/src/apps/weblib/ts-api/animcontrol.ts index 75c6b4429..e24d1cb5d 100644 --- a/src/apps/weblib/ts-api/animcontrol.ts +++ b/src/apps/weblib/ts-api/animcontrol.ts @@ -29,18 +29,18 @@ export class AnimControl { // eslint-disable-next-line accessor-pairs set speed(value: number) { const param = typeof value !== 'string' ? value.toString() : value - this._animControl('setSpeed', param) + this._animControl('speed', param) } /** Pauses the controlled animation. */ pause(): this { - this._animControl('pause') + this._animControl('playState', 'paused') return this } /** Plays/resumes playing of the controlled animation. */ play(): this { - this._animControl('play') + this._animControl('playState', 'running') return this } @@ -56,13 +56,19 @@ export class AnimControl { return this } - /** Changes the direction of the controlled animation. */ + /** Changes the direction of the controlled animation to reverse. */ reverse(): this { - this._animControl('reverse') + this._animControl('direction', 'reverse') + return this + } + + /** Changes the direction of the controlled animation to forward. */ + forward(): this { + this._animControl('direction', 'normal') return this } private _animControl(command: string, param = ''): void { - this._cControl.animControl(command, param) + this._cControl.setAnimControl(command, param) } } diff --git a/src/apps/weblib/ts-api/module/canimctrl.ts b/src/apps/weblib/ts-api/module/canimctrl.ts index 841e9c701..f030c7695 100644 --- a/src/apps/weblib/ts-api/module/canimctrl.ts +++ b/src/apps/weblib/ts-api/module/canimctrl.ts @@ -4,11 +4,11 @@ import { CObject } from './cenv.js' export class CAnimation extends CObject {} export class CAnimControl extends CObject { - animControl(command: string, param = ''): void { + setAnimControl(command: string, param = ''): void { const ccommand = this._toCString(command) const cparam = this._toCString(param) try { - this._call(this._wasm._anim_control)(ccommand, cparam) + this._call(this._wasm._anim_control_setValue)(ccommand, cparam) } finally { this._wasm._free(cparam) this._wasm._free(ccommand) From b4fd8970fcb529fb4e0afc081a1258c802286aa7 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 20 Nov 2023 15:00:06 +0100 Subject: [PATCH 042/180] Self review --- src/apps/weblib/cinterface.cpp | 11 +++++------ src/base/anim/control.h | 8 -------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/apps/weblib/cinterface.cpp b/src/apps/weblib/cinterface.cpp index d7dffde3e..633ccd65e 100644 --- a/src/apps/weblib/cinterface.cpp +++ b/src/apps/weblib/cinterface.cpp @@ -371,18 +371,17 @@ void chart_setKeyframe(APIHandles::Chart chart) return Interface::getInstance().setKeyframe(chart); } -void anim_control_setValue([[maybe_unused]] APIHandles::Chart chart, - [[maybe_unused]] const char *path, - [[maybe_unused]] const char *value) +void anim_control_setValue(APIHandles::Chart chart, + const char *path, + const char *value) { return Interface::getInstance().setAnimControlValue(chart, path, value); } -const char *anim_control_getValue( - [[maybe_unused]] APIHandles::Chart chart, - [[maybe_unused]] const char *path) +const char *anim_control_getValue(APIHandles::Chart chart, + const char *path) { return Interface::getInstance().getAnimControlValue(chart, path); } diff --git a/src/base/anim/control.h b/src/base/anim/control.h index 16fb813ab..5796bc094 100644 --- a/src/base/anim/control.h +++ b/src/base/anim/control.h @@ -2,7 +2,6 @@ #define BASE_ANIM_CONTROL_H #include -#include #include "base/anim/controllable.h" #include "base/util/event.h" @@ -45,13 +44,6 @@ class Control void setValue(std::string_view path, const std::string &value); std::string getValue(std::string_view path); - void reverse() - { - options.direction = options.direction == Direction::normal - ? Direction::reverse - : Direction::normal; - } - [[nodiscard]] Duration getPosition() const; [[nodiscard]] double getProgress() const; From e8a9cf56184ce19640dfd5ee0e5eb92f6a00a9c5 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Mon, 20 Nov 2023 15:37:27 +0100 Subject: [PATCH 043/180] TS anim control set/get functions added. --- src/apps/weblib/interface.cpp | 1 + src/apps/weblib/ts-api/animcontrol.ts | 70 ++++++++++++++++------ src/apps/weblib/ts-api/module/canimctrl.ts | 22 +++++-- 3 files changed, 68 insertions(+), 25 deletions(-) diff --git a/src/apps/weblib/interface.cpp b/src/apps/weblib/interface.cpp index c67ecd036..b7bd88649 100644 --- a/src/apps/weblib/interface.cpp +++ b/src/apps/weblib/interface.cpp @@ -238,6 +238,7 @@ void Interface::setAnimControlValue(ObjectRegistry::Handle chart, ctrl.setValue(path, value); } + const char *Interface::getAnimControlValue( ObjectRegistry::Handle chart, const char *path) diff --git a/src/apps/weblib/ts-api/animcontrol.ts b/src/apps/weblib/ts-api/animcontrol.ts index e24d1cb5d..69213042a 100644 --- a/src/apps/weblib/ts-api/animcontrol.ts +++ b/src/apps/weblib/ts-api/animcontrol.ts @@ -15,60 +15,92 @@ export class AnimControl { return this._cControl.storeAnim() } - /** Seeks the animation to the position specified by time or progress + /** @deprecated Seeks the animation to the position specified by time or progress percentage. Seeking the animation to the end position while the animation is paused will not trigger the animation complete promise to resolve. */ seek(value: Position): this { const param = typeof value !== 'string' ? value.toString() : value - this._animControl('seek', param) + this._setParam('seek', param) return this } - /** Playback speed of the animation. It is 1.0 by default. + /** Setting the playback speed of the animation. It is 1.0 by default. Negative values are considered 0. */ - // eslint-disable-next-line accessor-pairs set speed(value: number) { const param = typeof value !== 'string' ? value.toString() : value - this._animControl('speed', param) + this._setParam('speed', param) } - /** Pauses the controlled animation. */ + /** Getting the playback speed of the animation. */ + get speed(): number { + return Number(this._getParam('speed')) + } + + /** Setting the playback state of the animation. */ + set playState(value: 'running' | 'paused') { + this._setParam('playState', value) + } + + /** Getting the playback state of the animation. */ + get playState(): 'running' | 'paused' { + return this._getParam('playState') as 'running' | 'paused' + } + + /** Setting the play direction of the animation. */ + set direction(value: 'normal' | 'reverse') { + this._setParam('direction', value) + } + + /** Getting the play direction of the animation. */ + get direction(): 'normal' | 'reverse' { + return this._getParam('direction') as 'normal' | 'reverse' + } + + /** Setting the position of the animation. */ + set position(value: Position) { + this.seek(value) + } + + /** Getting the position of the animation. */ + get position(): number { + return this._getParam('position') as number + } + + /** @deprecated Pauses the controlled animation. */ pause(): this { - this._animControl('playState', 'paused') + this._setParam('playState', 'paused') return this } - /** Plays/resumes playing of the controlled animation. */ + /** @deprecated Plays/resumes playing of the controlled animation. */ play(): this { - this._animControl('playState', 'running') + this._setParam('playState', 'running') return this } /** Stops the current animation seeking it back to its start position. */ stop(): this { - this._animControl('stop') + this._setParam('stop') return this } /** Cancels the animation, will reject the animation promise. */ cancel(): this { - this._animControl('cancel') + this._setParam('cancel') return this } - /** Changes the direction of the controlled animation to reverse. */ + /** @deprecated Changes the direction of the controlled animation to reverse. */ reverse(): this { - this._animControl('direction', 'reverse') + this._setParam('direction', 'reverse') return this } - /** Changes the direction of the controlled animation to forward. */ - forward(): this { - this._animControl('direction', 'normal') - return this + private _setParam(command: string, param = ''): void { + this._cControl.setParam(command, param) } - private _animControl(command: string, param = ''): void { - this._cControl.setAnimControl(command, param) + private _getParam(command: string): unknown { + return this._cControl.getParam(command) } } diff --git a/src/apps/weblib/ts-api/module/canimctrl.ts b/src/apps/weblib/ts-api/module/canimctrl.ts index f030c7695..c493f15e2 100644 --- a/src/apps/weblib/ts-api/module/canimctrl.ts +++ b/src/apps/weblib/ts-api/module/canimctrl.ts @@ -4,14 +4,24 @@ import { CObject } from './cenv.js' export class CAnimation extends CObject {} export class CAnimControl extends CObject { - setAnimControl(command: string, param = ''): void { - const ccommand = this._toCString(command) - const cparam = this._toCString(param) + setParam(path: string, value = ''): void { + const cpath = this._toCString(path) + const cvalue = this._toCString(value) try { - this._call(this._wasm._anim_control_setValue)(ccommand, cparam) + this._call(this._wasm._anim_control_setValue)(cpath, cvalue) } finally { - this._wasm._free(cparam) - this._wasm._free(ccommand) + this._wasm._free(cvalue) + this._wasm._free(cpath) + } + } + + getParam(path: string): unknown { + const cpath = this._toCString(path) + try { + const cvalue = this._call(this._wasm._anim_control_getValue)(cpath) + return this._fromCString(cvalue) + } finally { + this._wasm._free(cpath) } } From 4e0716399cedb895f8c01a329bd08caf5e3ac16b Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 20 Nov 2023 15:39:10 +0100 Subject: [PATCH 044/180] Remove old c function --- src/apps/weblib/cinterface.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/apps/weblib/cinterface.h b/src/apps/weblib/cinterface.h index 4e5ca516c..57bf97bed 100644 --- a/src/apps/weblib/cinterface.h +++ b/src/apps/weblib/cinterface.h @@ -127,9 +127,6 @@ extern void removeEventListener(APIHandles::Chart chart, const char *name, void (*callback)(APIHandles::Event event, const char *)); extern void event_preventDefault(APIHandles::Event event); -extern void anim_control(APIHandles::Chart chart, - const char *command, - const char *param); extern void anim_control_setValue(APIHandles::Chart chart, const char *path, const char *value); From e0ddd989aac01cc2fbd51641771de9979ff7547d Mon Sep 17 00:00:00 2001 From: David Vegh Date: Mon, 20 Nov 2023 16:10:34 +0100 Subject: [PATCH 045/180] Update development dependencies --- package-lock.json | 1071 ++++++++++++++++----------------------- tools/ci/pdm.lock | 344 ++----------- tools/ci/pyproject.toml | 2 +- tools/ci/run/init-py.sh | 2 +- 4 files changed, 486 insertions(+), 933 deletions(-) diff --git a/package-lock.json b/package-lock.json index 99bf205c9..8f0c0c1e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,12 +65,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.13", + "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" }, "engines": { @@ -149,30 +149,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz", - "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/generator": "^7.23.3", "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", + "@babel/parser": "^7.23.3", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -187,13 +187,22 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", + "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0", + "@babel/types": "^7.23.4", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -218,6 +227,15 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", @@ -265,9 +283,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -317,9 +335,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -344,23 +362,23 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", - "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", + "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", "dev": true, "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", @@ -443,9 +461,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", + "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -515,9 +533,9 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -617,9 +635,9 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -646,19 +664,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", + "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/code-frame": "^7.23.4", + "@babel/generator": "^7.23.4", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", + "@babel/parser": "^7.23.4", + "@babel/types": "^7.23.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -676,12 +694,12 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, @@ -711,18 +729,18 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -765,21 +783,21 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", - "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -801,9 +819,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { @@ -1241,9 +1259,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1286,9 +1304,9 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.7.1.tgz", - "integrity": "sha512-nIb8SOBgDEMFY2iS2MdnUZOg2ikcYchRrBoF+wtdjieRFKR2uGRipHY/oFLo+2N6anDualyClPzGywTHRGrLfw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.8.0.tgz", + "integrity": "sha512-TkRHIV6k2D8OlUe8RtG+5jgOF/H98Myx0M6AOafC8DdNVOFiBSFa5cpRDtpm8LXOa9sVwe0+e6Q3FC56X/DZfg==", "dev": true, "dependencies": { "debug": "4.3.4", @@ -1297,7 +1315,7 @@ "proxy-agent": "6.3.1", "tar-fs": "3.0.4", "unbzip2-stream": "1.4.3", - "yargs": "17.7.1" + "yargs": "17.7.2" }, "bin": { "browsers": "lib/cjs/main-cli.js" @@ -1306,24 +1324,6 @@ "node": ">=16.3.0" } }, - "node_modules/@puppeteer/browsers/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@rollup/plugin-terser": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", @@ -1383,9 +1383,9 @@ "dev": true }, "node_modules/@types/babel__core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", - "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -1396,18 +1396,18 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.5", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", - "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", "dev": true, "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", - "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -1415,60 +1415,60 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", - "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/debug": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.9.tgz", - "integrity": "sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, "dependencies": { "@types/ms": "*" } }, "node_modules/@types/graceful-fs": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz", - "integrity": "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==", + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/json5": { @@ -1479,51 +1479,51 @@ "peer": true }, "node_modules/@types/ms": { - "version": "0.7.32", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.32.tgz", - "integrity": "sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==", + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", "dev": true }, "node_modules/@types/node": { - "version": "20.8.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.5.tgz", - "integrity": "sha512-SPlobFgbidfIeOYlzXiEjSYeIJiOCthv+9tSQVpvk4PAdIIc+2SmjNVzWXk9t0Y7dl73Zdf+OgXKHX9XtkqUpw==", + "version": "20.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", + "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", "dev": true, "dependencies": { - "undici-types": "~5.25.1" + "undici-types": "~5.26.4" } }, "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", + "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", "dev": true }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, "node_modules/@types/yargs": { - "version": "17.0.28", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.28.tgz", - "integrity": "sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw==", + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", + "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", "dev": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==", + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, "node_modules/@types/yauzl": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz", - "integrity": "sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "optional": true, "dependencies": { @@ -1531,16 +1531,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", - "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", + "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/type-utils": "6.7.5", - "@typescript-eslint/utils": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/type-utils": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -1565,49 +1565,16 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/parser": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", - "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", + "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4" }, "engines": { @@ -1627,13 +1594,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", - "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5" + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1644,13 +1611,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", - "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", + "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/utils": "6.7.5", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/utils": "6.11.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1671,9 +1638,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", - "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1684,13 +1651,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", - "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1710,51 +1677,18 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", - "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", + "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", "semver": "^7.5.4" }, "engines": { @@ -1768,46 +1702,13 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", - "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/types": "6.11.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1818,6 +1719,12 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -1832,9 +1739,9 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2139,9 +2046,9 @@ } }, "node_modules/axios": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", - "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "dev": true, "dependencies": { "follow-redirects": "^1.15.0", @@ -2208,6 +2115,15 @@ "node": ">=8" } }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", @@ -2438,52 +2354,29 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "peer": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/builtins/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/builtins/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, "peer": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "semver": "^7.0.0" } }, - "node_modules/builtins/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "peer": true - }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -2494,13 +2387,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2525,9 +2419,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001547", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz", - "integrity": "sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==", + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", "dev": true, "funding": [ { @@ -2570,9 +2464,9 @@ } }, "node_modules/chromium-bidi": { - "version": "0.4.31", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.31.tgz", - "integrity": "sha512-OtvEg2JMRQrHsmLx4FV3u1Hf9waYxB5PmL+yM0HkFpc9H2x3TMbUqS+GP2/fC4399hzOO+EQF8uVU43By9ILag==", + "version": "0.4.33", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.33.tgz", + "integrity": "sha512-IxoFM5WGQOIAd95qrSXzJUv4eXIrh+RvU3rwwqIiwYuvfE7U/Llj4fejbsJnjJMUYCuGtVQsY2gv7oGl4aTNSQ==", "dev": true, "dependencies": { "mitt": "3.0.1", @@ -2883,9 +2777,9 @@ } }, "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dev": true, "dependencies": { "get-intrinsic": "^1.2.1", @@ -2965,9 +2859,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1179426", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1179426.tgz", - "integrity": "sha512-KKC7IGwdOr7u9kTGgjUvGTov/z1s2H7oHi3zKCdR9eSDyCPia5CBi4aRhtp7d8uR7l0GS5UTDw3TjKGu5CqINg==", + "version": "0.0.1203626", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1203626.tgz", + "integrity": "sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g==", "dev": true }, "node_modules/diff-sequences": { @@ -3010,9 +2904,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.552", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.552.tgz", - "integrity": "sha512-qMPzA5TEuOAbLFmbpNvO4qkBRe2B5dAxl6H4KxqRNy9cvBeHT2EyzecX0bumBfRhHN8cQJrx6NPd0AAoCCPKQw==", + "version": "1.4.588", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz", + "integrity": "sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w==", "dev": true }, "node_modules/emittery": { @@ -3061,26 +2955,26 @@ } }, "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.5", "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", + "get-intrinsic": "^1.2.2", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", + "hasown": "^2.0.0", "internal-slot": "^1.0.5", "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", @@ -3090,7 +2984,7 @@ "is-string": "^1.0.7", "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.5.1", @@ -3104,7 +2998,7 @@ "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -3114,27 +3008,27 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "peer": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -3203,18 +3097,19 @@ } }, "node_modules/eslint": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", - "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.51.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -3348,9 +3243,9 @@ } }, "node_modules/eslint-plugin-es-x": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.2.0.tgz", - "integrity": "sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.3.0.tgz", + "integrity": "sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==", "dev": true, "peer": true, "dependencies": { @@ -3368,27 +3263,27 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, "peer": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", + "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", "semver": "^6.3.1", "tsconfig-paths": "^3.14.2" }, @@ -3422,10 +3317,20 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/eslint-plugin-n": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.2.0.tgz", - "integrity": "sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz", + "integrity": "sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==", "dev": true, "peer": true, "dependencies": { @@ -3434,6 +3339,7 @@ "eslint-plugin-es-x": "^7.1.0", "get-tsconfig": "^4.7.0", "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", "is-core-module": "^2.12.1", "minimatch": "^3.1.2", "resolve": "^1.22.2", @@ -3449,42 +3355,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-n/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-n/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "peer": true - }, "node_modules/eslint-plugin-promise": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", @@ -3794,9 +3664,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -3934,9 +3804,9 @@ } }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { "flatted": "^3.2.9", @@ -3944,7 +3814,7 @@ "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { @@ -4124,15 +3994,15 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4342,15 +4212,6 @@ "uglify-js": "^3.1.4" } }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -4370,12 +4231,12 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4420,6 +4281,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -4516,9 +4389,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" @@ -4597,13 +4470,13 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -4679,6 +4552,22 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "peer": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -4692,12 +4581,12 @@ } }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4942,9 +4831,9 @@ } }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "engines": { "node": ">=8" @@ -4966,39 +4855,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", @@ -5602,39 +5458,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -5972,39 +5795,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -6478,9 +6268,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6938,9 +6728,9 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -7058,44 +6848,44 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/puppeteer": { - "version": "21.3.8", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.3.8.tgz", - "integrity": "sha512-4OrInVIAtDgcznENUV4Du4gYSZhRmbCkckvOoPstXrUH4JsQ3atSegY+9f/tOKCDB2qh7sXaszDcFEn+RymY0g==", + "version": "21.5.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.5.2.tgz", + "integrity": "sha512-BaAGJOq8Fl6/cck6obmwaNLksuY0Bg/lIahCLhJPGXBFUD2mCffypa4A592MaWnDcye7eaHmSK9yot0pxctY8A==", "dev": true, "hasInstallScript": true, "dependencies": { - "@puppeteer/browsers": "1.7.1", + "@puppeteer/browsers": "1.8.0", "cosmiconfig": "8.3.6", - "puppeteer-core": "21.3.8" + "puppeteer-core": "21.5.2" }, "engines": { - "node": ">=16.3.0" + "node": ">=16.13.2" } }, "node_modules/puppeteer-core": { - "version": "21.3.8", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.3.8.tgz", - "integrity": "sha512-yv12E/+zZ7Lei5tJB4sUkSrsuqKibuYpYxLGbmtLUjjYIqGE5HKz9OUI2I/RFHEvF+pHi2bTbv5bWydeCGJ6Mw==", + "version": "21.5.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.5.2.tgz", + "integrity": "sha512-v4T0cWnujSKs+iEfmb8ccd7u4/x8oblEyKqplqKnJ582Kw8PewYAWvkH4qUWhitN3O2q9RF7dzkvjyK5HbzjLA==", "dev": true, "dependencies": { - "@puppeteer/browsers": "1.7.1", - "chromium-bidi": "0.4.31", + "@puppeteer/browsers": "1.8.0", + "chromium-bidi": "0.4.33", "cross-fetch": "4.0.0", "debug": "4.3.4", - "devtools-protocol": "0.0.1179426", + "devtools-protocol": "0.0.1203626", "ws": "8.14.2" }, "engines": { - "node": ">=16.3.0" + "node": ">=16.13.2" } }, "node_modules/puppeteer-extra": { @@ -7208,9 +6998,9 @@ } }, "node_modules/puppeteer-extra-plugin-user-data-dir/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -7589,14 +7379,38 @@ "dev": true }, "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -7666,6 +7480,21 @@ "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-function-name": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", @@ -7937,9 +7766,9 @@ } }, "node_modules/streamx": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz", - "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==", + "version": "2.15.5", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", + "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", "dev": true, "dependencies": { "fast-fifo": "^1.1.0", @@ -8133,9 +7962,9 @@ } }, "node_modules/terser": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.21.0.tgz", - "integrity": "sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==", + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -8304,9 +8133,9 @@ } }, "node_modules/type-fest": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.6.0.tgz", - "integrity": "sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.1.tgz", + "integrity": "sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q==", "dev": true, "engines": { "node": ">=16" @@ -8394,9 +8223,9 @@ } }, "node_modules/typedoc": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.2.tgz", - "integrity": "sha512-286F7BeATBiWe/qC4PCOCKlSTwfnsLbC/4cZ68oGBbvAqb9vV33quEOXx7q176OXotD+JdEerdQ1OZGJ818lnA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.3.tgz", + "integrity": "sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw==", "dev": true, "dependencies": { "lunr": "^2.3.9", @@ -8427,9 +8256,9 @@ } }, "node_modules/typedoc-plugin-rename-defaults": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/typedoc-plugin-rename-defaults/-/typedoc-plugin-rename-defaults-0.6.6.tgz", - "integrity": "sha512-8TCDrxMG8cR0IRhMZbxMCXlmQrEwFFH0she4eHsaUGd1TPfrkk8GLO4n2qlSISd66OtT28e17ysiVZPbQnLGMg==", + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/typedoc-plugin-rename-defaults/-/typedoc-plugin-rename-defaults-0.6.7.tgz", + "integrity": "sha512-b+j0qQCdE69IUP6ZJgS6zonG59AcaKM8B8zdNlj1jnv6XefDLkIWdFxXfS3KhFOpVzW22pNCfdOCCym9ryS3wA==", "dev": true, "peerDependencies": { "typedoc": "0.22.x || 0.23.x || 0.24.x || 0.25.x" @@ -8511,9 +8340,9 @@ } }, "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, "node_modules/universalify": { @@ -8690,13 +8519,13 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "call-bind": "^1.0.4", "for-each": "^0.3.3", "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" @@ -8787,9 +8616,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", - "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "dev": true, "engines": { "node": ">= 14" diff --git a/tools/ci/pdm.lock b/tools/ci/pdm.lock index 72ae37ed8..5d40d2c07 100644 --- a/tools/ci/pdm.lock +++ b/tools/ci/pdm.lock @@ -3,10 +3,9 @@ [metadata] groups = ["default", "codequality", "docs", "packagetool"] -cross_platform = true -static_urls = false -lock_version = "4.3" -content_hash = "sha256:e2ec3ea83f020d0a9ee8731f8512235d145155161f8e08c11b277ecd91dad12a" +strategy = ["cross_platform"] +lock_version = "4.4" +content_hash = "sha256:5fa638f204eae191ae1db9b1a5b14a16bf96b6ce152a514455b269dba5d039e0" [[package]] name = "astroid" @@ -100,14 +99,6 @@ files = [ {file = "black-23.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:698c1e0d5c43354ec5d6f4d914d0d553a9ada56c85415700b81dc90125aac244"}, {file = "black-23.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760415ccc20f9e8747084169110ef75d545f3b0932ee21368f63ac0fee86b221"}, {file = "black-23.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:58e5f4d08a205b11800332920e285bd25e1a75c54953e05502052738fe16b3b5"}, - {file = "black-23.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:45aa1d4675964946e53ab81aeec7a37613c1cb71647b5394779e6efb79d6d187"}, - {file = "black-23.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c44b7211a3a0570cc097e81135faa5f261264f4dfaa22bd5ee2875a4e773bd6"}, - {file = "black-23.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9acad1451632021ee0d146c8765782a0c3846e0e0ea46659d7c4f89d9b212b"}, - {file = "black-23.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:fc7f6a44d52747e65a02558e1d807c82df1d66ffa80a601862040a43ec2e3142"}, - {file = "black-23.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7f622b6822f02bfaf2a5cd31fdb7cd86fcf33dab6ced5185c35f5db98260b055"}, - {file = "black-23.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:250d7e60f323fcfc8ea6c800d5eba12f7967400eb6c2d21ae85ad31c204fb1f4"}, - {file = "black-23.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5133f5507007ba08d8b7b263c7aa0f931af5ba88a29beacc4b2dc23fcefe9c06"}, - {file = "black-23.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:421f3e44aa67138ab1b9bfbc22ee3780b22fa5b291e4db8ab7eee95200726b07"}, {file = "black-23.11.0-py3-none-any.whl", hash = "sha256:54caaa703227c6e0c87b76326d0862184729a69b73d3b7305b6288e1d830067e"}, {file = "black-23.11.0.tar.gz", hash = "sha256:4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05"}, ] @@ -153,12 +144,12 @@ files = [ [[package]] name = "certifi" -version = "2023.7.22" +version = "2023.11.17" requires_python = ">=3.6" summary = "Python package for providing Mozilla's CA Bundle." files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, + {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, + {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, ] [[package]] @@ -213,49 +204,6 @@ files = [ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] @@ -442,13 +390,6 @@ version = "4.9.3" requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" summary = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." files = [ - {file = "lxml-4.9.3-cp27-cp27m-macosx_11_0_x86_64.whl", hash = "sha256:b0a545b46b526d418eb91754565ba5b63b1c0b12f9bd2f808c852d9b4b2f9b5c"}, - {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:075b731ddd9e7f68ad24c635374211376aa05a281673ede86cbe1d1b3455279d"}, - {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1e224d5755dba2f4a9498e150c43792392ac9b5380aa1b845f98a1618c94eeef"}, - {file = "lxml-4.9.3-cp27-cp27m-win32.whl", hash = "sha256:2c74524e179f2ad6d2a4f7caf70e2d96639c0954c943ad601a9e146c76408ed7"}, - {file = "lxml-4.9.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4f1026bc732b6a7f96369f7bfe1a4f2290fb34dce00d8644bc3036fb351a4ca1"}, - {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0781a98ff5e6586926293e59480b64ddd46282953203c76ae15dbbbf302e8bb"}, - {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cef2502e7e8a96fe5ad686d60b49e1ab03e438bd9123987994528febd569868e"}, {file = "lxml-4.9.3-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b86164d2cff4d3aaa1f04a14685cbc072efd0b4f99ca5708b2ad1b9b5988a991"}, {file = "lxml-4.9.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:42871176e7896d5d45138f6d28751053c711ed4d48d8e30b498da155af39aebd"}, {file = "lxml-4.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ae8b9c6deb1e634ba4f1930eb67ef6e6bf6a44b6eb5ad605642b2d6d5ed9ce3c"}, @@ -473,52 +414,6 @@ files = [ {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b4e4bc18382088514ebde9328da057775055940a1f2e18f6ad2d78aa0f3ec5b9"}, {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fc9b106a1bf918db68619fdcd6d5ad4f972fdd19c01d19bdb6bf63f3589a9ec5"}, {file = "lxml-4.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d37017287a7adb6ab77e1c5bee9bcf9660f90ff445042b790402a654d2ad81d8"}, - {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56dc1f1ebccc656d1b3ed288f11e27172a01503fc016bcabdcbc0978b19352b7"}, - {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:578695735c5a3f51569810dfebd05dd6f888147a34f0f98d4bb27e92b76e05c2"}, - {file = "lxml-4.9.3-cp35-cp35m-win32.whl", hash = "sha256:704f61ba8c1283c71b16135caf697557f5ecf3e74d9e453233e4771d68a1f42d"}, - {file = "lxml-4.9.3-cp35-cp35m-win_amd64.whl", hash = "sha256:c41bfca0bd3532d53d16fd34d20806d5c2b1ace22a2f2e4c0008570bf2c58833"}, - {file = "lxml-4.9.3-cp36-cp36m-macosx_11_0_x86_64.whl", hash = "sha256:64f479d719dc9f4c813ad9bb6b28f8390360660b73b2e4beb4cb0ae7104f1c12"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:dd708cf4ee4408cf46a48b108fb9427bfa00b9b85812a9262b5c668af2533ea5"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c31c7462abdf8f2ac0577d9f05279727e698f97ecbb02f17939ea99ae8daa98"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e3cd95e10c2610c360154afdc2f1480aea394f4a4f1ea0a5eacce49640c9b190"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:4930be26af26ac545c3dffb662521d4e6268352866956672231887d18f0eaab2"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4aec80cde9197340bc353d2768e2a75f5f60bacda2bab72ab1dc499589b3878c"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:14e019fd83b831b2e61baed40cab76222139926b1fb5ed0e79225bc0cae14584"}, - {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0c0850c8b02c298d3c7006b23e98249515ac57430e16a166873fc47a5d549287"}, - {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:aca086dc5f9ef98c512bac8efea4483eb84abbf926eaeedf7b91479feb092458"}, - {file = "lxml-4.9.3-cp36-cp36m-win32.whl", hash = "sha256:50baa9c1c47efcaef189f31e3d00d697c6d4afda5c3cde0302d063492ff9b477"}, - {file = "lxml-4.9.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bef4e656f7d98aaa3486d2627e7d2df1157d7e88e7efd43a65aa5dd4714916cf"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:46f409a2d60f634fe550f7133ed30ad5321ae2e6630f13657fb9479506b00601"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:4c28a9144688aef80d6ea666c809b4b0e50010a2aca784c97f5e6bf143d9f129"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:141f1d1a9b663c679dc524af3ea1773e618907e96075262726c7612c02b149a4"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:53ace1c1fd5a74ef662f844a0413446c0629d151055340e9893da958a374f70d"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17a753023436a18e27dd7769e798ce302963c236bc4114ceee5b25c18c52c693"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7d298a1bd60c067ea75d9f684f5f3992c9d6766fadbc0bcedd39750bf344c2f4"}, - {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:081d32421db5df44c41b7f08a334a090a545c54ba977e47fd7cc2deece78809a"}, - {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:23eed6d7b1a3336ad92d8e39d4bfe09073c31bfe502f20ca5116b2a334f8ec02"}, - {file = "lxml-4.9.3-cp37-cp37m-win32.whl", hash = "sha256:1509dd12b773c02acd154582088820893109f6ca27ef7291b003d0e81666109f"}, - {file = "lxml-4.9.3-cp37-cp37m-win_amd64.whl", hash = "sha256:120fa9349a24c7043854c53cae8cec227e1f79195a7493e09e0c12e29f918e52"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4d2d1edbca80b510443f51afd8496be95529db04a509bc8faee49c7b0fb6d2cc"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:8d7e43bd40f65f7d97ad8ef5c9b1778943d02f04febef12def25f7583d19baac"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:71d66ee82e7417828af6ecd7db817913cb0cf9d4e61aa0ac1fde0583d84358db"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:6fc3c450eaa0b56f815c7b62f2b7fba7266c4779adcf1cece9e6deb1de7305ce"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65299ea57d82fb91c7f019300d24050c4ddeb7c5a190e076b5f48a2b43d19c42"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:eadfbbbfb41b44034a4c757fd5d70baccd43296fb894dba0295606a7cf3124aa"}, - {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3e9bdd30efde2b9ccfa9cb5768ba04fe71b018a25ea093379c857c9dad262c40"}, - {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fcdd00edfd0a3001e0181eab3e63bd5c74ad3e67152c84f93f13769a40e073a7"}, - {file = "lxml-4.9.3-cp38-cp38-win32.whl", hash = "sha256:57aba1bbdf450b726d58b2aea5fe47c7875f5afb2c4a23784ed78f19a0462574"}, - {file = "lxml-4.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:92af161ecbdb2883c4593d5ed4815ea71b31fafd7fd05789b23100d081ecac96"}, - {file = "lxml-4.9.3-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:9bb6ad405121241e99a86efff22d3ef469024ce22875a7ae045896ad23ba2340"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8ed74706b26ad100433da4b9d807eae371efaa266ffc3e9191ea436087a9d6a7"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fbf521479bcac1e25a663df882c46a641a9bff6b56dc8b0fafaebd2f66fb231b"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:303bf1edce6ced16bf67a18a1cf8339d0db79577eec5d9a6d4a80f0fb10aa2da"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:5515edd2a6d1a5a70bfcdee23b42ec33425e405c5b351478ab7dc9347228f96e"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:690dafd0b187ed38583a648076865d8c229661ed20e48f2335d68e2cf7dc829d"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b6420a005548ad52154c8ceab4a1290ff78d757f9e5cbc68f8c77089acd3c432"}, - {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bb3bb49c7a6ad9d981d734ef7c7193bc349ac338776a0360cc671eaee89bcf69"}, - {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d27be7405547d1f958b60837dc4c1007da90b8b23f54ba1f8b728c78fdb19d50"}, - {file = "lxml-4.9.3-cp39-cp39-win32.whl", hash = "sha256:8df133a2ea5e74eef5e8fc6f19b9e085f758768a16e9877a60aec455ed2609b2"}, - {file = "lxml-4.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:4dd9a263e845a72eacb60d12401e37c616438ea2e5442885f65082c276dfb2b2"}, {file = "lxml-4.9.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6689a3d7fd13dc687e9102a27e98ef33730ac4fe37795d5036d18b4d527abd35"}, {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f6bdac493b949141b733c5345b6ba8f87a226029cbabc7e9e121a413e49441e0"}, {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:05186a0f1346ae12553d66df1cfce6f251589fea3ad3da4f3ef4e34b2d58c6a3"}, @@ -608,35 +503,6 @@ files = [ {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, ] @@ -940,7 +806,7 @@ files = [ [[package]] name = "mkdocs-material" -version = "9.4.8" +version = "9.4.10" requires_python = ">=3.8" summary = "Documentation that simply works" dependencies = [ @@ -957,8 +823,8 @@ dependencies = [ "requests~=2.26", ] files = [ - {file = "mkdocs_material-9.4.8-py3-none-any.whl", hash = "sha256:8b20f6851bddeef37dced903893cd176cf13a21a482e97705a103c45f06ce9b9"}, - {file = "mkdocs_material-9.4.8.tar.gz", hash = "sha256:f0c101453e8bc12b040e8b64ca39a405d950d8402609b1378cc2b98976e74b5f"}, + {file = "mkdocs_material-9.4.10-py3-none-any.whl", hash = "sha256:207c4ebc07faebb220437d2c626edb0c9760c82ccfc484500bd3eb30dfce988c"}, + {file = "mkdocs_material-9.4.10.tar.gz", hash = "sha256:421adedaeaa461dcaf55b8d406673934ade3d4f05ed9819e4cc7b4ee1d646a62"}, ] [[package]] @@ -1023,28 +889,6 @@ files = [ {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e45ae4927759289c30ccba8d9fdce62bb414977ba158286b5ddaf8df2cddb5c5"}, {file = "msgpack-1.0.7-cp312-cp312-win32.whl", hash = "sha256:27dcd6f46a21c18fa5e5deed92a43d4554e3df8d8ca5a47bf0615d6a5f39dbc9"}, {file = "msgpack-1.0.7-cp312-cp312-win_amd64.whl", hash = "sha256:7687e22a31e976a0e7fc99c2f4d11ca45eff652a81eb8c8085e9609298916dcf"}, - {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5b6ccc0c85916998d788b295765ea0e9cb9aac7e4a8ed71d12e7d8ac31c23c95"}, - {file = "msgpack-1.0.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:235a31ec7db685f5c82233bddf9858748b89b8119bf4538d514536c485c15fe0"}, - {file = "msgpack-1.0.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cab3db8bab4b7e635c1c97270d7a4b2a90c070b33cbc00c99ef3f9be03d3e1f7"}, - {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bfdd914e55e0d2c9e1526de210f6fe8ffe9705f2b1dfcc4aecc92a4cb4b533d"}, - {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36e17c4592231a7dbd2ed09027823ab295d2791b3b1efb2aee874b10548b7524"}, - {file = "msgpack-1.0.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38949d30b11ae5f95c3c91917ee7a6b239f5ec276f271f28638dec9156f82cfc"}, - {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ff1d0899f104f3921d94579a5638847f783c9b04f2d5f229392ca77fba5b82fc"}, - {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dc43f1ec66eb8440567186ae2f8c447d91e0372d793dfe8c222aec857b81a8cf"}, - {file = "msgpack-1.0.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dd632777ff3beaaf629f1ab4396caf7ba0bdd075d948a69460d13d44357aca4c"}, - {file = "msgpack-1.0.7-cp38-cp38-win32.whl", hash = "sha256:4e71bc4416de195d6e9b4ee93ad3f2f6b2ce11d042b4d7a7ee00bbe0358bd0c2"}, - {file = "msgpack-1.0.7-cp38-cp38-win_amd64.whl", hash = "sha256:8f5b234f567cf76ee489502ceb7165c2a5cecec081db2b37e35332b537f8157c"}, - {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfef2bb6ef068827bbd021017a107194956918ab43ce4d6dc945ffa13efbc25f"}, - {file = "msgpack-1.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:484ae3240666ad34cfa31eea7b8c6cd2f1fdaae21d73ce2974211df099a95d81"}, - {file = "msgpack-1.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3967e4ad1aa9da62fd53e346ed17d7b2e922cba5ab93bdd46febcac39be636fc"}, - {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dd178c4c80706546702c59529ffc005681bd6dc2ea234c450661b205445a34d"}, - {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6ffbc252eb0d229aeb2f9ad051200668fc3a9aaa8994e49f0cb2ffe2b7867e7"}, - {file = "msgpack-1.0.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:822ea70dc4018c7e6223f13affd1c5c30c0f5c12ac1f96cd8e9949acddb48a61"}, - {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:384d779f0d6f1b110eae74cb0659d9aa6ff35aaf547b3955abf2ab4c901c4819"}, - {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f64e376cd20d3f030190e8c32e1c64582eba56ac6dc7d5b0b49a9d44021b52fd"}, - {file = "msgpack-1.0.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5ed82f5a7af3697b1c4786053736f24a0efd0a1b8a130d4c7bfee4b9ded0f08f"}, - {file = "msgpack-1.0.7-cp39-cp39-win32.whl", hash = "sha256:f26a07a6e877c76a88e3cecac8531908d980d3d5067ff69213653649ec0f60ad"}, - {file = "msgpack-1.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:1dc93e8e4653bdb5910aed79f11e165c85732067614f180f70534f056da97db3"}, {file = "msgpack-1.0.7.tar.gz", hash = "sha256:572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87"}, ] @@ -1074,16 +918,6 @@ files = [ {file = "mypy-1.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93e76c2256aa50d9c82a88e2f569232e9862c9982095f6d54e13509f01222fc"}, {file = "mypy-1.7.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cddee95dea7990e2215576fae95f6b78a8c12f4c089d7e4367564704e99118d3"}, {file = "mypy-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:d01921dbd691c4061a3e2ecdbfbfad029410c5c2b1ee88946bf45c62c6c91210"}, - {file = "mypy-1.7.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:185cff9b9a7fec1f9f7d8352dff8a4c713b2e3eea9c6c4b5ff7f0edf46b91e41"}, - {file = "mypy-1.7.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7b1e399c47b18feb6f8ad4a3eef3813e28c1e871ea7d4ea5d444b2ac03c418"}, - {file = "mypy-1.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc9fe455ad58a20ec68599139ed1113b21f977b536a91b42bef3ffed5cce7391"}, - {file = "mypy-1.7.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d0fa29919d2e720c8dbaf07d5578f93d7b313c3e9954c8ec05b6d83da592e5d9"}, - {file = "mypy-1.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:2b53655a295c1ed1af9e96b462a736bf083adba7b314ae775563e3fb4e6795f5"}, - {file = "mypy-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c1b06b4b109e342f7dccc9efda965fc3970a604db70f8560ddfdee7ef19afb05"}, - {file = "mypy-1.7.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bf7a2f0a6907f231d5e41adba1a82d7d88cf1f61a70335889412dec99feeb0f8"}, - {file = "mypy-1.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:551d4a0cdcbd1d2cccdcc7cb516bb4ae888794929f5b040bb51aae1846062901"}, - {file = "mypy-1.7.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:55d28d7963bef00c330cb6461db80b0b72afe2f3c4e2963c99517cf06454e665"}, - {file = "mypy-1.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:870bd1ffc8a5862e593185a4c169804f2744112b4a7c55b93eb50f48e7a77010"}, {file = "mypy-1.7.0-py3-none-any.whl", hash = "sha256:96650d9a4c651bc2a4991cf46f100973f656d69edc7faf91844e87fe627f7e96"}, {file = "mypy-1.7.0.tar.gz", hash = "sha256:1e280b5697202efa698372d2f39e9a6713a0395a756b1c6bd48995f8d72690dc"}, ] @@ -1128,14 +962,14 @@ files = [ [[package]] name = "pdm" -version = "2.8.0" +version = "2.10.3" requires_python = ">=3.7" summary = "A modern Python package and dependency manager supporting the latest PEP standards" dependencies = [ "blinker", "cachecontrol[filecache]>=0.13.0", "certifi", - "findpython>=0.3.0", + "findpython<1.0.0a0,>=0.4.0", "installer<0.8,>=0.7", "packaging!=22.0,>=20.9", "platformdirs", @@ -1147,12 +981,13 @@ dependencies = [ "shellingham>=1.3.2", "tomli>=1.1.0; python_version < \"3.11\"", "tomlkit<1,>=0.11.1", - "unearth>=0.9.0", + "truststore; python_version >= \"3.10\"", + "unearth>=0.12.1", "virtualenv>=20", ] files = [ - {file = "pdm-2.8.0-py3-none-any.whl", hash = "sha256:5ddd0921de8054abaeb70149b63a0c29dfa5d12c561b3a774cf04c43a85f6f08"}, - {file = "pdm-2.8.0.tar.gz", hash = "sha256:060b1628fda465f2c41e064d212ca9eba630c346a3305e115ae23a4c2cf024da"}, + {file = "pdm-2.10.3-py3-none-any.whl", hash = "sha256:9caad0bc4a2ee8de02e39c673a142b47c170091908a584ed2024854be08cdf13"}, + {file = "pdm-2.10.3.tar.gz", hash = "sha256:46dafc8a4fe268c46479876e52c6967f7a9aa385e1e574e64248670a37b358ff"}, ] [[package]] @@ -1188,24 +1023,6 @@ files = [ {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b"}, {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f"}, {file = "Pillow-10.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996"}, - {file = "Pillow-10.1.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793"}, - {file = "Pillow-10.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e"}, - {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2"}, - {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a"}, - {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01"}, - {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d"}, - {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80"}, - {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212"}, - {file = "Pillow-10.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14"}, - {file = "Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099"}, - {file = "Pillow-10.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616"}, - {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb"}, - {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219"}, - {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34"}, - {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd"}, - {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28"}, - {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2"}, - {file = "Pillow-10.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256"}, {file = "Pillow-10.1.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7"}, {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba"}, {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4"}, @@ -1229,12 +1046,12 @@ files = [ [[package]] name = "pygments" -version = "2.16.1" +version = "2.17.1" requires_python = ">=3.7" summary = "Pygments is a syntax highlighting package written in Python." files = [ - {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, - {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, + {file = "pygments-2.17.1-py3-none-any.whl", hash = "sha256:1b37f1b1e1bff2af52ecaf28cc601e2ef7077000b227a0675da25aef85784bc4"}, + {file = "pygments-2.17.1.tar.gz", hash = "sha256:e45a0e74bf9c530f564ca81b8952343be986a29f6afe7f5ad95c5f06b7bdf5e8"}, ] [[package]] @@ -1347,33 +1164,6 @@ files = [ {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] @@ -1439,50 +1229,6 @@ files = [ {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5a8f91c64f390ecee09ff793319f30a0f32492e99f5dc1c72bc361f23ccd0a9a"}, {file = "regex-2023.10.3-cp312-cp312-win32.whl", hash = "sha256:ad08a69728ff3c79866d729b095872afe1e0557251da4abb2c5faff15a91d19a"}, {file = "regex-2023.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:39cdf8d141d6d44e8d5a12a8569d5a227f645c87df4f92179bd06e2e2705e76b"}, - {file = "regex-2023.10.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4a3ee019a9befe84fa3e917a2dd378807e423d013377a884c1970a3c2792d293"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76066d7ff61ba6bf3cb5efe2428fc82aac91802844c022d849a1f0f53820502d"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe50b61bab1b1ec260fa7cd91106fa9fece57e6beba05630afe27c71259c59b"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fd88f373cb71e6b59b7fa597e47e518282455c2734fd4306a05ca219a1991b0"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ab05a182c7937fb374f7e946f04fb23a0c0699c0450e9fb02ef567412d2fa3"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dac37cf08fcf2094159922edc7a2784cfcc5c70f8354469f79ed085f0328ebdf"}, - {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e54ddd0bb8fb626aa1f9ba7b36629564544954fff9669b15da3610c22b9a0991"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3367007ad1951fde612bf65b0dffc8fd681a4ab98ac86957d16491400d661302"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:16f8740eb6dbacc7113e3097b0a36065a02e37b47c936b551805d40340fb9971"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:f4f2ca6df64cbdd27f27b34f35adb640b5d2d77264228554e68deda54456eb11"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:39807cbcbe406efca2a233884e169d056c35aa7e9f343d4e78665246a332f597"}, - {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7eece6fbd3eae4a92d7c748ae825cbc1ee41a89bb1c3db05b5578ed3cfcfd7cb"}, - {file = "regex-2023.10.3-cp37-cp37m-win32.whl", hash = "sha256:ce615c92d90df8373d9e13acddd154152645c0dc060871abf6bd43809673d20a"}, - {file = "regex-2023.10.3-cp37-cp37m-win_amd64.whl", hash = "sha256:0f649fa32fe734c4abdfd4edbb8381c74abf5f34bc0b3271ce687b23729299ed"}, - {file = "regex-2023.10.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b98b7681a9437262947f41c7fac567c7e1f6eddd94b0483596d320092004533"}, - {file = "regex-2023.10.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:91dc1d531f80c862441d7b66c4505cd6ea9d312f01fb2f4654f40c6fdf5cc37a"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82fcc1f1cc3ff1ab8a57ba619b149b907072e750815c5ba63e7aa2e1163384a4"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7979b834ec7a33aafae34a90aad9f914c41fd6eaa8474e66953f3f6f7cbd4368"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef71561f82a89af6cfcbee47f0fabfdb6e63788a9258e913955d89fdd96902ab"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd829712de97753367153ed84f2de752b86cd1f7a88b55a3a775eb52eafe8a94"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00e871d83a45eee2f8688d7e6849609c2ca2a04a6d48fba3dff4deef35d14f07"}, - {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:706e7b739fdd17cb89e1fbf712d9dc21311fc2333f6d435eac2d4ee81985098c"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cc3f1c053b73f20c7ad88b0d1d23be7e7b3901229ce89f5000a8399746a6e039"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f85739e80d13644b981a88f529d79c5bdf646b460ba190bffcaf6d57b2a9863"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:741ba2f511cc9626b7561a440f87d658aabb3d6b744a86a3c025f866b4d19e7f"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e77c90ab5997e85901da85131fd36acd0ed2221368199b65f0d11bca44549711"}, - {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:979c24cbefaf2420c4e377ecd1f165ea08cc3d1fbb44bdc51bccbbf7c66a2cb4"}, - {file = "regex-2023.10.3-cp38-cp38-win32.whl", hash = "sha256:58837f9d221744d4c92d2cf7201c6acd19623b50c643b56992cbd2b745485d3d"}, - {file = "regex-2023.10.3-cp38-cp38-win_amd64.whl", hash = "sha256:c55853684fe08d4897c37dfc5faeff70607a5f1806c8be148f1695be4a63414b"}, - {file = "regex-2023.10.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2c54e23836650bdf2c18222c87f6f840d4943944146ca479858404fedeb9f9af"}, - {file = "regex-2023.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69c0771ca5653c7d4b65203cbfc5e66db9375f1078689459fe196fe08b7b4930"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ac965a998e1388e6ff2e9781f499ad1eaa41e962a40d11c7823c9952c77123e"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c0e8fae5b27caa34177bdfa5a960c46ff2f78ee2d45c6db15ae3f64ecadde14"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c56c3d47da04f921b73ff9415fbaa939f684d47293f071aa9cbb13c94afc17d"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ef1e014eed78ab650bef9a6a9cbe50b052c0aebe553fb2881e0453717573f52"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d29338556a59423d9ff7b6eb0cb89ead2b0875e08fe522f3e068b955c3e7b59b"}, - {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9c6d0ced3c06d0f183b73d3c5920727268d2201aa0fe6d55c60d68c792ff3588"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:994645a46c6a740ee8ce8df7911d4aee458d9b1bc5639bc968226763d07f00fa"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:66e2fe786ef28da2b28e222c89502b2af984858091675044d93cb50e6f46d7af"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:11175910f62b2b8c055f2b089e0fedd694fe2be3941b3e2633653bc51064c528"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:06e9abc0e4c9ab4779c74ad99c3fc10d3967d03114449acc2c2762ad4472b8ca"}, - {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fb02e4257376ae25c6dd95a5aec377f9b18c09be6ebdefa7ad209b9137b73d48"}, - {file = "regex-2023.10.3-cp39-cp39-win32.whl", hash = "sha256:3b2c3502603fab52d7619b882c25a6850b766ebd1b18de3df23b2f939360e1bd"}, - {file = "regex-2023.10.3-cp39-cp39-win_amd64.whl", hash = "sha256:adbccd17dcaff65704c856bd29951c58a1bd4b2b0f8ad6b826dbd543fe740988"}, {file = "regex-2023.10.3.tar.gz", hash = "sha256:3fef4f844d2290ee0ba57addcec17eec9e3df73f10a2748485dfd6a3a188cc0f"}, ] @@ -1526,7 +1272,7 @@ files = [ [[package]] name = "rich" -version = "13.6.0" +version = "13.7.0" requires_python = ">=3.7.0" summary = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" dependencies = [ @@ -1534,8 +1280,8 @@ dependencies = [ "pygments<3.0.0,>=2.13.0", ] files = [ - {file = "rich-13.6.0-py3-none-any.whl", hash = "sha256:2b38e2fe9ca72c9a00170a1a2d20c63c790d0e10ef1fe35eba76e1e7b1d7d245"}, - {file = "rich-13.6.0.tar.gz", hash = "sha256:5c14d22737e6d5084ef4771b62d5d4363165b403455a30a1c8ca39dc7b644bef"}, + {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, + {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"}, ] [[package]] @@ -1581,31 +1327,6 @@ files = [ {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, - {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, ] @@ -1679,6 +1400,16 @@ files = [ {file = "tomlkit-0.12.3.tar.gz", hash = "sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"}, ] +[[package]] +name = "truststore" +version = "0.8.0" +requires_python = ">= 3.10" +summary = "Verify certificates using native system trust stores" +files = [ + {file = "truststore-0.8.0-py3-none-any.whl", hash = "sha256:e37a5642ae9fc48caa8f120b6283d77225d600d224965a672c9e8ef49ce4bb4c"}, + {file = "truststore-0.8.0.tar.gz", hash = "sha256:dc70da89634944a579bfeec70a7a4523c53ffdb3cf52d1bb4a431fda278ddb96"}, +] + [[package]] name = "types-colorama" version = "0.4.15.12" @@ -1690,12 +1421,12 @@ files = [ [[package]] name = "types-markdown" -version = "3.5.0.2" +version = "3.5.0.3" requires_python = ">=3.7" summary = "Typing stubs for Markdown" files = [ - {file = "types-Markdown-3.5.0.2.tar.gz", hash = "sha256:111d96929838e3535040a3c029df97a66d4f7e1fd297020b9134ec9084b9b46c"}, - {file = "types_Markdown-3.5.0.2-py3-none-any.whl", hash = "sha256:4ac8a2298ce0897bc726df9c2eddeb11e7f832a5f456ee3f84bb0d299f595e5b"}, + {file = "types-Markdown-3.5.0.3.tar.gz", hash = "sha256:9afd38a8f53e19d43de3f8d89742b3674b5736767806ed9356d64ccb09f76439"}, + {file = "types_Markdown-3.5.0.3-py3-none-any.whl", hash = "sha256:2299b9086c695f408a3ebabf820f1fba3b239f1b3bfdbb32bf42d530b42cdd83"}, ] [[package]] @@ -1796,13 +1527,6 @@ files = [ {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"}, {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"}, {file = "watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"}, - {file = "watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"}, {file = "watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"}, {file = "watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"}, {file = "watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"}, diff --git a/tools/ci/pyproject.toml b/tools/ci/pyproject.toml index f80797e7f..6d891a044 100644 --- a/tools/ci/pyproject.toml +++ b/tools/ci/pyproject.toml @@ -11,7 +11,7 @@ license = {text = "Apache-2.0"} [tool.pdm.dev-dependencies] packagetool = [ - "pdm==2.8.0", + "pdm==2.10.3", ] codequality = [ "black", diff --git a/tools/ci/run/init-py.sh b/tools/ci/run/init-py.sh index f75512fb3..a431f04c4 100755 --- a/tools/ci/run/init-py.sh +++ b/tools/ci/run/init-py.sh @@ -9,5 +9,5 @@ fi python3.10 -m venv --copies ".venv" || python3 -m venv --copies ".venv" source .venv/bin/activate -pip install pdm==2.8.0 +pip install pdm==2.10.3 pdm install -p tools/ci From 476b8cabab602fbb305aabbc7ffb11a80d42e603 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Mon, 20 Nov 2023 16:10:45 +0100 Subject: [PATCH 046/180] Fix format --- src/apps/weblib/ts-api/events.ts | 4 ++-- test/integration/tools/manual/server/main.cjs | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/apps/weblib/ts-api/events.ts b/src/apps/weblib/ts-api/events.ts index 72c3d921a..da71ca821 100644 --- a/src/apps/weblib/ts-api/events.ts +++ b/src/apps/weblib/ts-api/events.ts @@ -377,8 +377,8 @@ export class Events { const eventParam = this._isJSEvent(eventName) ? this._makeJSEventParam(param, state) : cEvent - ? this._makeCEventParam(cEvent, param, state) - : param + ? this._makeCEventParam(cEvent, param, state) + : param handler(eventParam) } } diff --git a/test/integration/tools/manual/server/main.cjs b/test/integration/tools/manual/server/main.cjs index ad7eefb7b..215897679 100644 --- a/test/integration/tools/manual/server/main.cjs +++ b/test/integration/tools/manual/server/main.cjs @@ -36,9 +36,7 @@ class ManualServer { this.#setRouteValidateTestCase() console.log( - `[ W. HOST ] [ http://127.0.0.1:${ - this.#workspaceHostServerPort - }/test/integration/tools/manual/client ] press CTRL + C to stop` + `[ W. HOST ] [ http://127.0.0.1:${this.#workspaceHostServerPort}/test/integration/tools/manual/client ] press CTRL + C to stop` ) }) } From 4eada36998f35488c624b34b223b754a3c8fdd0f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 20 Nov 2023 17:32:06 +0100 Subject: [PATCH 047/180] Review + clang analyzer fix --- src/apps/weblib/interface.cpp | 31 +++++++++++++++++++++---- src/apps/weblib/interface.h | 4 ++-- src/apps/weblib/ts-api/animcontrol.ts | 6 ++--- src/base/anim/control.cpp | 33 --------------------------- src/base/anim/control.h | 8 +++---- src/base/refl/auto_accessor.h | 10 ++++++-- 6 files changed, 43 insertions(+), 49 deletions(-) diff --git a/src/apps/weblib/interface.cpp b/src/apps/weblib/interface.cpp index b7bd88649..eb469acbf 100644 --- a/src/apps/weblib/interface.cpp +++ b/src/apps/weblib/interface.cpp @@ -4,6 +4,7 @@ #include "base/conv/auto_json.h" #include "base/io/log.h" +#include "base/refl/auto_accessor.h" #include "canvas.h" #include "interfacejs.h" @@ -230,25 +231,47 @@ void Interface::setKeyframe(ObjectRegistry::Handle chart) } void Interface::setAnimControlValue(ObjectRegistry::Handle chart, - const char *path, + std::string_view path, const char *value) { auto &&chartPtr = getChart(chart); auto &ctrl = chartPtr->getAnimControl(); - ctrl.setValue(path, value); + if (path == "position") { ctrl.seek(value); } + else if (path == "cancel") { + ctrl.cancel(); + } + else if (path == "stop") { + ctrl.stop(); + } + else if (auto &&set_accessor = + Refl::Access::getAccessor<::Anim::Control::Option>( + path) + .set) { + set_accessor(ctrl.getOptions(), value); + } + else { + throw std::logic_error("invalid animation command"); + } + ctrl.update(); } const char *Interface::getAnimControlValue( ObjectRegistry::Handle chart, - const char *path) + std::string_view path) { thread_local std::string res; auto &&chartPtr = getChart(chart); auto &ctrl = chartPtr->getAnimControl(); - res = ctrl.getValue(path); + if (auto &&get_accessor = + Refl::Access::getAccessor<::Anim::Control::Option>(path) + .get) { + res = get_accessor(ctrl.getOptions()); + } + else + throw std::logic_error("invalid animation command"); return res.c_str(); } diff --git a/src/apps/weblib/interface.h b/src/apps/weblib/interface.h index 645fe1298..e46c34909 100644 --- a/src/apps/weblib/interface.h +++ b/src/apps/weblib/interface.h @@ -109,10 +109,10 @@ class Interface void (*callback)(bool)); void setKeyframe(ObjectRegistry::Handle chart); void setAnimControlValue(ObjectRegistry::Handle chart, - const char *path, + std::string_view path, const char *value); const char *getAnimControlValue(ObjectRegistry::Handle chart, - const char *path); + std::string_view path); void setAnimValue(ObjectRegistry::Handle chart, const char *path, const char *value); diff --git a/src/apps/weblib/ts-api/animcontrol.ts b/src/apps/weblib/ts-api/animcontrol.ts index 69213042a..910488bc6 100644 --- a/src/apps/weblib/ts-api/animcontrol.ts +++ b/src/apps/weblib/ts-api/animcontrol.ts @@ -19,8 +19,7 @@ export class AnimControl { percentage. Seeking the animation to the end position while the animation is paused will not trigger the animation complete promise to resolve. */ seek(value: Position): this { - const param = typeof value !== 'string' ? value.toString() : value - this._setParam('seek', param) + this.position = value return this } @@ -58,7 +57,8 @@ export class AnimControl { /** Setting the position of the animation. */ set position(value: Position) { - this.seek(value) + const param = typeof value !== 'string' ? value.toString() : value + this._setParam('position', param) } /** Getting the position of the animation. */ diff --git a/src/base/anim/control.cpp b/src/base/anim/control.cpp index 3b88daeab..843844ed4 100644 --- a/src/base/anim/control.cpp +++ b/src/base/anim/control.cpp @@ -2,7 +2,6 @@ #include -#include "base/refl/auto_accessor.h" #include "base/text/valueunit.h" namespace Anim @@ -155,36 +154,4 @@ void Control::finish(bool preRun) } } -void Control::setValue(std::string_view path, - const std::string &value) -{ - if (path == "seek") { seek(value); } - else if (path == "cancel") { - cancel(); - } - else if (path == "stop") { - stop(); - } - else if (auto &&set_accessor = - Refl::Access::getAccessor(path) - .set) { - set_accessor(options, value); - } - else { - throw std::logic_error("invalid animation command"); - } - update(); -} - -std::string Control::getValue(std::string_view path) -{ - if (auto &&get_accessor = - Refl::Access::getAccessor(path).get) { - return get_accessor(options); - } - else { - throw std::logic_error("invalid animation command"); - } -} - } \ No newline at end of file diff --git a/src/base/anim/control.h b/src/base/anim/control.h index 5796bc094..01d5c78cb 100644 --- a/src/base/anim/control.h +++ b/src/base/anim/control.h @@ -35,14 +35,11 @@ class Control void seek(const std::string &value); void seekProgress(double value); void seekTime(Duration pos); - void setPlayState(PlayState state) { options.playState = state; } - void setDirection(Direction dir) { options.direction = dir; } void setSpeed(double speed); void stop(); void cancel(); - void setValue(std::string_view path, const std::string &value); - std::string getValue(std::string_view path); + Option &getOptions() { return options; } [[nodiscard]] Duration getPosition() const; [[nodiscard]] double getProgress() const; @@ -58,6 +55,8 @@ class Control Util::Event<> onBegin; Util::Event<> onComplete; + void update(); + protected: bool cancelled{}; bool finished{}; @@ -72,7 +71,6 @@ class Control void setOnFinish(OnFinish onFinish); void setOnChange(OnChange onChange); void reset(); - void update(); private: void finish(bool preRun); diff --git a/src/base/refl/auto_accessor.h b/src/base/refl/auto_accessor.h index e70bc3267..79809b0c4 100644 --- a/src/base/refl/auto_accessor.h +++ b/src/base/refl/auto_accessor.h @@ -18,6 +18,7 @@ template struct Accessor void (*set)(Object &, const std::string &); }; +#ifndef __clang_analyzer__ template (nullptr)), @@ -47,18 +48,23 @@ constexpr std::initializer_list< std::tuple_element_t>(o); member = Conv::parse(str); }}}...}; +#endif template static const std::map> & getAccessors() { static const std::map> - &accessors{accessor_pairs}; + &accessors{ +#ifndef __clang_analyzer__ + accessor_pairs +#endif + }; return accessors; } template -Accessor getAccessor(std::string_view member) +Accessor getAccessor(const std::string_view &member) { auto &accessors = getAccessors(); if (auto it = accessors.find(member); it != accessors.end()) From f22616f6f7ccc767c777250f396f2f8480cb8953 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Mon, 20 Nov 2023 23:00:48 +0100 Subject: [PATCH 048/180] Changelog update, AnimControl.reverse() fixed. --- CHANGELOG.md | 8 +++++++- src/apps/weblib/ts-api/animcontrol.ts | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab7863a8d..2a7edd6b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,13 @@ ### Fixed - TypeScript definition fixed, measures can contain null values. - + +### Added + +- Animation control object expose properties `position`, `direction`, `speed` + and `playState` to be able to query the current state of the animation, and + to be more conform with the Web Animation API. Old methods got deprecated. + ## [0.9.1] - 2023-11-15 ### Fixed diff --git a/src/apps/weblib/ts-api/animcontrol.ts b/src/apps/weblib/ts-api/animcontrol.ts index 69213042a..3404e3d40 100644 --- a/src/apps/weblib/ts-api/animcontrol.ts +++ b/src/apps/weblib/ts-api/animcontrol.ts @@ -68,13 +68,13 @@ export class AnimControl { /** @deprecated Pauses the controlled animation. */ pause(): this { - this._setParam('playState', 'paused') + this.playState = 'paused' return this } /** @deprecated Plays/resumes playing of the controlled animation. */ play(): this { - this._setParam('playState', 'running') + this.playState = 'running' return this } @@ -92,7 +92,7 @@ export class AnimControl { /** @deprecated Changes the direction of the controlled animation to reverse. */ reverse(): this { - this._setParam('direction', 'reverse') + this.direction = this.direction === 'reverse' ? 'normal' : 'reverse' return this } From 2038019cef8e042988c834dc16f3681b04d65d8e Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 21 Nov 2023 14:32:28 +0100 Subject: [PATCH 049/180] Revert position setter to seek --- src/apps/weblib/interface.cpp | 2 +- src/apps/weblib/ts-api/animcontrol.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/apps/weblib/interface.cpp b/src/apps/weblib/interface.cpp index eb469acbf..f02e28525 100644 --- a/src/apps/weblib/interface.cpp +++ b/src/apps/weblib/interface.cpp @@ -237,7 +237,7 @@ void Interface::setAnimControlValue(ObjectRegistry::Handle chart, auto &&chartPtr = getChart(chart); auto &ctrl = chartPtr->getAnimControl(); - if (path == "position") { ctrl.seek(value); } + if (path == "seek") { ctrl.seek(value); } else if (path == "cancel") { ctrl.cancel(); } diff --git a/src/apps/weblib/ts-api/animcontrol.ts b/src/apps/weblib/ts-api/animcontrol.ts index 3e29bcf4c..d42a8fda6 100644 --- a/src/apps/weblib/ts-api/animcontrol.ts +++ b/src/apps/weblib/ts-api/animcontrol.ts @@ -15,11 +15,12 @@ export class AnimControl { return this._cControl.storeAnim() } - /** @deprecated Seeks the animation to the position specified by time or progress + /** Seeks the animation to the position specified by time or progress percentage. Seeking the animation to the end position while the animation is paused will not trigger the animation complete promise to resolve. */ seek(value: Position): this { - this.position = value + const param = typeof value !== 'string' ? value.toString() : value + this._setParam('seek', param) return this } @@ -56,7 +57,7 @@ export class AnimControl { } /** Setting the position of the animation. */ - set position(value: Position) { + set position(value: number) { const param = typeof value !== 'string' ? value.toString() : value this._setParam('position', param) } From 6b75f9f6cd5d54e5c264a494d7a15774d287fcda Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 21 Nov 2023 16:06:56 +0100 Subject: [PATCH 050/180] Fixed redraw on browser zoom. --- CHANGELOG.md | 3 ++- src/apps/weblib/ts-api/htmlcanvas.ts | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a7edd6b0..27574d488 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,14 @@ ### Fixed +- Fixed redraw on browser zoom (bug since 0.9.0). - TypeScript definition fixed, measures can contain null values. ### Added - Animation control object expose properties `position`, `direction`, `speed` and `playState` to be able to query the current state of the animation, and - to be more conform with the Web Animation API. Old methods got deprecated. + to be more conform with the Web Animation API. ## [0.9.1] - 2023-11-15 diff --git a/src/apps/weblib/ts-api/htmlcanvas.ts b/src/apps/weblib/ts-api/htmlcanvas.ts index ab2ca97c2..94422487c 100644 --- a/src/apps/weblib/ts-api/htmlcanvas.ts +++ b/src/apps/weblib/ts-api/htmlcanvas.ts @@ -24,6 +24,7 @@ export class HtmlCanvas implements Plugin { private _mainCanvas: HTMLCanvasElement private _context: CanvasRenderingContext2D private _resizeObserver: ResizeObserver + private _resizeHandler: () => void private _prevUpdateHash: string = '' private _scaleFactor: number = 1 private _cssWidth: number = 1 @@ -71,9 +72,14 @@ export class HtmlCanvas implements Plugin { this._context = ctx this.calcSize() this._resizeObserver = this._createResizeObserverFor(this._mainCanvas) + this._resizeHandler = (): void => { + this.onchange() + } + window.addEventListener('resize', this._resizeHandler) } destruct(): void { + window.removeEventListener('resize', this._resizeHandler) this._resizeObserver.disconnect() if (this._container) this._container.removeChild(this._mainCanvas) } From 7e20119f6f0fba79390e7e2806d99b237c5892bb Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 21 Nov 2023 18:05:18 +0100 Subject: [PATCH 051/180] fixed canvas clear on browser zoom. --- CHANGELOG.md | 1 + src/apps/weblib/ts-api/htmlcanvas.ts | 8 ++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27574d488..8e5a5b4d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixed - Fixed redraw on browser zoom (bug since 0.9.0). +- Fixed clearing of the canvas before rendering when devicePixelRatio is not 1. - TypeScript definition fixed, measures can contain null values. ### Added diff --git a/src/apps/weblib/ts-api/htmlcanvas.ts b/src/apps/weblib/ts-api/htmlcanvas.ts index 94422487c..da66e730b 100644 --- a/src/apps/weblib/ts-api/htmlcanvas.ts +++ b/src/apps/weblib/ts-api/htmlcanvas.ts @@ -102,6 +102,7 @@ export class HtmlCanvas implements Plugin { this._mainCanvas.height = this._cssHeight * this._scaleFactor this._offscreenCanvas.width = this._cssWidth * this._scaleFactor this._offscreenCanvas.height = this._cssHeight * this._scaleFactor + this._offscreenContext.setTransform(1, 0, 0, 1, 0, 0) this._offscreenContext.translate(0.5, 0.5) this._offscreenContext.scale(this._scaleFactor, this._scaleFactor) } @@ -110,12 +111,7 @@ export class HtmlCanvas implements Plugin { } frameBegin(): void { - this._offscreenContext.clearRect( - -1, - -1, - this._mainCanvas.width + 1, - this._mainCanvas.height + 1 - ) + this._offscreenContext.clearRect(-1, -1, this._cssWidth + 2, this._cssHeight + 2) } frameEnd(): void { From 003e1881aed4021cc7a2a1b06cd883dd300e91a5 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Wed, 22 Nov 2023 12:58:42 +0100 Subject: [PATCH 052/180] Channels' and DataCubeOptions' getSeries() renamed to getMeasures() --- src/chart/options/channels.cpp | 4 ++-- src/chart/options/channels.h | 2 +- src/chart/options/options.cpp | 2 +- src/chart/options/options.h | 4 ++-- src/data/datacube/datacube.cpp | 4 ++-- src/data/datacube/datacubeoptions.h | 11 ++++++----- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/chart/options/channels.cpp b/src/chart/options/channels.cpp index 6622bcd1a..8cf57f5be 100644 --- a/src/chart/options/channels.cpp +++ b/src/chart/options/channels.cpp @@ -39,7 +39,7 @@ Data::DataCubeOptions::IndexSet Channels::getDimensions() const return dimensions; } -Data::DataCubeOptions::IndexSet Channels::getSeries() const +Data::DataCubeOptions::IndexSet Channels::getMeasures() const { Data::DataCubeOptions::IndexSet series; @@ -74,7 +74,7 @@ Data::DataCubeOptions::IndexSet Channels::getRealSeries( Data::DataCubeOptions Channels::getDataCubeOptions() const { - return {getDimensions(), getSeries()}; + return {getDimensions(), getMeasures()}; } std::pair Channels::addSeries( diff --git a/src/chart/options/channels.h b/src/chart/options/channels.h index 09a348024..9f060714e 100644 --- a/src/chart/options/channels.h +++ b/src/chart/options/channels.h @@ -29,7 +29,7 @@ class Channels [[nodiscard]] Data::DataCubeOptions::IndexSet getDimensions() const; - [[nodiscard]] Data::DataCubeOptions::IndexSet getSeries() const; + [[nodiscard]] Data::DataCubeOptions::IndexSet getMeasures() const; [[nodiscard]] Data::DataCubeOptions::IndexSet getDimensions( const std::vector &channelTypes) const; [[nodiscard]] Data::DataCubeOptions::IndexSet getRealSeries( diff --git a/src/chart/options/options.cpp b/src/chart/options/options.cpp index 0e1b2f983..6820edc4c 100644 --- a/src/chart/options/options.cpp +++ b/src/chart/options/options.cpp @@ -276,7 +276,7 @@ Gen::Orientation Options::getAutoOrientation() const std::optional Options::getAutoLegend() const { auto series = channels.getDimensions(); - series.merge(channels.getSeries()); + series.merge(channels.getMeasures()); for (auto id : channels.at(ChannelId::label).dimensionIds) series.erase(id); diff --git a/src/chart/options/options.h b/src/chart/options/options.h index 510f13bfc..35c2cfa67 100644 --- a/src/chart/options/options.h +++ b/src/chart/options/options.h @@ -115,10 +115,10 @@ class Options Heading title{std::nullopt}; Heading subtitle{std::nullopt}; Heading caption{std::nullopt}; - Anim::Interpolated coordSystem{ + ::Anim::Interpolated coordSystem{ CoordSystem::cartesian}; double angle{}; - Anim::Interpolated geometry{ShapeType::rectangle}; + ::Anim::Interpolated geometry{ShapeType::rectangle}; Orientation orientation{OrientationType{}}; Math::FuzzyBool split; Base::Align::Type align{Base::Align::Type::none}; diff --git a/src/data/datacube/datacube.cpp b/src/data/datacube/datacube.cpp index ac390f04d..bc3b4f1b8 100644 --- a/src/data/datacube/datacube.cpp +++ b/src/data/datacube/datacube.cpp @@ -15,7 +15,7 @@ DataCube::DataCube(const DataTable &table, table(&table) { if (options.getDimensions().empty() - && options.getSeries().empty()) + && options.getMeasures().empty()) return; MultiIndex sizes; @@ -35,7 +35,7 @@ DataCube::DataCube(const DataTable &table, dimBySeries.insert({idx, DimIndex(sizes.size() - 1)}); } - auto series = options.getSeries(); + auto series = options.getMeasures(); if (series.empty()) series.emplace_back(SeriesType::Exists); diff --git a/src/data/datacube/datacubeoptions.h b/src/data/datacube/datacubeoptions.h index 13700e5fe..9dd5f0eb7 100644 --- a/src/data/datacube/datacubeoptions.h +++ b/src/data/datacube/datacubeoptions.h @@ -15,24 +15,25 @@ class DataCubeOptions using IndexSet = std::set; using IndexVector = std::vector; - DataCubeOptions(const IndexSet &dims, const IndexSet &sers) + DataCubeOptions(const IndexSet &dims, const IndexSet &msrs) { dimensions.insert(dimensions.end(), dims.begin(), dims.end()); - series.insert(series.end(), sers.begin(), sers.end()); + measures.insert(measures.end(), msrs.begin(), msrs.end()); } [[nodiscard]] const IndexVector &getDimensions() const { return dimensions; } - [[nodiscard]] const IndexVector &getSeries() const + + [[nodiscard]] const IndexVector &getMeasures() const { - return series; + return measures; } private: IndexVector dimensions; - IndexVector series; + IndexVector measures; }; } From 791f60ba1ba7da5a7969d3438db312e0bc558854 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 22 Nov 2023 16:09:16 +0100 Subject: [PATCH 053/180] Set version to 0.9.2 --- CHANGELOG.md | 2 ++ src/chart/main/version.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e5a5b4d4..ed0c8d9d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] +## [0.9.2] - 2023-11-22 + ### Fixed - Fixed redraw on browser zoom (bug since 0.9.0). diff --git a/src/chart/main/version.cpp b/src/chart/main/version.cpp index ba3aa55bd..2539ccbe9 100644 --- a/src/chart/main/version.cpp +++ b/src/chart/main/version.cpp @@ -1,5 +1,5 @@ #include "version.h" -const App::Version Vizzu::Main::version(0, 9, 1); +const App::Version Vizzu::Main::version(0, 9, 2); const char *const Vizzu::Main::siteUrl = "https://vizzuhq.com/"; From 8a7c40dcd5db3c1373e1c841ded502b3b8ff3237 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 9 Nov 2023 12:58:34 +0100 Subject: [PATCH 054/180] Interlacing + renames + simplify --- src/chart/rendering/drawaxes.cpp | 33 +++++++++---------------- src/chart/rendering/drawaxes.h | 3 +++ src/chart/rendering/drawinterlacing.cpp | 18 ++++++++++---- src/chart/rendering/drawinterlacing.h | 5 +++- 4 files changed, 32 insertions(+), 27 deletions(-) diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index 4c9edf7da..f7b4f4d95 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -1,7 +1,6 @@ #include "drawaxes.h" #include "chart/rendering/drawguides.h" -#include "chart/rendering/drawinterlacing.h" #include "chart/rendering/orientedlabel.h" #include "drawlabel.h" @@ -15,7 +14,7 @@ DrawAxes::DrawAxes(const DrawingContext &context) : void DrawAxes::drawBase() { - DrawInterlacing(*this, false); + interlacing.drawGeometries(); drawAxis(Gen::ChannelId::x); drawAxis(Gen::ChannelId::y); @@ -25,7 +24,7 @@ void DrawAxes::drawBase() void DrawAxes::drawLabels() { - DrawInterlacing(*this, true); + interlacing.drawTexts(); drawDimensionLabels(true); drawDimensionLabels(false); @@ -267,8 +266,7 @@ void DrawAxes::drawDimensionLabels(bool horizontal) if (axis.enabled) { canvas.setFont(Gfx::Font{labelStyle}); - Gen::DimensionAxis::Values::const_iterator it; - for (it = axis.begin(); it != axis.end(); ++it) { + for (auto it = axis.begin(); it != axis.end(); ++it) { drawDimensionLabel(horizontal, origo, it); } } @@ -279,31 +277,25 @@ void DrawAxes::drawDimensionLabel(bool horizontal, Gen::DimensionAxis::Values::const_iterator it) { const auto &enabled = horizontal ? plot.guides.x : plot.guides.y; - auto axisIndex = - horizontal ? Gen::ChannelId::x : Gen::ChannelId::y; - - const auto &labelStyle = rootStyle.plot.getAxis(axisIndex).label; - auto textColor = *labelStyle.color; - auto text = it->second.label; auto weight = it->second.weight * static_cast(enabled.labels); if (weight == 0) return; - auto ident = Geom::Point::Ident(horizontal); - auto normal = Geom::Point::Ident(!horizontal); + auto axisIndex = + horizontal ? Gen::ChannelId::x : Gen::ChannelId::y; + const auto &labelStyle = rootStyle.plot.getAxis(axisIndex).label; - typedef Styles::AxisLabel::Position Pos; labelStyle.position->visit( [this, &labelStyle, &it, &horizontal, &origo, - &ident, - &normal, - &text, - &textColor, + ident = Geom::Point::Ident(horizontal), + normal = Geom::Point::Ident(!horizontal), + &text = it->second.label, + textColor = *labelStyle.color, &weight](int index, const auto &position) { if (labelStyle.position->interpolates() @@ -313,9 +305,8 @@ void DrawAxes::drawDimensionLabel(bool horizontal, Geom::Point refPos; switch (position.value) { - case Pos::max_edge: - refPos = Geom::Point::Ident(!horizontal); - break; + using Pos = Styles::AxisLabel::Position; + case Pos::max_edge: refPos = normal; break; case Pos::axis: refPos = origo.comp(!horizontal); break; default: case Pos::min_edge: refPos = Geom::Point(); break; diff --git a/src/chart/rendering/drawaxes.h b/src/chart/rendering/drawaxes.h index d1ffff500..3a84384c2 100644 --- a/src/chart/rendering/drawaxes.h +++ b/src/chart/rendering/drawaxes.h @@ -4,6 +4,7 @@ #include "base/geom/line.h" #include "drawingcontext.h" +#include "drawinterlacing.h" namespace Vizzu::Draw { @@ -29,6 +30,8 @@ class DrawAxes : private DrawingContext void drawDimensionLabel(bool horizontal, const Geom::Point &origo, Gen::DimensionAxis::Values::const_iterator it); + + DrawInterlacing interlacing{*this}; }; } diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index 92aa2fe78..ad430eb5e 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -8,12 +8,20 @@ namespace Vizzu::Draw { -DrawInterlacing::DrawInterlacing(const DrawingContext &context, - bool text) : +DrawInterlacing::DrawInterlacing(const DrawingContext &context) : DrawingContext(context) +{} + +void DrawInterlacing::drawGeometries() +{ + draw(true, false); + draw(false, false); +} + +void DrawInterlacing::drawTexts() { - draw(true, text); - draw(false, text); + draw(true, true); + draw(false, true); } void DrawInterlacing::draw(bool horizontal, bool text) @@ -274,7 +282,7 @@ void DrawInterlacing::drawDataLabel( auto sign = 1 - 2 * under; auto posDir = coordSys.convertDirectionAt( - Geom::Line(refPos, refPos + normal)); + {refPos, refPos + normal}); posDir = posDir.extend(sign); diff --git a/src/chart/rendering/drawinterlacing.h b/src/chart/rendering/drawinterlacing.h index 7a40857ff..708c717b8 100644 --- a/src/chart/rendering/drawinterlacing.h +++ b/src/chart/rendering/drawinterlacing.h @@ -9,7 +9,10 @@ namespace Vizzu::Draw class DrawInterlacing : private DrawingContext { public: - DrawInterlacing(const DrawingContext &context, bool text); + explicit DrawInterlacing(const DrawingContext &context); + + void drawGeometries(); + void drawTexts(); private: void draw(bool horizontal, bool text); From 7522a71bc911725e6db02303fa65103a1e283368 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 9 Nov 2023 14:01:15 +0100 Subject: [PATCH 055/180] Replace clamps --- src/base/geom/line.h | 2 +- src/base/math/normalizednumber.cpp | 2 +- src/chart/rendering/drawinterlacing.cpp | 29 +++++++++++++------------ 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/base/geom/line.h b/src/base/geom/line.h index 182df4e9d..b9bfefc9a 100644 --- a/src/base/geom/line.h +++ b/src/base/geom/line.h @@ -64,7 +64,7 @@ struct Line auto projection = ((point - begin).dot(getDirection())) / (length() * length()); - projection = std::max(0.0, std::min(projection, 1.0)); + projection = std::clamp(projection, 0.0, 1.0); auto nearestPoint = at(projection); diff --git a/src/base/math/normalizednumber.cpp b/src/base/math/normalizednumber.cpp index 3eebeb209..a60c2a246 100644 --- a/src/base/math/normalizednumber.cpp +++ b/src/base/math/normalizednumber.cpp @@ -27,7 +27,7 @@ NormalizedNumber::NormalizedNumber(double value, double base) : positive = sign == 1; exponent = Floating(value).orderOfMagnitude(base); coefficient = value / pow(base, exponent); - coefficient = std::min(std::max(1.0, coefficient), base); + coefficient = std::clamp(coefficient, 1.0, base); } else { positive = true; diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index ad430eb5e..30c2a70fc 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -42,13 +42,12 @@ void DrawInterlacing::draw(bool horizontal, bool text) auto step = axis.step.calculate(); - auto stepHigh = Math::Renard::R5().ceil(step); - stepHigh = std::min(axis.step.max(), - std::max(stepHigh, axis.step.min())); - - auto stepLow = Math::Renard::R5().floor(step); - stepLow = - std::min(axis.step.max(), std::max(stepLow, axis.step.min())); + auto stepHigh = std::clamp(Math::Renard::R5().ceil(step), + axis.step.min(), + axis.step.max()); + auto stepLow = std::clamp(Math::Renard::R5().floor(step), + axis.step.min(), + axis.step.max()); if (stepHigh == step) { draw(axis.enabled, @@ -248,16 +247,13 @@ void DrawInterlacing::drawDataLabel( str += unit; } - auto normal = Geom::Point::Ident(horizontal); - - typedef Styles::AxisLabel::Position Pos; labelStyle.position->visit( [this, &labelStyle, &axisEnabled, &tickPos, &horizontal, - &normal, + normal = Geom::Point::Ident(horizontal), &str, &textColor](int index, const auto &position) { @@ -267,11 +263,16 @@ void DrawInterlacing::drawDataLabel( Geom::Point refPos = tickPos; - if (position.value == Pos::min_edge) + switch (position.value) { + using Pos = Styles::AxisLabel::Position; + case Pos::min_edge: refPos[horizontal ? 0 : 1] = 0.0; - - else if (position.value == Pos::max_edge) + break; + case Pos::max_edge: refPos[horizontal ? 0 : 1] = 1.0; + break; + default: break; + } auto under = labelStyle.position->interpolates() ? labelStyle.side->get(index).value From a0a4611698a6d67d6e8e8138fd1c76b9e585bf21 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Sat, 11 Nov 2023 19:57:00 +0100 Subject: [PATCH 056/180] Change plot measureAxis calculation --- src/chart/generator/plot.cpp | 31 +++++++++++++++---------------- src/chart/generator/plot.h | 2 +- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/chart/generator/plot.cpp b/src/chart/generator/plot.cpp index 50eb84dad..ee1aa5026 100644 --- a/src/chart/generator/plot.cpp +++ b/src/chart/generator/plot.cpp @@ -298,15 +298,14 @@ void Plot::normalizeXY() void Plot::calcMeasureAxises(const Data::DataTable &dataTable) { - for (auto i = 0U; i < std::size(measureAxises.axises); ++i) { - auto id = static_cast(i); - measureAxises.at(id) = calcAxis(id, dataTable); - } + for (auto i = 0U; i < std::size(measureAxises.axises); ++i) + calcMeasureAxis(static_cast(i), dataTable); } -MeasureAxis Plot::calcAxis(ChannelId type, +void Plot::calcMeasureAxis(ChannelId type, const Data::DataTable &dataTable) { + auto &axis = measureAxises.at(type); const auto &scale = options->getChannels().at(type); if (!scale.isEmpty() && scale.measureId) { commonAxises.at(type).title = @@ -316,21 +315,21 @@ MeasureAxis Plot::calcAxis(ChannelId type, if (type == options->subAxisType() && options->align == Base::Align::Type::stretch) { - return {Math::Range(0, 100), + axis = {Math::Range(0, 100), "%", scale.step.getValue()}; } - - auto colIndex = scale.measureId->getColIndex(); - auto unit = colIndex - ? dataTable.getInfo(colIndex.value()).getUnit() - : std::string{}; - return {stats.channels[type].range, - unit, - scale.step.getValue()}; + else { + auto colIndex = scale.measureId->getColIndex(); + axis = {stats.channels[type].range, + colIndex + ? dataTable.getInfo(colIndex.value()).getUnit() + : std::string{}, + scale.step.getValue()}; + } } - - return {}; + else + axis = {}; } void Plot::calcDimensionAxises(const Data::DataTable &table) diff --git a/src/chart/generator/plot.h b/src/chart/generator/plot.h index 62fd0a86b..07541cb34 100644 --- a/src/chart/generator/plot.h +++ b/src/chart/generator/plot.h @@ -129,7 +129,7 @@ class Plot void linkMarkers(const Buckets &buckets, bool main); void normalizeXY(); void calcMeasureAxises(const Data::DataTable &dataTable); - MeasureAxis calcAxis(ChannelId type, + void calcMeasureAxis(ChannelId type, const Data::DataTable &dataTable); void calcDimensionAxises(const Data::DataTable &table); void calcDimensionAxis(ChannelId type, From 6f03c991c3e458029a12b21987a8aeac5a362755 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Fri, 24 Nov 2023 10:20:45 +0100 Subject: [PATCH 057/180] add basic plugin example --- docs/tutorial/writing_plugins.md | 193 +++++++++++++++++++++++++++++++ tools/docs/mkdocs.yml | 7 +- 2 files changed, 197 insertions(+), 3 deletions(-) create mode 100644 docs/tutorial/writing_plugins.md diff --git a/docs/tutorial/writing_plugins.md b/docs/tutorial/writing_plugins.md new file mode 100644 index 000000000..2af33a5c8 --- /dev/null +++ b/docs/tutorial/writing_plugins.md @@ -0,0 +1,193 @@ +# Writing plugins + +## What are plugins + +Plugins are custom classes which can change the chart config or data in runtime +or they can even modify the displayed chart. They work by providing functions to +the chart instance which will be called automatically or manually at certain +points of the animation process. Plugins are recommended for custom charts when +the available configuration options are not enough. + +The functions of the plugin can be **hooks** which are called automatically at +certain points during the rendering, **API functions** which can be called +manually or **listeners** that are connected to certain events. + +## How to write a plugin + +To write a plugin, first import the `Plugin` interface. + +```typescript +import { type Plugins } from 'vizzu' +``` + +Create the plugin class implementing the `Plugins.Plugin` interface. + +```typescript +export class ExamplePlugin implements Plugins.Plugin { +} +``` + +The class can have a `meta` property which provides the basic configuration for +the plugin. It has the following fields: +- `name`: the name of the plugin +- `version`: the version of the **library** the plugin is compatible with +- `depends`: an array of strings describing other plugins this one depends on + +```typescript +export class ExamplePlugin implements Plugins.Plugin { + meta = { + name: 'examplePlugin', + version: '0.9.1', + depends: [] + } +} +``` + +The main functionality of the plugin is provided by the `hooks` property. Use a +getter function to define the object. There are three plugin hooks which can be +defined in the returned object: + +- `prepareAnimation`: Called when the animate() parameters gets set in the + library to prepare the animation. +- `registerAnimation`: Called when the animate() method called, and the lib + shedules the call to the animation queue. +- `runAnimation`: Called when all animate() parameter set and animation can be + started. + +Let’s add a simple function to the `prepareAnimation` phase. We’d like to +automatically set the chart title to the name of the data series which is +assigned to the color channel (if any). If no color is selected, then set a +default title. + +### Adding hooks + +```typescript +export class ExamplePlugin implements Plugins.Plugin { + get hooks(): Plugins.PluginHooks { + return { + prepareAnimation: (ctx: Plugins.PrepareAnimationContext, next: () => void): void => { + if ('config' in ctx.target) { + ctx.target.config.title = ctx.target.config?.color ?? 'Example plugin' + } + next() + } + } + } +} +``` + +The hooks can also have a `priority` number that decides the order the +registered plugins run. It’s a float value, ranging from 0 (first) to 1 (last). + +```typescript +export class ExamplePlugin implements Plugins.Plugin { + get hooks(): Plugins.PluginHooks { + return { + prepareAnimation: Object.assign( + (ctx: Plugins.PrepareAnimationContext, next: () => void): void => { + if ('config' in ctx.target) { + ctx.target.config.title = ctx.target.config?.color ?? 'Example plugin' + } + next() + }, + { priority: 1 } + ) + } + } +} +``` + +### Adding API functions + +The class can also define an `api` property. It can contain one or more +functions which can be called from the original context using +`chart.feature..()`. + +Let’s add an API function to our plugin which can tell if the default title has +been changed. + +```typescript +import { type Plugins } from 'vizzu' + +interface ExamplePluginApi extends Plugins.PluginApi { + hasDefaultTitle(): boolean +} + +export class ExamplePlugin implements Plugins.Plugin { + meta: Plugins.PluginMeta = { + name: 'examplePlugin', + version: '0.9.1', + depends: [] + } + private hasChanged: boolean = false + + get hooks(): Plugins.PluginHooks { + return { + prepareAnimation: Object.assign( + (ctx: Plugins.PrepareAnimationContext, next: () => void): void => { + if ('config' in ctx.target) { + if (ctx.target.config.color) { + this.hasChanged = true + ctx.target.config.title = ctx.target.config.color + } else { + ctx.target.config.title = 'Example plugin' + } + } + next() + }, + { priority: 1 } + ) + } + } + + get api(): ExamplePluginApi { + return { + hasDefaultTitle: (): boolean => { + return !this.hasChanged + } + } + } +} +``` + +### Listening to events + +Define a getter method for the listeners property as follows: + +```typescript +get listeners(): Plugins.PluginListeners { + return { + [Events.EventType.pointerup]: (): void => { + console.log('Example plugin: pointerup event') + } + } +} +``` + +The proper functions will be called when the defined event happens in the chart. + +## How to use plugins + +After creating a new `Vizzu` instance, enable the plugin using the `feature()` +method like this: + +```javascript +const chart = new Vizzu('vizzu') +chart.feature(new ExamplePlugin(), true) +``` + +The first parameter is a plugin instance, the second one is the enabled status +(`true` for enabled and `false` for disabled.) If the plugin is enabled, then +the hook functions will be automatically called at the proper animation phases. + +The API functions must be called manually using the chart instance. Example: + +```javascript +anim.activated.then(() => { + if (chart.feature.examplePlugin.hasDefaultTitle()) { + console.log(`the title has not been changed`) + } else { + console.log(`the title has been changed`) + } +}) +``` diff --git a/tools/docs/mkdocs.yml b/tools/docs/mkdocs.yml index 2ca433ebc..2baf1ed18 100644 --- a/tools/docs/mkdocs.yml +++ b/tools/docs/mkdocs.yml @@ -89,9 +89,9 @@ plugins: - gen-files: scripts: - pages/gen_pages.py - - examples/gen_examples.py - - reference/gen_reference.py - - style/gen_style_reference.py + # - examples/gen_examples.py + # - reference/gen_reference.py + # - style/gen_style_reference.py nav: - Home: index.md @@ -120,6 +120,7 @@ nav: - Shorthands & Store: tutorial/shorthands_store.md - Chart presets: tutorial/chart_presets.md - tutorial/style.md + - tutorial/writing_plugins.md - Examples: - examples/index.md - Preset charts: examples/presets/ From c9cbc5b47e367a44bc26d72ae59b402dc604a9d1 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Fri, 24 Nov 2023 10:17:20 +0100 Subject: [PATCH 058/180] update some wordings & example code --- docs/tutorial/writing_plugins.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/tutorial/writing_plugins.md b/docs/tutorial/writing_plugins.md index 2af33a5c8..047d1b782 100644 --- a/docs/tutorial/writing_plugins.md +++ b/docs/tutorial/writing_plugins.md @@ -1,20 +1,20 @@ # Writing plugins -## What are plugins +## What is a plugin -Plugins are custom classes which can change the chart config or data in runtime -or they can even modify the displayed chart. They work by providing functions to +A plugin is a custom class that can change the chart config or data in runtime +or it can even modify the displayed chart. It works by providing functions to the chart instance which will be called automatically or manually at certain -points of the animation process. Plugins are recommended for custom charts when +points in the animation process. Plugins are recommended for custom charts when the available configuration options are not enough. The functions of the plugin can be **hooks** which are called automatically at certain points during the rendering, **API functions** which can be called -manually or **listeners** that are connected to certain events. +manually or **listeners** that are connected to certain (predefined) events. ## How to write a plugin -To write a plugin, first import the `Plugin` interface. +To write a plugin, first import the `Plugins` module. ```typescript import { type Plugins } from 'vizzu' @@ -158,7 +158,7 @@ Define a getter method for the listeners property as follows: get listeners(): Plugins.PluginListeners { return { [Events.EventType.pointerup]: (): void => { - console.log('Example plugin: pointerup event') + console.log('You clicked on the chart') } } } From 110d38ae056054b55d64f0a242ca902c54bef303 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Fri, 24 Nov 2023 11:39:30 +0100 Subject: [PATCH 059/180] reset config --- tools/docs/mkdocs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/docs/mkdocs.yml b/tools/docs/mkdocs.yml index 2baf1ed18..f8d3e2bc3 100644 --- a/tools/docs/mkdocs.yml +++ b/tools/docs/mkdocs.yml @@ -89,9 +89,9 @@ plugins: - gen-files: scripts: - pages/gen_pages.py - # - examples/gen_examples.py - # - reference/gen_reference.py - # - style/gen_style_reference.py + - examples/gen_examples.py + - reference/gen_reference.py + - style/gen_style_reference.py nav: - Home: index.md From d9d69281e60a7a9c3226f6e29c5d43bf1524d11d Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Fri, 24 Nov 2023 17:07:03 +0100 Subject: [PATCH 060/180] add current lib version placeholder /w plugin --- docs/tutorial/writing_plugins.md | 2 +- tools/ci/pdm.lock | 20 +++++++++++++++++--- tools/ci/pyproject.toml | 1 + tools/docs/mkdocs.yml | 1 + tools/docs/placeholder-plugin.yaml | 4 ++++ 5 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 tools/docs/placeholder-plugin.yaml diff --git a/docs/tutorial/writing_plugins.md b/docs/tutorial/writing_plugins.md index 047d1b782..24030a177 100644 --- a/docs/tutorial/writing_plugins.md +++ b/docs/tutorial/writing_plugins.md @@ -37,7 +37,7 @@ the plugin. It has the following fields: export class ExamplePlugin implements Plugins.Plugin { meta = { name: 'examplePlugin', - version: '0.9.1', + version: 'xCURRENT_LIB_VERSIONx', depends: [] } } diff --git a/tools/ci/pdm.lock b/tools/ci/pdm.lock index 5d40d2c07..09949fb9d 100644 --- a/tools/ci/pdm.lock +++ b/tools/ci/pdm.lock @@ -3,9 +3,10 @@ [metadata] groups = ["default", "codequality", "docs", "packagetool"] -strategy = ["cross_platform"] -lock_version = "4.4" -content_hash = "sha256:5fa638f204eae191ae1db9b1a5b14a16bf96b6ce152a514455b269dba5d039e0" +cross_platform = true +static_urls = false +lock_version = "4.3" +content_hash = "sha256:2a2ea4394d724d9d3e237f82c6f825b6cf17e087b539c4375888b75d6bff8013" [[package]] name = "astroid" @@ -837,6 +838,19 @@ files = [ {file = "mkdocs_material_extensions-1.3.tar.gz", hash = "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd"}, ] +[[package]] +name = "mkdocs-placeholder-plugin" +version = "0.4.1" +requires_python = ">=3.9" +summary = "Add dynamic placeholders to your mkdocs page" +dependencies = [ + "mkdocs>=1.4.0", +] +files = [ + {file = "mkdocs-placeholder-plugin-0.4.1.tar.gz", hash = "sha256:268ac6f1020a6c02e31358d390d68fc09fd1f7062101ce7787769be10678dc4e"}, + {file = "mkdocs_placeholder_plugin-0.4.1-py3-none-any.whl", hash = "sha256:976eb16659d38741d4345fd371d8137ad20051247680b68f27da943b6181778f"}, +] + [[package]] name = "mkdocs-section-index" version = "0.3.8" diff --git a/tools/ci/pyproject.toml b/tools/ci/pyproject.toml index 6d891a044..59717f2e6 100644 --- a/tools/ci/pyproject.toml +++ b/tools/ci/pyproject.toml @@ -38,6 +38,7 @@ docs = [ "mkdocs-literate-nav", "mkdocs-autorefs", "mkdocs-gen-files", + "mkdocs-placeholder-plugin>=0.4.1", "mike", "pyyaml", "types-pyyaml", diff --git a/tools/docs/mkdocs.yml b/tools/docs/mkdocs.yml index f8d3e2bc3..fd82fc74e 100644 --- a/tools/docs/mkdocs.yml +++ b/tools/docs/mkdocs.yml @@ -86,6 +86,7 @@ plugins: - literate-nav: implicit_index: true - autorefs + - placeholder - gen-files: scripts: - pages/gen_pages.py diff --git a/tools/docs/placeholder-plugin.yaml b/tools/docs/placeholder-plugin.yaml new file mode 100644 index 000000000..21c9fd4cf --- /dev/null +++ b/tools/docs/placeholder-plugin.yaml @@ -0,0 +1,4 @@ +placeholders: + CURRENT_LIB_VERSION: 0.9.1 +settings: + auto_placeholder_tables: false From d89465849e191525cd1f9acef3e286c75afde298 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Fri, 24 Nov 2023 17:19:58 +0100 Subject: [PATCH 061/180] fix typo & update code examples --- docs/tutorial/writing_plugins.md | 48 +++++++++++++++++++------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/docs/tutorial/writing_plugins.md b/docs/tutorial/writing_plugins.md index 24030a177..e620dafb7 100644 --- a/docs/tutorial/writing_plugins.md +++ b/docs/tutorial/writing_plugins.md @@ -50,7 +50,7 @@ defined in the returned object: - `prepareAnimation`: Called when the animate() parameters gets set in the library to prepare the animation. - `registerAnimation`: Called when the animate() method called, and the lib - shedules the call to the animation queue. + schedules the call to the animation queue. - `runAnimation`: Called when all animate() parameter set and animation can be started. @@ -66,8 +66,12 @@ export class ExamplePlugin implements Plugins.Plugin { get hooks(): Plugins.PluginHooks { return { prepareAnimation: (ctx: Plugins.PrepareAnimationContext, next: () => void): void => { - if ('config' in ctx.target) { - ctx.target.config.title = ctx.target.config?.color ?? 'Example plugin' + const config = ctx.target[0].target.config + if (config.channels.color) { + config.title = Object.values(config.channels.color)[0][0] + this.hasChanged = true + } else { + config.title = 'Example plugin' } next() } @@ -77,7 +81,7 @@ export class ExamplePlugin implements Plugins.Plugin { ``` The hooks can also have a `priority` number that decides the order the -registered plugins run. It’s a float value, ranging from 0 (first) to 1 (last). +registered plugins run. It’s a float value, ranging from 0 (last) to 1 (first). ```typescript export class ExamplePlugin implements Plugins.Plugin { @@ -85,12 +89,16 @@ export class ExamplePlugin implements Plugins.Plugin { return { prepareAnimation: Object.assign( (ctx: Plugins.PrepareAnimationContext, next: () => void): void => { - if ('config' in ctx.target) { - ctx.target.config.title = ctx.target.config?.color ?? 'Example plugin' - } - next() + const config = ctx.target[0].target.config + if (config.channels.color) { + config.title = Object.values(config.channels.color)[0][0] + this.hasChanged = true + } else { + config.title = 'Example plugin' + } + next() }, - { priority: 1 } + { priority: .9 } ) } } @@ -125,17 +133,16 @@ export class ExamplePlugin implements Plugins.Plugin { return { prepareAnimation: Object.assign( (ctx: Plugins.PrepareAnimationContext, next: () => void): void => { - if ('config' in ctx.target) { - if (ctx.target.config.color) { - this.hasChanged = true - ctx.target.config.title = ctx.target.config.color - } else { - ctx.target.config.title = 'Example plugin' - } - } - next() + const config = ctx.target[0].target.config + if (config.channels.color) { + config.title = Object.values(config.channels.color)[0][0] + this.hasChanged = true + } else { + config.title = 'Example plugin' + } + next() }, - { priority: 1 } + { priority: .9 } ) } } @@ -191,3 +198,6 @@ anim.activated.then(() => { } }) ``` + +!!! info + For more information check out our plugins at . From 0bc00658ad608bd789697944b013bffe46d31155 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Mon, 27 Nov 2023 10:13:56 +0100 Subject: [PATCH 062/180] add missing placeholder --- docs/tutorial/writing_plugins.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorial/writing_plugins.md b/docs/tutorial/writing_plugins.md index e620dafb7..c365cdb43 100644 --- a/docs/tutorial/writing_plugins.md +++ b/docs/tutorial/writing_plugins.md @@ -124,7 +124,7 @@ interface ExamplePluginApi extends Plugins.PluginApi { export class ExamplePlugin implements Plugins.Plugin { meta: Plugins.PluginMeta = { name: 'examplePlugin', - version: '0.9.1', + version: 'xCURRENT_LIB_VERSIONx', depends: [] } private hasChanged: boolean = false From 065d44567c8a5433812f264c01e0ab9912fa8742 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 27 Nov 2023 14:52:21 +0100 Subject: [PATCH 063/180] Remove autoparam's null option --- src/chart/options/autoparam.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chart/options/autoparam.h b/src/chart/options/autoparam.h index d4144fb00..497181890 100644 --- a/src/chart/options/autoparam.h +++ b/src/chart/options/autoparam.h @@ -24,7 +24,7 @@ template struct AutoParam explicit AutoParam(const std::string &s) : autoSet(s == "auto") { - if (!autoSet) value = Conv::parse>(s); + if (!autoSet) value = Conv::parse(s); } explicit operator std::string() const From 5e9befaa8437dd0740d12a1568382d0176c3c361 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Mon, 27 Nov 2023 15:10:40 +0100 Subject: [PATCH 064/180] fix formatting --- docs/tutorial/writing_plugins.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/tutorial/writing_plugins.md b/docs/tutorial/writing_plugins.md index c365cdb43..7d4b9a74d 100644 --- a/docs/tutorial/writing_plugins.md +++ b/docs/tutorial/writing_plugins.md @@ -28,7 +28,8 @@ export class ExamplePlugin implements Plugins.Plugin { ``` The class can have a `meta` property which provides the basic configuration for -the plugin. It has the following fields: +the plugin. It has the following fields: + - `name`: the name of the plugin - `version`: the version of the **library** the plugin is compatible with - `depends`: an array of strings describing other plugins this one depends on @@ -52,7 +53,7 @@ defined in the returned object: - `registerAnimation`: Called when the animate() method called, and the lib schedules the call to the animation queue. - `runAnimation`: Called when all animate() parameter set and animation can be - started. + started. Let’s add a simple function to the `prepareAnimation` phase. We’d like to automatically set the chart title to the name of the data series which is @@ -200,4 +201,5 @@ anim.activated.then(() => { ``` !!! info - For more information check out our plugins at . + For more information check out our plugins at + . From d11319581d3704f2cc069f40bb9a65d395b8d235 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 27 Nov 2023 15:47:44 +0100 Subject: [PATCH 065/180] Remove channel min/max nullable --- CHANGELOG.md | 1 + src/apps/weblib/typeschema-api/config.yaml | 2 - src/chart/main/chart.cpp | 4 +- src/chart/options/options.cpp | 6 +- src/chart/options/options.h | 2 +- ...ding_test_rectangle_negative_2dis_3con.mjs | 2 +- .../marker/rectangle_negative_2dis_3con.mjs | 2 +- .../rectangle_labels_rotated_charts.mjs | 2 +- .../test_cases/operations/all_operations.mjs | 104 +----------------- .../operations/all_operations_sizeing.mjs | 2 +- .../line_orientation.mjs | 2 +- .../rotated_bar_to_donut.mjs | 2 +- 12 files changed, 14 insertions(+), 117 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed0c8d9d8..4eb099a57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Fixed redraw on browser zoom (bug since 0.9.0). - Fixed clearing of the canvas before rendering when devicePixelRatio is not 1. - TypeScript definition fixed, measures can contain null values. +- Orientation and channel min/max cannot be null, only auto ### Added diff --git a/src/apps/weblib/typeschema-api/config.yaml b/src/apps/weblib/typeschema-api/config.yaml index 99e6538c3..9f88b8cf7 100644 --- a/src/apps/weblib/typeschema-api/config.yaml +++ b/src/apps/weblib/typeschema-api/config.yaml @@ -23,10 +23,8 @@ definitions: properties: min: $ref: ChannelExtrema - nullable: true max: $ref: ChannelExtrema - nullable: true AutoBool: oneOf: diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index 75f118bb4..0cf29d9c6 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -148,9 +148,9 @@ void Chart::draw(Gfx::ICanvas &canvas) actPlot->getOptions()->legend.visit( [&](int, const auto &legend) { - if (legend.value) + if (*legend.value) Draw::DrawLegend(context, - Gen::Options::toChannel(*legend.value), + Gen::Options::toChannel(**legend.value), legend.weight); }); diff --git a/src/chart/options/options.cpp b/src/chart/options/options.cpp index 6820edc4c..2870f5d73 100644 --- a/src/chart/options/options.cpp +++ b/src/chart/options/options.cpp @@ -234,7 +234,7 @@ uint64_t Options::generateMarkerInfoId() void Options::setAutoParameters() { if (legend.get().isAuto()) { - Base::AutoParam tmp = legend.get(); + LegendType tmp = legend.get(); tmp.setAuto(getAutoLegend()); legend = tmp; } @@ -373,8 +373,8 @@ bool Options::labelsShownFor(const Data::SeriesIndex &series) const { return channels.at(ChannelId::x).labelSeries() == series || channels.at(ChannelId::y).labelSeries() == series - || (legend.get() - && channels.at(toChannel(*legend.get())).labelSeries() + || (legend.get() && *legend.get() + && channels.at(toChannel(**legend.get())).labelSeries() == series); } diff --git a/src/chart/options/options.h b/src/chart/options/options.h index 35c2cfa67..4304cdd5c 100644 --- a/src/chart/options/options.h +++ b/src/chart/options/options.h @@ -49,7 +49,7 @@ class Options using MarkerId = uint64_t; using Heading = ::Anim::Interpolated>; - using LegendType = Base::AutoParam; + using LegendType = Base::AutoParam>; using Legend = ::Anim::Interpolated; using OrientationType = Base::AutoParam; using Orientation = ::Anim::Interpolated; diff --git a/test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs b/test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs index e3ec7b2d5..6f610a2d6 100755 --- a/test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs +++ b/test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs @@ -104,7 +104,7 @@ const testSteps = [ chart.animate({ config: { channels: { - y: { detach: ['Value 2 (+)'], range: { min: null, max: null } }, + y: { detach: ['Value 2 (+)'], range: { min: 'auto', max: 'auto' } }, x: { attach: ['Value 2 (+)'] }, label: { attach: ['Value 2 (+)', 'Country'] } }, diff --git a/test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs b/test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs index 6218ef969..68c867d6e 100755 --- a/test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs +++ b/test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs @@ -179,7 +179,7 @@ const testSteps = [ chart.animate({ config: { channels: { - y: { detach: ['Value 2 (+)'], range: { min: null, max: null } }, + y: { detach: ['Value 2 (+)'], range: { min: 'auto', max: 'auto' } }, x: { attach: ['Value 2 (+)'] }, label: { attach: ['Value 2 (+)', 'Country'] } }, diff --git a/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs b/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs index 279db4430..978ac5732 100755 --- a/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs +++ b/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs @@ -188,7 +188,7 @@ const testSteps = [ chart.animate({ config: { channels: { - y: { detach: ['Value 2 (+)'], range: { min: null, max: null } }, + y: { detach: ['Value 2 (+)'], range: { min: 'auto', max: 'auto' } }, x: { attach: ['Value 2 (+)'] }, label: { attach: ['Value 2 (+)', 'Country'] } }, diff --git a/test/integration/test_cases/operations/all_operations.mjs b/test/integration/test_cases/operations/all_operations.mjs index 2e0b7d5d1..f3486ffcb 100755 --- a/test/integration/test_cases/operations/all_operations.mjs +++ b/test/integration/test_cases/operations/all_operations.mjs @@ -12,109 +12,7 @@ const testSteps = [ }, title: 'A simple column chart.' } - }) /*, - chart => chart.animate( - { - config: { - channels: { - y: { attach: ['Categ. Parent'] }, - color: { attach: ['Categ. Parent'] }, - }, - title: 'A cross-metric added to the y-axis and the color channel.', - legend: "color" - } - } - ), - chart => chart.animate( - { - config: { - channels: {}, - title: 'The geometric elements used can be changed to area...', - geometry: 'area' - } - } - ), - chart => chart.animate( - { - config: { - channels: { - y: { detach: ['Categ. Parent'] } - }, - title: '...or line...', - geometry: 'line' - } - } - ), - chart => chart.animate( - { - config: { - channels: { - y: { attach: ['Categ. Parent'] } - }, - title: '...or back to rectangle.', - geometry: 'rectangle' - } - } - ), - chart => chart.animate( - { - config: { - channels: { - y: { detach: ['Values 1'] }, - x: { attach: ['Values 1'], range: { min: '0%', max: '110%' } } - }, - legend: null, - title: 'Values can be grouped by the other axis too.', - }, - } - ), - chart => chart.animate( - { - config: { - channels: { - x: { detach: 'Timeseries' }, - }, - title: 'Values can be grouped by the other axis too.', - } - } - ), - chart => chart.animate( - { - config: { - channels: { - x: { range: { min: '0%', max: '133.3%' } }, - }, - title: 'Using polar coordinates instead of cartesian is also an option.', - coordSystem: 'polar' - } - } - ), - chart => chart.animate( - { - config: { - channels: { - x: { attach: 'Timeseries' }, - lightness: { attach: ["Values 2"] } - }, - title: 'Values can be added to the lightness channel.', - legend: "lightness" - }, - } - ), - chart => chart.animate( - { - config: { - channels: { - y: { detach: ['Categ. Parent'] }, - x: { detach: ['Values 1', 'Timeseries'], range: { min: null, max: null } }, - size: { attach: ['Values 3', 'Timeseries'] } - }, - title: 'Charts can also exist without any data on the axes.', - legend: 'color', - coordSystem: 'cartesian' - } - } - ) */, + }), (chart) => chart.animate({ config: { diff --git a/test/integration/test_cases/operations/all_operations_sizeing.mjs b/test/integration/test_cases/operations/all_operations_sizeing.mjs index 0b28febe7..97e6a5972 100755 --- a/test/integration/test_cases/operations/all_operations_sizeing.mjs +++ b/test/integration/test_cases/operations/all_operations_sizeing.mjs @@ -111,7 +111,7 @@ const testSteps = [ y: { detach: ['Categ. Parent'] }, x: { detach: ['Values 1', 'Timeseries'], - range: { min: null, max: null } + range: { min: 'auto', max: 'auto' } }, size: { attach: ['Values 3', 'Timeseries'] } }, diff --git a/test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs b/test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs index c180e5fa7..e61353c76 100755 --- a/test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs +++ b/test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs @@ -20,7 +20,7 @@ const testSteps = [ chart.animate({ config: { channels: { - y: { detach: ['Values 1'], range: { min: null, max: null } }, + y: { detach: ['Values 1'], range: { min: 'auto', max: 'auto' } }, x: { attach: ['Values 1'] }, color: { attach: ['Timeseries'] } }, diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs index 661f61e26..d9fa6939a 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs @@ -40,7 +40,7 @@ const testSteps = [ chart.animate({ config: { channels: { - y: { range: { min: null, max: null } }, + y: { range: { min: 'auto', max: 'auto' } }, x: ['Country', 'Value 2 (+)'], label: { attach: ['Value 5 (+/-)', 'Country'] } }, From 728206b3421f084c99b95bf35fb3d66f97d92a52 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 28 Nov 2023 14:51:23 +0100 Subject: [PATCH 066/180] Revert Legend modifications + add AutoParam nullable. --- src/apps/weblib/cinterface.cpp | 5 +++++ src/chart/main/chart.cpp | 4 ++-- src/chart/options/autoparam.h | 16 +++++++++++++--- src/chart/options/options.cpp | 4 ++-- src/chart/options/options.h | 2 +- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/apps/weblib/cinterface.cpp b/src/apps/weblib/cinterface.cpp index 633ccd65e..db99d1588 100644 --- a/src/apps/weblib/cinterface.cpp +++ b/src/apps/weblib/cinterface.cpp @@ -89,6 +89,11 @@ const char *vizzu_errorMessage(APIHandles::Exception exceptionPtr, static_cast( exceptionPtr); break; + case hash("bad_variant_access"): + realException = + static_cast( + exceptionPtr); + break; } if (realException) return realException->what(); diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index 0cf29d9c6..75f118bb4 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -148,9 +148,9 @@ void Chart::draw(Gfx::ICanvas &canvas) actPlot->getOptions()->legend.visit( [&](int, const auto &legend) { - if (*legend.value) + if (legend.value) Draw::DrawLegend(context, - Gen::Options::toChannel(**legend.value), + Gen::Options::toChannel(*legend.value), legend.weight); }); diff --git a/src/chart/options/autoparam.h b/src/chart/options/autoparam.h index 497181890..ab5176c63 100644 --- a/src/chart/options/autoparam.h +++ b/src/chart/options/autoparam.h @@ -11,7 +11,7 @@ namespace Vizzu::Base { -template struct AutoParam +template struct AutoParam { public: AutoParam() : autoSet(true) {} @@ -24,13 +24,23 @@ template struct AutoParam explicit AutoParam(const std::string &s) : autoSet(s == "auto") { - if (!autoSet) value = Conv::parse(s); + if (!autoSet) { + if constexpr (nullable) { + value = Conv::parse>(s); + } + else { + value = Conv::parse(s); + } + } } explicit operator std::string() const { if (autoSet) return "auto"; - return Conv::toString(value); + if constexpr (nullable) { return Conv::toString(value); } + else { + return Conv::toString(*value); + } } explicit operator bool() const diff --git a/src/chart/options/options.cpp b/src/chart/options/options.cpp index 2870f5d73..303843ea8 100644 --- a/src/chart/options/options.cpp +++ b/src/chart/options/options.cpp @@ -373,8 +373,8 @@ bool Options::labelsShownFor(const Data::SeriesIndex &series) const { return channels.at(ChannelId::x).labelSeries() == series || channels.at(ChannelId::y).labelSeries() == series - || (legend.get() && *legend.get() - && channels.at(toChannel(**legend.get())).labelSeries() + || (legend.get() + && channels.at(toChannel(*legend.get())).labelSeries() == series); } diff --git a/src/chart/options/options.h b/src/chart/options/options.h index 4304cdd5c..16f0f7ab2 100644 --- a/src/chart/options/options.h +++ b/src/chart/options/options.h @@ -49,7 +49,7 @@ class Options using MarkerId = uint64_t; using Heading = ::Anim::Interpolated>; - using LegendType = Base::AutoParam>; + using LegendType = Base::AutoParam; using Legend = ::Anim::Interpolated; using OrientationType = Base::AutoParam; using Orientation = ::Anim::Interpolated; From 9aa261e765cb98816cf5a09ccbe6476bd0479bfd Mon Sep 17 00:00:00 2001 From: David Vegh Date: Tue, 28 Nov 2023 15:10:14 +0100 Subject: [PATCH 067/180] Fixed test report upload --- tools/ci/gcp/cloudbuild/cloudbuild.yaml | 2 +- tools/ci/run/test-gsutil.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/ci/gcp/cloudbuild/cloudbuild.yaml b/tools/ci/gcp/cloudbuild/cloudbuild.yaml index 99419f980..675300ddb 100644 --- a/tools/ci/gcp/cloudbuild/cloudbuild.yaml +++ b/tools/ci/gcp/cloudbuild/cloudbuild.yaml @@ -154,7 +154,7 @@ steps: if [ "$_ISRELEASE" == "true" ]; then echo "skipped" else - ./tools/ci/run/test-gsutil.sh + ./tools/ci/run/test-gsutil.sh $SHORT_SHA fi dir: /workspace diff --git a/tools/ci/run/test-gsutil.sh b/tools/ci/run/test-gsutil.sh index 7cdb3e142..d0c99ce41 100755 --- a/tools/ci/run/test-gsutil.sh +++ b/tools/ci/run/test-gsutil.sh @@ -1,8 +1,9 @@ #!/bin/bash +SHORT_SHA="$1" npm test -- --vizzu /dist/vizzu.min.js --hashes ALL --maxFailedImages 100 || TEST_FAILED=true tar -czvf test/integration/test_report.tgz test/integration/test_report/ || TGZ_FAILED=true -gsutil cp 'test/integration/test_report.tgz' 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA/test_report.tgz' || GSUTIL_FAILED=true +gsutil cp "test/integration/test_report.tgz" "gs://vizzu-lib-main-sha/lib-$SHORT_SHA/test_report.tgz" || GSUTIL_FAILED=true if [ "$TEST_FAILED" == "true" ] || [ "$TGZ_FAILED" == "true" ] || [ "$GSUTIL_FAILED" == "true" ]; then exit 1 fi From 26c81255a19368555d95ace5545ffd612502b678 Mon Sep 17 00:00:00 2001 From: Nandor Devai Date: Tue, 28 Nov 2023 15:53:25 +0100 Subject: [PATCH 068/180] convert tabs to spaces --- docs/tutorial/writing_plugins.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/tutorial/writing_plugins.md b/docs/tutorial/writing_plugins.md index 7d4b9a74d..24446e9b7 100644 --- a/docs/tutorial/writing_plugins.md +++ b/docs/tutorial/writing_plugins.md @@ -98,7 +98,7 @@ export class ExamplePlugin implements Plugins.Plugin { config.title = 'Example plugin' } next() - }, + }, { priority: .9 } ) } @@ -123,12 +123,12 @@ interface ExamplePluginApi extends Plugins.PluginApi { } export class ExamplePlugin implements Plugins.Plugin { - meta: Plugins.PluginMeta = { - name: 'examplePlugin', + meta: Plugins.PluginMeta = { + name: 'examplePlugin', version: 'xCURRENT_LIB_VERSIONx', - depends: [] - } - private hasChanged: boolean = false + depends: [] + } + private hasChanged: boolean = false get hooks(): Plugins.PluginHooks { return { @@ -142,19 +142,19 @@ export class ExamplePlugin implements Plugins.Plugin { config.title = 'Example plugin' } next() - }, + }, { priority: .9 } ) } } - get api(): ExamplePluginApi { - return { - hasDefaultTitle: (): boolean => { - return !this.hasChanged - } - } - } + get api(): ExamplePluginApi { + return { + hasDefaultTitle: (): boolean => { + return !this.hasChanged + } + } + } } ``` From 74c0e310b0d948ea9b4a373275249e021d4ae60b Mon Sep 17 00:00:00 2001 From: David Vegh Date: Tue, 28 Nov 2023 16:56:55 +0100 Subject: [PATCH 069/180] Fixed tutorial url version replacement --- .gitignore | 1 + docs/tutorial/aggregating_data.md | 2 +- docs/tutorial/align_range.md | 2 +- docs/tutorial/animation_control_keyframes.md | 2 +- docs/tutorial/animation_options.md | 2 +- docs/tutorial/assets/setup/init | 4 +- docs/tutorial/assets/setup/setup_a | 4 +- docs/tutorial/assets/setup/setup_b | 4 +- docs/tutorial/assets/setup/setup_c | 4 +- docs/tutorial/axes_title_tooltip.md | 2 +- docs/tutorial/changing_dimensions.md | 2 +- docs/tutorial/channels_legend.md | 2 +- docs/tutorial/chart_layout.md | 2 +- docs/tutorial/chart_presets.md | 2 +- docs/tutorial/color_palette_fonts.md | 2 +- docs/tutorial/events.md | 2 +- docs/tutorial/filter_add_new_records.md | 2 +- docs/tutorial/geometry.md | 2 +- docs/tutorial/group_stack.md | 2 +- docs/tutorial/index.md | 2 +- docs/tutorial/initialization.md | 2 +- docs/tutorial/orientation_split_polar.md | 2 +- docs/tutorial/shorthands_store.md | 2 +- docs/tutorial/sorting.md | 2 +- .../without_coordinates_noop_channel.md | 2 +- tools/ci/pdm.lock | 147 ++++++++++-------- tools/ci/pyproject.toml | 2 +- tools/ci/run/docs-build.sh | 1 + tools/ci/run/docs-deploy.sh | 1 + tools/docs/mkdocs.yml | 3 +- tools/docs/pages/gen_pages.py | 6 +- tools/docs/placeholder.py | 49 ++++++ 32 files changed, 170 insertions(+), 96 deletions(-) create mode 100644 tools/docs/placeholder.py diff --git a/.gitignore b/.gitignore index 762204216..a0345eb60 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ __pycache__ vizzu_dev* .pdm-python +placeholder-plugin.yaml docs/examples/**/*.png docs/examples/**/*.mp4 docs/examples/**/*.webm diff --git a/docs/tutorial/aggregating_data.md b/docs/tutorial/aggregating_data.md index 0acb44bbc..6b51d8242 100644 --- a/docs/tutorial/aggregating_data.md +++ b/docs/tutorial/aggregating_data.md @@ -13,7 +13,7 @@ within `Genres`.
-{!tutorial/assets/setup/setup_a!} +{% include-markdown "tutorial/assets/setup/setup_a" %} ```javascript chart.animate({ diff --git a/docs/tutorial/align_range.md b/docs/tutorial/align_range.md index eb54b323f..582a4c2ab 100644 --- a/docs/tutorial/align_range.md +++ b/docs/tutorial/align_range.md @@ -21,7 +21,7 @@ whereas on a bar chart, horizontally.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} Change align and configures the y axis labels to disappear during the animation. diff --git a/docs/tutorial/animation_control_keyframes.md b/docs/tutorial/animation_control_keyframes.md index 1417fe717..e8e260707 100644 --- a/docs/tutorial/animation_control_keyframes.md +++ b/docs/tutorial/animation_control_keyframes.md @@ -11,7 +11,7 @@ In this step, we seek forward to `50%` of progress after the animation starts.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/docs/tutorial/animation_options.md b/docs/tutorial/animation_options.md index 6ddc54b1c..ed1dca744 100644 --- a/docs/tutorial/animation_options.md +++ b/docs/tutorial/animation_options.md @@ -14,7 +14,7 @@ the default animation options.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/docs/tutorial/assets/setup/init b/docs/tutorial/assets/setup/init index fd65d6db7..6dc51e1c9 100644 --- a/docs/tutorial/assets/setup/init +++ b/docs/tutorial/assets/setup/init @@ -14,8 +14,8 @@ In `JavaScript`, initialize and configure the chart: ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/latest/assets/data/music_data.js' + import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@xLIB_MINOR_VERSIONx/dist/vizzu.min.js' + import data from 'https://lib.vizzuhq.com/xLIB_MINOR_VERSIONx/assets/data/music_data.js' let chart = new Vizzu('myVizzu') diff --git a/docs/tutorial/assets/setup/setup_a b/docs/tutorial/assets/setup/setup_a index 79042f43a..5b610c86c 100644 --- a/docs/tutorial/assets/setup/setup_a +++ b/docs/tutorial/assets/setup/setup_a @@ -1,4 +1,4 @@ ??? info "Info - How to setup Vizzu" - {!tutorial/assets/setup/init!} + {% include-markdown "tutorial/assets/setup/init" %} - {!tutorial/assets/setup/config_a!} + {% include-markdown "tutorial/assets/setup/config_a" %} diff --git a/docs/tutorial/assets/setup/setup_b b/docs/tutorial/assets/setup/setup_b index 70cbaba57..410eb6fcc 100644 --- a/docs/tutorial/assets/setup/setup_b +++ b/docs/tutorial/assets/setup/setup_b @@ -1,4 +1,4 @@ ??? info "Info - How to setup Vizzu" - {!tutorial/assets/setup/init!} + {% include-markdown "tutorial/assets/setup/init" %} - {!tutorial/assets/setup/config_b!} + {% include-markdown "tutorial/assets/setup/config_b" %} diff --git a/docs/tutorial/assets/setup/setup_c b/docs/tutorial/assets/setup/setup_c index 1a5d72a5c..a688d66dc 100644 --- a/docs/tutorial/assets/setup/setup_c +++ b/docs/tutorial/assets/setup/setup_c @@ -1,4 +1,4 @@ ??? info "Info - How to setup Vizzu" - {!tutorial/assets/setup/init!} + {% include-markdown "tutorial/assets/setup/init" %} - {!tutorial/assets/setup/config_c!} + {% include-markdown "tutorial/assets/setup/config_c" %} diff --git a/docs/tutorial/axes_title_tooltip.md b/docs/tutorial/axes_title_tooltip.md index 7dbaf27e4..818fa63a7 100644 --- a/docs/tutorial/axes_title_tooltip.md +++ b/docs/tutorial/axes_title_tooltip.md @@ -15,7 +15,7 @@ the measure (`Popularity`) to the y-axis using the set property.
-{!tutorial/assets/setup/setup_a!} +{% include-markdown "tutorial/assets/setup/setup_a" %} ```javascript chart.animate({ diff --git a/docs/tutorial/changing_dimensions.md b/docs/tutorial/changing_dimensions.md index 1e7733851..5652bce4d 100644 --- a/docs/tutorial/changing_dimensions.md +++ b/docs/tutorial/changing_dimensions.md @@ -15,7 +15,7 @@ elements.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/docs/tutorial/channels_legend.md b/docs/tutorial/channels_legend.md index 84922df02..c00673b70 100644 --- a/docs/tutorial/channels_legend.md +++ b/docs/tutorial/channels_legend.md @@ -19,7 +19,7 @@ them differently with the `style` object introduced in the
-{!tutorial/assets/setup/setup_b!} +{% include-markdown "tutorial/assets/setup/setup_b" %} ```javascript chart.animate({ diff --git a/docs/tutorial/chart_layout.md b/docs/tutorial/chart_layout.md index a25839e8c..d0a074e76 100644 --- a/docs/tutorial/chart_layout.md +++ b/docs/tutorial/chart_layout.md @@ -18,7 +18,7 @@ are aligned.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/docs/tutorial/chart_presets.md b/docs/tutorial/chart_presets.md index 3b60cb265..814696ab5 100644 --- a/docs/tutorial/chart_presets.md +++ b/docs/tutorial/chart_presets.md @@ -19,7 +19,7 @@ stacked bubble chart using its preset.
-{!tutorial/assets/setup/setup_a!} +{% include-markdown "tutorial/assets/setup/setup_a" %} ```javascript chart.animate(Vizzu.presets.stackedBubble({ diff --git a/docs/tutorial/color_palette_fonts.md b/docs/tutorial/color_palette_fonts.md index b7683f490..a6a622c65 100644 --- a/docs/tutorial/color_palette_fonts.md +++ b/docs/tutorial/color_palette_fonts.md @@ -21,7 +21,7 @@ you should add
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/docs/tutorial/events.md b/docs/tutorial/events.md index 22dc79df3..5ce8eea2f 100644 --- a/docs/tutorial/events.md +++ b/docs/tutorial/events.md @@ -14,7 +14,7 @@ block with information about the clicked chart element.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript function clickHandler(event) { diff --git a/docs/tutorial/filter_add_new_records.md b/docs/tutorial/filter_add_new_records.md index 16149585d..51ead54d2 100644 --- a/docs/tutorial/filter_add_new_records.md +++ b/docs/tutorial/filter_add_new_records.md @@ -15,7 +15,7 @@ from the chart.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/docs/tutorial/geometry.md b/docs/tutorial/geometry.md index b131fdeb8..22c725ed3 100644 --- a/docs/tutorial/geometry.md +++ b/docs/tutorial/geometry.md @@ -12,7 +12,7 @@ Switching the geometry to area.
-{!tutorial/assets/setup/setup_b!} +{% include-markdown "tutorial/assets/setup/setup_b" %} ```javascript chart.animate({ diff --git a/docs/tutorial/group_stack.md b/docs/tutorial/group_stack.md index 38248fd2d..7f4599a9b 100644 --- a/docs/tutorial/group_stack.md +++ b/docs/tutorial/group_stack.md @@ -14,7 +14,7 @@ we also add the same dimension to the color channel.
-{!tutorial/assets/setup/setup_b!} +{% include-markdown "tutorial/assets/setup/setup_b" %} ```javascript chart.animate({ diff --git a/docs/tutorial/index.md b/docs/tutorial/index.md index 968b90b95..7f718c457 100644 --- a/docs/tutorial/index.md +++ b/docs/tutorial/index.md @@ -52,7 +52,7 @@ Or use it from [CDN](https://www.jsdelivr.com/package/npm/vizzu): diff --git a/docs/tutorial/initialization.md b/docs/tutorial/initialization.md index 665915acd..d2ebfb464 100644 --- a/docs/tutorial/initialization.md +++ b/docs/tutorial/initialization.md @@ -18,7 +18,7 @@ initialize the library, and then you can start setting up the first chart by calling the animate method. ```javascript -import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@latest/dist/vizzu.min.js'; +import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@xLIB_MINOR_VERSIONx/dist/vizzu.min.js'; let chart = new Vizzu('myVizzu') diff --git a/docs/tutorial/orientation_split_polar.md b/docs/tutorial/orientation_split_polar.md index 4a1133d0b..ba415ad94 100644 --- a/docs/tutorial/orientation_split_polar.md +++ b/docs/tutorial/orientation_split_polar.md @@ -14,7 +14,7 @@ only use temporarily.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/docs/tutorial/shorthands_store.md b/docs/tutorial/shorthands_store.md index 107f902f2..498c69c79 100644 --- a/docs/tutorial/shorthands_store.md +++ b/docs/tutorial/shorthands_store.md @@ -17,7 +17,7 @@ animate method, you can simplify your code by using only the object of the
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/docs/tutorial/sorting.md b/docs/tutorial/sorting.md index fe6c517a7..b73209999 100644 --- a/docs/tutorial/sorting.md +++ b/docs/tutorial/sorting.md @@ -13,7 +13,7 @@ ascending order.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/docs/tutorial/without_coordinates_noop_channel.md b/docs/tutorial/without_coordinates_noop_channel.md index 00ca937e3..7dcb0f2c5 100644 --- a/docs/tutorial/without_coordinates_noop_channel.md +++ b/docs/tutorial/without_coordinates_noop_channel.md @@ -14,7 +14,7 @@ still on the `color` channel.
-{!tutorial/assets/setup/setup_c!} +{% include-markdown "tutorial/assets/setup/setup_c" %} ```javascript chart.animate({ diff --git a/tools/ci/pdm.lock b/tools/ci/pdm.lock index 09949fb9d..ccdc419d7 100644 --- a/tools/ci/pdm.lock +++ b/tools/ci/pdm.lock @@ -2,11 +2,10 @@ # It is not intended for manual editing. [metadata] -groups = ["default", "codequality", "docs", "packagetool"] -cross_platform = true -static_urls = false -lock_version = "4.3" -content_hash = "sha256:2a2ea4394d724d9d3e237f82c6f825b6cf17e087b539c4375888b75d6bff8013" +groups = ["codequality", "docs", "packagetool"] +strategy = ["cross_platform"] +lock_version = "4.4" +content_hash = "sha256:95e6d3272ca740a84ff607b23de0331847cad9db72a3f040ae826d53623257a8" [[package]] name = "astroid" @@ -114,6 +113,16 @@ files = [ {file = "blinker-1.7.0.tar.gz", hash = "sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182"}, ] +[[package]] +name = "bracex" +version = "2.4" +requires_python = ">=3.8" +summary = "Bash style brace expander." +files = [ + {file = "bracex-2.4-py3-none-any.whl", hash = "sha256:efdc71eff95eaff5e0f8cfebe7d01adf2c8637c8c92edaf63ef348c241a82418"}, + {file = "bracex-2.4.tar.gz", hash = "sha256:a27eaf1df42cf561fed58b7a8f3fdf129d1ea16a81e1fadd1d17989bc6384beb"}, +] + [[package]] name = "cachecontrol" version = "0.13.1" @@ -309,12 +318,12 @@ files = [ [[package]] name = "idna" -version = "3.4" +version = "3.6" requires_python = ">=3.5" summary = "Internationalized Domain Names in Applications (IDNA)" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, ] [[package]] @@ -442,19 +451,6 @@ files = [ {file = "Markdown-3.5.1.tar.gz", hash = "sha256:b65d7beb248dc22f2e8a31fb706d93798093c308dc1aba295aedeb9d41a813bd"}, ] -[[package]] -name = "markdown-include" -version = "0.8.1" -requires_python = ">=3.7" -summary = "A Python-Markdown extension which provides an 'include' function" -dependencies = [ - "markdown>=3.0", -] -files = [ - {file = "markdown-include-0.8.1.tar.gz", hash = "sha256:1d0623e0fc2757c38d35df53752768356162284259d259c486b4ab6285cdbbe3"}, - {file = "markdown_include-0.8.1-py3-none-any.whl", hash = "sha256:32f0635b9cfef46997b307e2430022852529f7a5b87c0075c504283e7cc7db53"}, -] - [[package]] name = "markdown-it-py" version = "3.0.0" @@ -792,6 +788,20 @@ files = [ {file = "mkdocs_gen_files-0.5.0.tar.gz", hash = "sha256:4c7cf256b5d67062a788f6b1d035e157fc1a9498c2399be9af5257d4ff4d19bc"}, ] +[[package]] +name = "mkdocs-include-markdown-plugin" +version = "6.0.4" +requires_python = ">=3.8" +summary = "Mkdocs Markdown includer plugin." +dependencies = [ + "mkdocs>=1.4", + "wcmatch<9,>=8", +] +files = [ + {file = "mkdocs_include_markdown_plugin-6.0.4-py3-none-any.whl", hash = "sha256:e7b8b5ecc41d6a3e16969cff3725ec3a391b68e9dfe1a4b4e36a8508becda835"}, + {file = "mkdocs_include_markdown_plugin-6.0.4.tar.gz", hash = "sha256:523c9c3a1d6a517386dc11bf60b0c0c564af1071bb6de8d213106d54f752dcc1"}, +] + [[package]] name = "mkdocs-literate-nav" version = "0.6.1" @@ -807,7 +817,7 @@ files = [ [[package]] name = "mkdocs-material" -version = "9.4.10" +version = "9.4.14" requires_python = ">=3.8" summary = "Documentation that simply works" dependencies = [ @@ -824,18 +834,18 @@ dependencies = [ "requests~=2.26", ] files = [ - {file = "mkdocs_material-9.4.10-py3-none-any.whl", hash = "sha256:207c4ebc07faebb220437d2c626edb0c9760c82ccfc484500bd3eb30dfce988c"}, - {file = "mkdocs_material-9.4.10.tar.gz", hash = "sha256:421adedaeaa461dcaf55b8d406673934ade3d4f05ed9819e4cc7b4ee1d646a62"}, + {file = "mkdocs_material-9.4.14-py3-none-any.whl", hash = "sha256:dbc78a4fea97b74319a6aa9a2f0be575a6028be6958f813ba367188f7b8428f6"}, + {file = "mkdocs_material-9.4.14.tar.gz", hash = "sha256:a511d3ff48fa8718b033e7e37d17abd9cc1de0fdf0244a625ca2ae2387e2416d"}, ] [[package]] name = "mkdocs-material-extensions" -version = "1.3" +version = "1.3.1" requires_python = ">=3.8" summary = "Extension pack for Python Markdown and MkDocs Material." files = [ - {file = "mkdocs_material_extensions-1.3-py3-none-any.whl", hash = "sha256:0297cc48ba68a9fdd1ef3780a3b41b534b0d0df1d1181a44676fda5f464eeadc"}, - {file = "mkdocs_material_extensions-1.3.tar.gz", hash = "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd"}, + {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, + {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, ] [[package]] @@ -908,7 +918,7 @@ files = [ [[package]] name = "mypy" -version = "1.7.0" +version = "1.7.1" requires_python = ">=3.8" summary = "Optional static typing for Python" dependencies = [ @@ -917,23 +927,23 @@ dependencies = [ "typing-extensions>=4.1.0", ] files = [ - {file = "mypy-1.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5da84d7bf257fd8f66b4f759a904fd2c5a765f70d8b52dde62b521972a0a2357"}, - {file = "mypy-1.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a3637c03f4025f6405737570d6cbfa4f1400eb3c649317634d273687a09ffc2f"}, - {file = "mypy-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b633f188fc5ae1b6edca39dae566974d7ef4e9aaaae00bc36efe1f855e5173ac"}, - {file = "mypy-1.7.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d6ed9a3997b90c6f891138e3f83fb8f475c74db4ccaa942a1c7bf99e83a989a1"}, - {file = "mypy-1.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:1fe46e96ae319df21359c8db77e1aecac8e5949da4773c0274c0ef3d8d1268a9"}, - {file = "mypy-1.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:df67fbeb666ee8828f675fee724cc2cbd2e4828cc3df56703e02fe6a421b7401"}, - {file = "mypy-1.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a79cdc12a02eb526d808a32a934c6fe6df07b05f3573d210e41808020aed8b5d"}, - {file = "mypy-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f65f385a6f43211effe8c682e8ec3f55d79391f70a201575def73d08db68ead1"}, - {file = "mypy-1.7.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e81ffd120ee24959b449b647c4b2fbfcf8acf3465e082b8d58fd6c4c2b27e46"}, - {file = "mypy-1.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:f29386804c3577c83d76520abf18cfcd7d68264c7e431c5907d250ab502658ee"}, - {file = "mypy-1.7.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:87c076c174e2c7ef8ab416c4e252d94c08cd4980a10967754f91571070bf5fbe"}, - {file = "mypy-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6cb8d5f6d0fcd9e708bb190b224089e45902cacef6f6915481806b0c77f7786d"}, - {file = "mypy-1.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93e76c2256aa50d9c82a88e2f569232e9862c9982095f6d54e13509f01222fc"}, - {file = "mypy-1.7.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cddee95dea7990e2215576fae95f6b78a8c12f4c089d7e4367564704e99118d3"}, - {file = "mypy-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:d01921dbd691c4061a3e2ecdbfbfad029410c5c2b1ee88946bf45c62c6c91210"}, - {file = "mypy-1.7.0-py3-none-any.whl", hash = "sha256:96650d9a4c651bc2a4991cf46f100973f656d69edc7faf91844e87fe627f7e96"}, - {file = "mypy-1.7.0.tar.gz", hash = "sha256:1e280b5697202efa698372d2f39e9a6713a0395a756b1c6bd48995f8d72690dc"}, + {file = "mypy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:12cce78e329838d70a204293e7b29af9faa3ab14899aec397798a4b41be7f340"}, + {file = "mypy-1.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1484b8fa2c10adf4474f016e09d7a159602f3239075c7bf9f1627f5acf40ad49"}, + {file = "mypy-1.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31902408f4bf54108bbfb2e35369877c01c95adc6192958684473658c322c8a5"}, + {file = "mypy-1.7.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f2c2521a8e4d6d769e3234350ba7b65ff5d527137cdcde13ff4d99114b0c8e7d"}, + {file = "mypy-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:fcd2572dd4519e8a6642b733cd3a8cfc1ef94bafd0c1ceed9c94fe736cb65b6a"}, + {file = "mypy-1.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4b901927f16224d0d143b925ce9a4e6b3a758010673eeded9b748f250cf4e8f7"}, + {file = "mypy-1.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2f7f6985d05a4e3ce8255396df363046c28bea790e40617654e91ed580ca7c51"}, + {file = "mypy-1.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:944bdc21ebd620eafefc090cdf83158393ec2b1391578359776c00de00e8907a"}, + {file = "mypy-1.7.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9c7ac372232c928fff0645d85f273a726970c014749b924ce5710d7d89763a28"}, + {file = "mypy-1.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:f6efc9bd72258f89a3816e3a98c09d36f079c223aa345c659622f056b760ab42"}, + {file = "mypy-1.7.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6dbdec441c60699288adf051f51a5d512b0d818526d1dcfff5a41f8cd8b4aaf1"}, + {file = "mypy-1.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4fc3d14ee80cd22367caaaf6e014494415bf440980a3045bf5045b525680ac33"}, + {file = "mypy-1.7.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c6e4464ed5f01dc44dc9821caf67b60a4e5c3b04278286a85c067010653a0eb"}, + {file = "mypy-1.7.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d9b338c19fa2412f76e17525c1b4f2c687a55b156320acb588df79f2e6fa9fea"}, + {file = "mypy-1.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:204e0d6de5fd2317394a4eff62065614c4892d5a4d1a7ee55b765d7a3d9e3f82"}, + {file = "mypy-1.7.1-py3-none-any.whl", hash = "sha256:f7c5d642db47376a0cc130f0de6d055056e010debdaf0707cd2b0fc7e7ef30ea"}, + {file = "mypy-1.7.1.tar.gz", hash = "sha256:fcb6d9afb1b6208b4c712af0dafdc650f518836065df0d4fb1d800f5d6773db2"}, ] [[package]] @@ -1050,22 +1060,22 @@ files = [ [[package]] name = "platformdirs" -version = "3.11.0" +version = "4.0.0" requires_python = ">=3.7" summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." files = [ - {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, - {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, + {file = "platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b"}, + {file = "platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731"}, ] [[package]] name = "pygments" -version = "2.17.1" +version = "2.17.2" requires_python = ">=3.7" summary = "Pygments is a syntax highlighting package written in Python." files = [ - {file = "pygments-2.17.1-py3-none-any.whl", hash = "sha256:1b37f1b1e1bff2af52ecaf28cc601e2ef7077000b227a0675da25aef85784bc4"}, - {file = "pygments-2.17.1.tar.gz", hash = "sha256:e45a0e74bf9c530f564ca81b8952343be986a29f6afe7f5ad95c5f06b7bdf5e8"}, + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, ] [[package]] @@ -1092,16 +1102,16 @@ files = [ [[package]] name = "pymdown-extensions" -version = "10.4" +version = "10.5" requires_python = ">=3.8" summary = "Extension pack for Python Markdown." dependencies = [ - "markdown>=3.2", + "markdown>=3.5", "pyyaml", ] files = [ - {file = "pymdown_extensions-10.4-py3-none-any.whl", hash = "sha256:cfc28d6a09d19448bcbf8eee3ce098c7d17ff99f7bd3069db4819af181212037"}, - {file = "pymdown_extensions-10.4.tar.gz", hash = "sha256:bc46f11749ecd4d6b71cf62396104b4a200bad3498cb0f5dad1b8502fe461a35"}, + {file = "pymdown_extensions-10.5-py3-none-any.whl", hash = "sha256:1f0ca8bb5beff091315f793ee17683bc1390731f6ac4c5eb01e27464b80fe879"}, + {file = "pymdown_extensions-10.5.tar.gz", hash = "sha256:1b60f1e462adbec5a1ed79dac91f666c9c0d241fa294de1989f29d20096cfd0b"}, ] [[package]] @@ -1346,12 +1356,12 @@ files = [ [[package]] name = "setuptools" -version = "68.2.2" +version = "69.0.2" requires_python = ">=3.8" summary = "Easily download, build, install, upgrade, and uninstall Python packages" files = [ - {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, - {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, + {file = "setuptools-69.0.2-py3-none-any.whl", hash = "sha256:1e8fdff6797d3865f37397be788a4e3cba233608e9b509382a2777d25ebde7f2"}, + {file = "setuptools-69.0.2.tar.gz", hash = "sha256:735896e78a4742605974de002ac60562d286fa8051a7e2299445e8e8fbb01aa6"}, ] [[package]] @@ -1516,17 +1526,17 @@ files = [ [[package]] name = "virtualenv" -version = "20.24.6" +version = "20.24.7" requires_python = ">=3.7" summary = "Virtual Python Environment builder" dependencies = [ "distlib<1,>=0.3.7", "filelock<4,>=3.12.2", - "platformdirs<4,>=3.9.1", + "platformdirs<5,>=3.9.1", ] files = [ - {file = "virtualenv-20.24.6-py3-none-any.whl", hash = "sha256:520d056652454c5098a00c0f073611ccbea4c79089331f60bf9d7ba247bb7381"}, - {file = "virtualenv-20.24.6.tar.gz", hash = "sha256:02ece4f56fbf939dbbc33c0715159951d6bf14aaf5457b092e4548e1382455af"}, + {file = "virtualenv-20.24.7-py3-none-any.whl", hash = "sha256:a18b3fd0314ca59a2e9f4b556819ed07183b3e9a3702ecfe213f593d44f7b3fd"}, + {file = "virtualenv-20.24.7.tar.gz", hash = "sha256:69050ffb42419c91f6c1284a7b24e0475d793447e35929b488bf6a0aade39353"}, ] [[package]] @@ -1557,6 +1567,19 @@ files = [ {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"}, ] +[[package]] +name = "wcmatch" +version = "8.5" +requires_python = ">=3.8" +summary = "Wildcard/glob file name matcher." +dependencies = [ + "bracex>=2.1.1", +] +files = [ + {file = "wcmatch-8.5-py3-none-any.whl", hash = "sha256:14554e409b142edeefab901dc68ad570b30a72a8ab9a79106c5d5e9a6d241bd5"}, + {file = "wcmatch-8.5.tar.gz", hash = "sha256:86c17572d0f75cbf3bcb1a18f3bf2f9e72b39a9c08c9b4a74e991e1882a8efb3"}, +] + [[package]] name = "zipp" version = "3.17.0" diff --git a/tools/ci/pyproject.toml b/tools/ci/pyproject.toml index 59717f2e6..4a6660342 100644 --- a/tools/ci/pyproject.toml +++ b/tools/ci/pyproject.toml @@ -31,7 +31,6 @@ docs = [ "mdformat-footnote", "mdformat-frontmatter", "mdx_truly_sane_lists", - "markdown-include>=0.8.1", "mkdocs", "mkdocs-material", "mkdocs-section-index", @@ -39,6 +38,7 @@ docs = [ "mkdocs-autorefs", "mkdocs-gen-files", "mkdocs-placeholder-plugin>=0.4.1", + "mkdocs-include-markdown-plugin", "mike", "pyyaml", "types-pyyaml", diff --git a/tools/ci/run/docs-build.sh b/tools/ci/run/docs-build.sh index 1d0b604f2..42fb4c217 100755 --- a/tools/ci/run/docs-build.sh +++ b/tools/ci/run/docs-build.sh @@ -13,4 +13,5 @@ rm -rf docs/readme cp -r vizzu-lib-doc/docs/readme docs/ source .venv/bin/activate +python tools/docs/placeholder.py mkdocs build -f ./tools/docs/mkdocs.yml diff --git a/tools/ci/run/docs-deploy.sh b/tools/ci/run/docs-deploy.sh index f43be2fb2..ab586e0de 100755 --- a/tools/ci/run/docs-deploy.sh +++ b/tools/ci/run/docs-deploy.sh @@ -13,4 +13,5 @@ rm -rf docs/readme cp -r vizzu-lib-doc/docs/readme docs/ source .venv/bin/activate +python tools/docs/placeholder.py python tools/docs/deploy.py diff --git a/tools/docs/mkdocs.yml b/tools/docs/mkdocs.yml index fd82fc74e..5b47b00d8 100644 --- a/tools/docs/mkdocs.yml +++ b/tools/docs/mkdocs.yml @@ -72,8 +72,6 @@ markdown_extensions: use_pygments: false - pymdownx.details - pymdownx.superfences - - markdown_include.include: - base_path: docs plugins: - mike: @@ -86,6 +84,7 @@ plugins: - literate-nav: implicit_index: true - autorefs + - include-markdown - placeholder - gen-files: scripts: diff --git a/tools/docs/pages/gen_pages.py b/tools/docs/pages/gen_pages.py index 3fc9ec96b..4af3caa8e 100644 --- a/tools/docs/pages/gen_pages.py +++ b/tools/docs/pages/gen_pages.py @@ -123,13 +123,13 @@ def generate(skip: Optional[List[str]] = None) -> None: continue with open(path, "rt", encoding="utf8") as f_src: dst = path.relative_to(docs_path) - content = f_src.read() if path.suffix == ".md": + content = f_src.read() content = Vizzu.set_version(content) content = Markdown.format(content) mkdocs_gen_files.set_edit_path(dst, dst) - with mkdocs_gen_files.open(dst, "w") as f_dst: - f_dst.write(content) + with mkdocs_gen_files.open(dst, "w") as f_dst: + f_dst.write(content) def main() -> None: diff --git a/tools/docs/placeholder.py b/tools/docs/placeholder.py new file mode 100644 index 000000000..dcea58371 --- /dev/null +++ b/tools/docs/placeholder.py @@ -0,0 +1,49 @@ +# pylint: disable=missing-module-docstring,missing-class-docstring,missing-function-docstring + +from pathlib import Path +import sys + + +REPO_PATH = Path(__file__).parent / ".." / ".." +TOOLS_PATH = REPO_PATH / "tools" +MKDOCS_PATH = TOOLS_PATH / "docs" + + +sys.path.insert(0, str(TOOLS_PATH / "modules")) + +from chdir import ( # pylint: disable=import-error, wrong-import-position, wrong-import-order + chdir, +) +from vizzu import ( # pylint: disable=import-error, wrong-import-position, wrong-import-order + Vizzu, +) + + +PLACEHOLDER = """placeholders: + LIB_MINOR_VERSION: {} + LIB_PATCH_VERSION: {} +settings: + auto_placeholder_tables: false +""" + + +class Placeholder: + # pylint: disable=too-few-public-methods + + @staticmethod + def generate() -> None: + with open( + MKDOCS_PATH / "placeholder-plugin.yaml", "w", encoding="utf8" + ) as fh_config: + version = Vizzu.get_vizzu_full_version() + minor = f"{version[0]}.{version[1]}" + patch = f"{version[0]}.{version[1]}.{version[2]}" + fh_config.write(PLACEHOLDER.format(minor, patch)) + + +def main() -> None: + with chdir(REPO_PATH): + Placeholder.generate() + + +main() From e6b3c99339ac49e0cba95b53a59a14bcef46e4da Mon Sep 17 00:00:00 2001 From: David Vegh Date: Tue, 28 Nov 2023 16:57:38 +0100 Subject: [PATCH 070/180] Remove placegolder static config --- docs/tutorial/writing_plugins.md | 4 ++-- tools/docs/placeholder-plugin.yaml | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) delete mode 100644 tools/docs/placeholder-plugin.yaml diff --git a/docs/tutorial/writing_plugins.md b/docs/tutorial/writing_plugins.md index 24446e9b7..3a20c1b81 100644 --- a/docs/tutorial/writing_plugins.md +++ b/docs/tutorial/writing_plugins.md @@ -38,7 +38,7 @@ the plugin. It has the following fields: export class ExamplePlugin implements Plugins.Plugin { meta = { name: 'examplePlugin', - version: 'xCURRENT_LIB_VERSIONx', + version: 'xLIB_PATCH_VERSIONx', depends: [] } } @@ -125,7 +125,7 @@ interface ExamplePluginApi extends Plugins.PluginApi { export class ExamplePlugin implements Plugins.Plugin { meta: Plugins.PluginMeta = { name: 'examplePlugin', - version: 'xCURRENT_LIB_VERSIONx', + version: 'xLIB_PATCH_VERSIONx', depends: [] } private hasChanged: boolean = false diff --git a/tools/docs/placeholder-plugin.yaml b/tools/docs/placeholder-plugin.yaml deleted file mode 100644 index 21c9fd4cf..000000000 --- a/tools/docs/placeholder-plugin.yaml +++ /dev/null @@ -1,4 +0,0 @@ -placeholders: - CURRENT_LIB_VERSION: 0.9.1 -settings: - auto_placeholder_tables: false From 02895251c163d0b383a2ff7ba821c02399fe6dd5 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 29 Nov 2023 09:37:49 +0100 Subject: [PATCH 071/180] Fixed tutorial setup --- docs/tutorial/aggregating_data.md | 2 +- docs/tutorial/align_range.md | 2 +- docs/tutorial/animation_control_keyframes.md | 2 +- docs/tutorial/animation_options.md | 2 +- docs/tutorial/assets/setup/config_a | 5 ---- docs/tutorial/assets/setup/config_a.md | 5 ++++ docs/tutorial/assets/setup/config_b | 15 ------------ docs/tutorial/assets/setup/config_b.md | 15 ++++++++++++ docs/tutorial/assets/setup/config_c | 21 ----------------- docs/tutorial/assets/setup/config_c.md | 21 +++++++++++++++++ docs/tutorial/assets/setup/init | 23 ------------------- docs/tutorial/assets/setup/init.md | 22 ++++++++++++++++++ docs/tutorial/assets/setup/setup_a | 4 ---- docs/tutorial/assets/setup/setup_a.md | 4 ++++ docs/tutorial/assets/setup/setup_b | 4 ---- docs/tutorial/assets/setup/setup_b.md | 4 ++++ docs/tutorial/assets/setup/setup_c | 4 ---- docs/tutorial/assets/setup/setup_c.md | 4 ++++ docs/tutorial/axes_title_tooltip.md | 2 +- docs/tutorial/changing_dimensions.md | 2 +- docs/tutorial/channels_legend.md | 2 +- docs/tutorial/chart_layout.md | 2 +- docs/tutorial/chart_presets.md | 2 +- docs/tutorial/color_palette_fonts.md | 2 +- docs/tutorial/events.md | 2 +- docs/tutorial/filter_add_new_records.md | 2 +- docs/tutorial/geometry.md | 2 +- docs/tutorial/group_stack.md | 2 +- docs/tutorial/orientation_split_polar.md | 2 +- docs/tutorial/shorthands_store.md | 2 +- docs/tutorial/sorting.md | 2 +- .../without_coordinates_noop_channel.md | 2 +- 32 files changed, 93 insertions(+), 94 deletions(-) delete mode 100644 docs/tutorial/assets/setup/config_a create mode 100644 docs/tutorial/assets/setup/config_a.md delete mode 100644 docs/tutorial/assets/setup/config_b create mode 100644 docs/tutorial/assets/setup/config_b.md delete mode 100644 docs/tutorial/assets/setup/config_c create mode 100644 docs/tutorial/assets/setup/config_c.md delete mode 100644 docs/tutorial/assets/setup/init create mode 100644 docs/tutorial/assets/setup/init.md delete mode 100644 docs/tutorial/assets/setup/setup_a create mode 100644 docs/tutorial/assets/setup/setup_a.md delete mode 100644 docs/tutorial/assets/setup/setup_b create mode 100644 docs/tutorial/assets/setup/setup_b.md delete mode 100644 docs/tutorial/assets/setup/setup_c create mode 100644 docs/tutorial/assets/setup/setup_c.md diff --git a/docs/tutorial/aggregating_data.md b/docs/tutorial/aggregating_data.md index 6b51d8242..d44049cde 100644 --- a/docs/tutorial/aggregating_data.md +++ b/docs/tutorial/aggregating_data.md @@ -13,7 +13,7 @@ within `Genres`.
-{% include-markdown "tutorial/assets/setup/setup_a" %} +{% include-markdown "tutorial/assets/setup/setup_a.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/align_range.md b/docs/tutorial/align_range.md index 582a4c2ab..129703a93 100644 --- a/docs/tutorial/align_range.md +++ b/docs/tutorial/align_range.md @@ -21,7 +21,7 @@ whereas on a bar chart, horizontally.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} Change align and configures the y axis labels to disappear during the animation. diff --git a/docs/tutorial/animation_control_keyframes.md b/docs/tutorial/animation_control_keyframes.md index e8e260707..83f2aaa39 100644 --- a/docs/tutorial/animation_control_keyframes.md +++ b/docs/tutorial/animation_control_keyframes.md @@ -11,7 +11,7 @@ In this step, we seek forward to `50%` of progress after the animation starts.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/animation_options.md b/docs/tutorial/animation_options.md index ed1dca744..de8150317 100644 --- a/docs/tutorial/animation_options.md +++ b/docs/tutorial/animation_options.md @@ -14,7 +14,7 @@ the default animation options.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/assets/setup/config_a b/docs/tutorial/assets/setup/config_a deleted file mode 100644 index 92736df42..000000000 --- a/docs/tutorial/assets/setup/config_a +++ /dev/null @@ -1,5 +0,0 @@ - ```javascript - chart.animate({ - data - }) - ``` diff --git a/docs/tutorial/assets/setup/config_a.md b/docs/tutorial/assets/setup/config_a.md new file mode 100644 index 000000000..e4014f41f --- /dev/null +++ b/docs/tutorial/assets/setup/config_a.md @@ -0,0 +1,5 @@ +```javascript +chart.animate({ + data +}) +``` diff --git a/docs/tutorial/assets/setup/config_b b/docs/tutorial/assets/setup/config_b deleted file mode 100644 index f25642286..000000000 --- a/docs/tutorial/assets/setup/config_b +++ /dev/null @@ -1,15 +0,0 @@ - ```javascript - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity'] - }, - x: { - set: ['Genres'] - }, - }, - } - }) - ``` diff --git a/docs/tutorial/assets/setup/config_b.md b/docs/tutorial/assets/setup/config_b.md new file mode 100644 index 000000000..a3ab00898 --- /dev/null +++ b/docs/tutorial/assets/setup/config_b.md @@ -0,0 +1,15 @@ +```javascript +chart.animate({ + data: data, + config: { + channels: { + y: { + set: ['Popularity'] + }, + x: { + set: ['Genres'] + }, + }, + } +}) +``` diff --git a/docs/tutorial/assets/setup/config_c b/docs/tutorial/assets/setup/config_c deleted file mode 100644 index 6b7bc0afa..000000000 --- a/docs/tutorial/assets/setup/config_c +++ /dev/null @@ -1,21 +0,0 @@ - ```javascript - chart.animate({ - data: data, - config: { - channels: { - y: { - set: ['Popularity', 'Kinds'] - }, - x: { - set: ['Genres'] - }, - color: { - set: ['Kinds'] - }, - label: { - set: ['Popularity'] - }, - }, - } - }) - ``` diff --git a/docs/tutorial/assets/setup/config_c.md b/docs/tutorial/assets/setup/config_c.md new file mode 100644 index 000000000..349e4042f --- /dev/null +++ b/docs/tutorial/assets/setup/config_c.md @@ -0,0 +1,21 @@ +```javascript +chart.animate({ + data: data, + config: { + channels: { + y: { + set: ['Popularity', 'Kinds'] + }, + x: { + set: ['Genres'] + }, + color: { + set: ['Kinds'] + }, + label: { + set: ['Popularity'] + }, + }, + } +}) +``` diff --git a/docs/tutorial/assets/setup/init b/docs/tutorial/assets/setup/init deleted file mode 100644 index 6dc51e1c9..000000000 --- a/docs/tutorial/assets/setup/init +++ /dev/null @@ -1,23 +0,0 @@ - In `HTML`, create a placeholder element that will contain the rendered - chart. - - ```html - - -
-
- - - - ``` - - In `JavaScript`, initialize and configure the chart: - - ```javascript - import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@xLIB_MINOR_VERSIONx/dist/vizzu.min.js' - import data from 'https://lib.vizzuhq.com/xLIB_MINOR_VERSIONx/assets/data/music_data.js' - - let chart = new Vizzu('myVizzu') - - await chart.initializing - ``` \ No newline at end of file diff --git a/docs/tutorial/assets/setup/init.md b/docs/tutorial/assets/setup/init.md new file mode 100644 index 000000000..280620410 --- /dev/null +++ b/docs/tutorial/assets/setup/init.md @@ -0,0 +1,22 @@ +In `HTML`, create a placeholder element that will contain the rendered chart. + +```html + + +
+
+ + + +``` + +In `JavaScript`, initialize and configure the chart: + +```javascript +import Vizzu from 'https://cdn.jsdelivr.net/npm/vizzu@xLIB_MINOR_VERSIONx/dist/vizzu.min.js' +import data from 'https://lib.vizzuhq.com/xLIB_MINOR_VERSIONx/assets/data/music_data.js' + +let chart = new Vizzu('myVizzu') + +await chart.initializing +``` diff --git a/docs/tutorial/assets/setup/setup_a b/docs/tutorial/assets/setup/setup_a deleted file mode 100644 index 5b610c86c..000000000 --- a/docs/tutorial/assets/setup/setup_a +++ /dev/null @@ -1,4 +0,0 @@ -??? info "Info - How to setup Vizzu" - {% include-markdown "tutorial/assets/setup/init" %} - - {% include-markdown "tutorial/assets/setup/config_a" %} diff --git a/docs/tutorial/assets/setup/setup_a.md b/docs/tutorial/assets/setup/setup_a.md new file mode 100644 index 000000000..908a429a8 --- /dev/null +++ b/docs/tutorial/assets/setup/setup_a.md @@ -0,0 +1,4 @@ +??? info "Info - How to setup Vizzu" + {% include-markdown "tutorial/assets/setup/init.md" %} + + {% include-markdown "tutorial/assets/setup/config_a.md" %} diff --git a/docs/tutorial/assets/setup/setup_b b/docs/tutorial/assets/setup/setup_b deleted file mode 100644 index 410eb6fcc..000000000 --- a/docs/tutorial/assets/setup/setup_b +++ /dev/null @@ -1,4 +0,0 @@ -??? info "Info - How to setup Vizzu" - {% include-markdown "tutorial/assets/setup/init" %} - - {% include-markdown "tutorial/assets/setup/config_b" %} diff --git a/docs/tutorial/assets/setup/setup_b.md b/docs/tutorial/assets/setup/setup_b.md new file mode 100644 index 000000000..87e80d7b5 --- /dev/null +++ b/docs/tutorial/assets/setup/setup_b.md @@ -0,0 +1,4 @@ +??? info "Info - How to setup Vizzu" + {% include-markdown "tutorial/assets/setup/init.md" %} + + {% include-markdown "tutorial/assets/setup/config_b.md" %} diff --git a/docs/tutorial/assets/setup/setup_c b/docs/tutorial/assets/setup/setup_c deleted file mode 100644 index a688d66dc..000000000 --- a/docs/tutorial/assets/setup/setup_c +++ /dev/null @@ -1,4 +0,0 @@ -??? info "Info - How to setup Vizzu" - {% include-markdown "tutorial/assets/setup/init" %} - - {% include-markdown "tutorial/assets/setup/config_c" %} diff --git a/docs/tutorial/assets/setup/setup_c.md b/docs/tutorial/assets/setup/setup_c.md new file mode 100644 index 000000000..1fcf82a3c --- /dev/null +++ b/docs/tutorial/assets/setup/setup_c.md @@ -0,0 +1,4 @@ +??? info "Info - How to setup Vizzu" + {% include-markdown "tutorial/assets/setup/init.md" %} + + {% include-markdown "tutorial/assets/setup/config_c.md" %} diff --git a/docs/tutorial/axes_title_tooltip.md b/docs/tutorial/axes_title_tooltip.md index 818fa63a7..ef8a71b61 100644 --- a/docs/tutorial/axes_title_tooltip.md +++ b/docs/tutorial/axes_title_tooltip.md @@ -15,7 +15,7 @@ the measure (`Popularity`) to the y-axis using the set property.
-{% include-markdown "tutorial/assets/setup/setup_a" %} +{% include-markdown "tutorial/assets/setup/setup_a.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/changing_dimensions.md b/docs/tutorial/changing_dimensions.md index 5652bce4d..cb37c7a5f 100644 --- a/docs/tutorial/changing_dimensions.md +++ b/docs/tutorial/changing_dimensions.md @@ -15,7 +15,7 @@ elements.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/channels_legend.md b/docs/tutorial/channels_legend.md index c00673b70..46cf603ac 100644 --- a/docs/tutorial/channels_legend.md +++ b/docs/tutorial/channels_legend.md @@ -19,7 +19,7 @@ them differently with the `style` object introduced in the
-{% include-markdown "tutorial/assets/setup/setup_b" %} +{% include-markdown "tutorial/assets/setup/setup_b.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/chart_layout.md b/docs/tutorial/chart_layout.md index d0a074e76..5aa4a3458 100644 --- a/docs/tutorial/chart_layout.md +++ b/docs/tutorial/chart_layout.md @@ -18,7 +18,7 @@ are aligned.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/chart_presets.md b/docs/tutorial/chart_presets.md index 814696ab5..ce69ee364 100644 --- a/docs/tutorial/chart_presets.md +++ b/docs/tutorial/chart_presets.md @@ -19,7 +19,7 @@ stacked bubble chart using its preset.
-{% include-markdown "tutorial/assets/setup/setup_a" %} +{% include-markdown "tutorial/assets/setup/setup_a.md" %} ```javascript chart.animate(Vizzu.presets.stackedBubble({ diff --git a/docs/tutorial/color_palette_fonts.md b/docs/tutorial/color_palette_fonts.md index a6a622c65..3003581a6 100644 --- a/docs/tutorial/color_palette_fonts.md +++ b/docs/tutorial/color_palette_fonts.md @@ -21,7 +21,7 @@ you should add
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/events.md b/docs/tutorial/events.md index 5ce8eea2f..30a257d45 100644 --- a/docs/tutorial/events.md +++ b/docs/tutorial/events.md @@ -14,7 +14,7 @@ block with information about the clicked chart element.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript function clickHandler(event) { diff --git a/docs/tutorial/filter_add_new_records.md b/docs/tutorial/filter_add_new_records.md index 51ead54d2..2c292911f 100644 --- a/docs/tutorial/filter_add_new_records.md +++ b/docs/tutorial/filter_add_new_records.md @@ -15,7 +15,7 @@ from the chart.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/geometry.md b/docs/tutorial/geometry.md index 22c725ed3..abcecd493 100644 --- a/docs/tutorial/geometry.md +++ b/docs/tutorial/geometry.md @@ -12,7 +12,7 @@ Switching the geometry to area.
-{% include-markdown "tutorial/assets/setup/setup_b" %} +{% include-markdown "tutorial/assets/setup/setup_b.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/group_stack.md b/docs/tutorial/group_stack.md index 7f4599a9b..cc654a153 100644 --- a/docs/tutorial/group_stack.md +++ b/docs/tutorial/group_stack.md @@ -14,7 +14,7 @@ we also add the same dimension to the color channel.
-{% include-markdown "tutorial/assets/setup/setup_b" %} +{% include-markdown "tutorial/assets/setup/setup_b.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/orientation_split_polar.md b/docs/tutorial/orientation_split_polar.md index ba415ad94..f76813580 100644 --- a/docs/tutorial/orientation_split_polar.md +++ b/docs/tutorial/orientation_split_polar.md @@ -14,7 +14,7 @@ only use temporarily.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/shorthands_store.md b/docs/tutorial/shorthands_store.md index 498c69c79..4981e6bbd 100644 --- a/docs/tutorial/shorthands_store.md +++ b/docs/tutorial/shorthands_store.md @@ -17,7 +17,7 @@ animate method, you can simplify your code by using only the object of the
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/sorting.md b/docs/tutorial/sorting.md index b73209999..4a9ea9b47 100644 --- a/docs/tutorial/sorting.md +++ b/docs/tutorial/sorting.md @@ -13,7 +13,7 @@ ascending order.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ diff --git a/docs/tutorial/without_coordinates_noop_channel.md b/docs/tutorial/without_coordinates_noop_channel.md index 7dcb0f2c5..ef3a2ef1a 100644 --- a/docs/tutorial/without_coordinates_noop_channel.md +++ b/docs/tutorial/without_coordinates_noop_channel.md @@ -14,7 +14,7 @@ still on the `color` channel.
-{% include-markdown "tutorial/assets/setup/setup_c" %} +{% include-markdown "tutorial/assets/setup/setup_c.md" %} ```javascript chart.animate({ From c2d1717eb2abeb62037453409b36d12288231a81 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 29 Nov 2023 09:48:48 +0100 Subject: [PATCH 072/180] Removed old versioning from tutorial --- docs/installation.md | 2 +- tools/docs/pages/gen_pages.py | 27 --------------------------- 2 files changed, 1 insertion(+), 28 deletions(-) diff --git a/docs/installation.md b/docs/installation.md index a3a88e021..7ad0dcb7c 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -13,7 +13,7 @@ Or use it from [CDN](https://www.jsdelivr.com/package/npm/vizzu): diff --git a/tools/docs/pages/gen_pages.py b/tools/docs/pages/gen_pages.py index 4af3caa8e..ac9e1ae29 100644 --- a/tools/docs/pages/gen_pages.py +++ b/tools/docs/pages/gen_pages.py @@ -11,10 +11,8 @@ REPO_PATH = Path(__file__).parent / ".." / ".." / ".." TOOLS_PATH = REPO_PATH / "tools" MKDOCS_PATH = TOOLS_PATH / "docs" -VIZZU_LIB_PATH = REPO_PATH / "vizzu-lib" sys.path.insert(0, str(TOOLS_PATH / "modules")) -sys.path.insert(0, str(TOOLS_PATH / "ci")) sys.path.insert(0, str(MKDOCS_PATH)) from chdir import ( # pylint: disable=import-error, wrong-import-position, wrong-import-order @@ -23,9 +21,6 @@ from vizzu import ( # pylint: disable=import-error, wrong-import-position, wrong-import-order Vizzu, ) -from markdown_format import ( # pylint: disable=import-error, wrong-import-position, wrong-import-order - Markdown, -) from config import ( # pylint: disable=import-error, wrong-import-position, wrong-import-order MkdocsConfig, ) @@ -112,32 +107,10 @@ def generate(src: Path, dst: str, pos: str, site: str, keep: bool = False) -> No f_dst.write(content) -class Docs: - # pylint: disable=too-few-public-methods - - @staticmethod - def generate(skip: Optional[List[str]] = None) -> None: - docs_path = REPO_PATH / "docs" - for path in list(docs_path.rglob("*.md")) + list(docs_path.rglob("*.js")): - if skip and path.name in skip: - continue - with open(path, "rt", encoding="utf8") as f_src: - dst = path.relative_to(docs_path) - if path.suffix == ".md": - content = f_src.read() - content = Vizzu.set_version(content) - content = Markdown.format(content) - mkdocs_gen_files.set_edit_path(dst, dst) - with mkdocs_gen_files.open(dst, "w") as f_dst: - f_dst.write(content) - - def main() -> None: with chdir(REPO_PATH): config = MkdocsConfig.load(MKDOCS_PATH / "mkdocs.yml") - Docs.generate() - IndexPages.generate( nav_item=config["nav"], skip=["examples/index.md", "examples/analytical_operations/index.md"], From 6e534151e24f703d0fb2f21be00a5a1a7ec4096b Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 14:03:36 +0100 Subject: [PATCH 073/180] Minor modifications --- src/chart/main/chart.cpp | 3 ++ src/chart/main/style.cpp | 38 ++++++++++++++++- src/chart/main/style.h | 1 + src/chart/rendering/drawlabel.cpp | 4 +- src/chart/rendering/orientedlabel.cpp | 2 +- .../rendering/painter/coordinatesystem.cpp | 15 ------- .../rendering/painter/coordinatesystem.h | 3 -- src/chart/rendering/painter/drawpolygon.h | 4 +- src/chart/rendering/palettes.cpp | 42 ------------------- src/chart/rendering/palettes.h | 17 -------- src/chart/speclayout/treemap.h | 3 +- 11 files changed, 45 insertions(+), 87 deletions(-) delete mode 100644 src/chart/rendering/palettes.cpp delete mode 100644 src/chart/rendering/palettes.h diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index 75f118bb4..ccff4dd6f 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -176,6 +176,9 @@ void Chart::draw(Gfx::ICanvas &canvas) renderedChart = std::move(rendered); } + else { + renderedChart = {}; + } auto logoRect = getLogoBoundary(); if (auto logoElement = std::make_unique(); diff --git a/src/chart/main/style.cpp b/src/chart/main/style.cpp index 497a4cac1..373ea21ce 100644 --- a/src/chart/main/style.cpp +++ b/src/chart/main/style.cpp @@ -1,7 +1,6 @@ #include "style.h" #include "base/refl/auto_struct.h" -#include "chart/rendering/palettes.h" namespace Vizzu::Styles { @@ -16,6 +15,41 @@ const Font &Chart::getDefaultFont() return instance; } +const Gfx::ColorPalette &Chart::getDefaultColorPalette() +{ + typedef Gfx::Color C; + static const Gfx::ColorPalette palette{ + C::RGB(0x4171cd), + C::RGB(0x03ae71), + C::RGB(0xf4941b), + C::RGB(0xf4c204), + C::RGB(0xd49664), + C::RGB(0xf25456), + C::RGB(0x9e67ab), + C::RGBA(188, 166, 4), + C::RGBA(132, 110, 28), + C::RGBA(252, 118, 60), + C::RGBA(180, 98, 172), + C::RGBA(244, 146, 252), + C::RGBA(188, 74, 148), + C::RGBA(156, 126, 244), + C::RGBA(156, 82, 180), + C::RGBA(108, 162, 252), + C::RGBA(92, 110, 188), + C::RGBA(124, 134, 140), + C::RGBA(172, 150, 140), + C::RGBA(76, 116, 80), + C::RGBA(172, 122, 76), + C::RGBA(124, 174, 84), + C::RGBA(76, 116, 80), + C::RGBA(156, 26, 108), + C::RGBA(172, 62, 148), + C::RGBA(180, 18, 4), + }; + + return palette; +} + Chart Chart::def() { // clang-format off @@ -85,7 +119,7 @@ Chart Chart::def() Gfx::Color::RGB(0xf3f239) } }), - .colorPalette = ::Anim::Interpolated(Draw::Palettes::Default()), + .colorPalette = ::Anim::Interpolated(getDefaultColorPalette()), .minLightness = -0.4, .maxLightness = 0.4, .lineMinWidth = 0.001, diff --git a/src/chart/main/style.h b/src/chart/main/style.h index e28348d8f..34ae46c63 100644 --- a/src/chart/main/style.h +++ b/src/chart/main/style.h @@ -343,6 +343,7 @@ struct ChartParams struct Chart : Padding, Box, Font, ChartParams { static const Font &getDefaultFont(); + static const Gfx::ColorPalette &getDefaultColorPalette(); static Chart def(); void setup(); diff --git a/src/chart/rendering/drawlabel.cpp b/src/chart/rendering/drawlabel.cpp index b91d9a4c8..f2a26250b 100644 --- a/src/chart/rendering/drawlabel.cpp +++ b/src/chart/rendering/drawlabel.cpp @@ -51,9 +51,7 @@ DrawLabel::DrawLabel(const DrawingContext &context, trRect.size = textRect.size; if (this->onDraw->invoke( - Events::Events::OnTextDrawEvent(*eventTarget, - trRect, - text))) { + Events::OnTextDrawEvent(*eventTarget, trRect, text))) { canvas.transform(transform); canvas.text(Geom::Rect(Geom::Point(), textRect.size), text); diff --git a/src/chart/rendering/orientedlabel.cpp b/src/chart/rendering/orientedlabel.cpp index a445b7d3e..a5dc0383b 100644 --- a/src/chart/rendering/orientedlabel.cpp +++ b/src/chart/rendering/orientedlabel.cpp @@ -99,7 +99,7 @@ void OrientedLabelRenderer::render(const OrientedLabel &label, canvas.save(); canvas.setTextColor(textColor); - Events::Events::OnTextDrawEvent eventObj(*eventTarget, + Events::OnTextDrawEvent eventObj(*eventTarget, label.rect, label.text); diff --git a/src/chart/rendering/painter/coordinatesystem.cpp b/src/chart/rendering/painter/coordinatesystem.cpp index 60466dd1c..0c7ffa8bf 100644 --- a/src/chart/rendering/painter/coordinatesystem.cpp +++ b/src/chart/rendering/painter/coordinatesystem.cpp @@ -89,16 +89,6 @@ Geom::Point PolarDescartesTransform::getOriginal( return {0.5 - polar.y / usedAngle, (polar.x - radius) / mapped.y}; } -Math::FuzzyBool PolarDescartesTransform::getPolar() const -{ - return polar; -} - -bool PolarDescartesTransform::atEndState() const -{ - return polar == false || polar == true; -} - Geom::Size PolarDescartesTransform::mappedSize() const { return {1.0, (2.0 - static_cast(polar)) / 2.0}; @@ -181,11 +171,6 @@ Geom::Point CompoundTransform::getOriginal(const Geom::Point &p) const Geom::Rect CompoundTransform::getRect() const { return rect; } -Geom::Point CompoundTransform::justRotate(const Geom::Point &p) const -{ - return rotate(p, true, Geom::Point()); -} - Geom::Point CompoundTransform::rotate(const Geom::Point &point, bool invert, const Geom::Point ¢er) const diff --git a/src/chart/rendering/painter/coordinatesystem.h b/src/chart/rendering/painter/coordinatesystem.h index 56432da0d..9114c6a6f 100644 --- a/src/chart/rendering/painter/coordinatesystem.h +++ b/src/chart/rendering/painter/coordinatesystem.h @@ -19,8 +19,6 @@ class PolarDescartesTransform [[nodiscard]] double horConvert(double length) const; [[nodiscard]] double verConvert(double length) const; [[nodiscard]] Geom::Point getOriginal(const Geom::Point &p) const; - [[nodiscard]] Math::FuzzyBool getPolar() const; - [[nodiscard]] bool atEndState() const; protected: bool zoomOut{}; @@ -45,7 +43,6 @@ class CompoundTransform : public PolarDescartesTransform [[nodiscard]] Geom::Point getOriginal(const Geom::Point &p) const; [[nodiscard]] Geom::Rect getRect() const; [[nodiscard]] double getAngle() const; - [[nodiscard]] Geom::Point justRotate(const Geom::Point &p) const; private: Geom::Rect rect; diff --git a/src/chart/rendering/painter/drawpolygon.h b/src/chart/rendering/painter/drawpolygon.h index 13ce6f122..4fe1fea2a 100644 --- a/src/chart/rendering/painter/drawpolygon.h +++ b/src/chart/rendering/painter/drawpolygon.h @@ -1,5 +1,5 @@ -#ifndef DRAW_H -#define DRAW_H +#ifndef DRAWPOLYGON_H +#define DRAWPOLYGON_H #include #include diff --git a/src/chart/rendering/palettes.cpp b/src/chart/rendering/palettes.cpp deleted file mode 100644 index ea4738ef7..000000000 --- a/src/chart/rendering/palettes.cpp +++ /dev/null @@ -1,42 +0,0 @@ - -#include "palettes.h" - -namespace Vizzu::Draw -{ - -const Gfx::ColorPalette &Palettes::Default() -{ - typedef Gfx::Color C; - static const Gfx::ColorPalette palette{ - C::RGB(0x4171cd), - C::RGB(0x03ae71), - C::RGB(0xf4941b), - C::RGB(0xf4c204), - C::RGB(0xd49664), - C::RGB(0xf25456), - C::RGB(0x9e67ab), - C::RGBA(188, 166, 4), - C::RGBA(132, 110, 28), - C::RGBA(252, 118, 60), - C::RGBA(180, 98, 172), - C::RGBA(244, 146, 252), - C::RGBA(188, 74, 148), - C::RGBA(156, 126, 244), - C::RGBA(156, 82, 180), - C::RGBA(108, 162, 252), - C::RGBA(92, 110, 188), - C::RGBA(124, 134, 140), - C::RGBA(172, 150, 140), - C::RGBA(76, 116, 80), - C::RGBA(172, 122, 76), - C::RGBA(124, 174, 84), - C::RGBA(76, 116, 80), - C::RGBA(156, 26, 108), - C::RGBA(172, 62, 148), - C::RGBA(180, 18, 4), - }; - - return palette; -} - -} \ No newline at end of file diff --git a/src/chart/rendering/palettes.h b/src/chart/rendering/palettes.h deleted file mode 100644 index f8bf4aa88..000000000 --- a/src/chart/rendering/palettes.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef CHART_RENDERING_PALETTES_H -#define CHART_RENDERING_PALETTES_H - -#include "base/gfx/colorpalette.h" - -namespace Vizzu::Draw -{ - -class Palettes -{ -public: - static const Gfx::ColorPalette &Default(); -}; - -} - -#endif diff --git a/src/chart/speclayout/treemap.h b/src/chart/speclayout/treemap.h index 9debec8f9..c3b861a01 100644 --- a/src/chart/speclayout/treemap.h +++ b/src/chart/speclayout/treemap.h @@ -71,8 +71,7 @@ void TreeMap::setupVector(std::vector &items, size_t subCnt = 0; for (const auto &item : level.second) { auto &c = subChart.markers[subCnt]; - Geom::Rect rect = c.rect(); - rect = rect.positive(); + Geom::Rect rect = c.rect().positive(); items[item.second].position = rect.topRight(); items[item.second].size = rect.size; ++subCnt; From 5fec72f0c578d7ce082262ee929ae51802cef21f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 15:06:12 +0100 Subject: [PATCH 074/180] Move logo to layout + move drawchart --- src/chart/main/chart.cpp | 144 +++--------------------- src/chart/main/chart.h | 13 --- src/chart/main/layout.cpp | 44 +++++--- src/chart/main/layout.h | 6 +- src/chart/rendering/drawaxes.cpp | 17 +-- src/chart/rendering/drawchart.cpp | 97 ++++++++++++++++ src/chart/rendering/drawchart.h | 24 ++++ src/chart/rendering/drawguides.cpp | 6 +- src/chart/rendering/drawingcontext.h | 11 +- src/chart/rendering/drawinterlacing.cpp | 9 +- src/chart/rendering/drawlegend.cpp | 12 +- src/chart/rendering/draworientedlabel.h | 0 src/chart/rendering/drawplot.cpp | 14 +-- src/chart/rendering/markerrenderer.cpp | 70 ++++++------ src/chart/ui/chart.cpp | 4 +- 15 files changed, 248 insertions(+), 223 deletions(-) create mode 100644 src/chart/rendering/drawchart.cpp create mode 100644 src/chart/rendering/drawchart.h delete mode 100644 src/chart/rendering/draworientedlabel.h diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index ccff4dd6f..e8ea7418e 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -1,11 +1,11 @@ #include "chart.h" #include "chart/rendering/drawbackground.h" +#include "chart/rendering/drawchart.h" #include "chart/rendering/drawlabel.h" #include "chart/rendering/drawlegend.h" #include "chart/rendering/drawmarkerinfo.h" #include "chart/rendering/drawplot.h" -#include "chart/rendering/logo.h" #include "data/datacube/datacube.h" namespace Vizzu @@ -46,10 +46,16 @@ void Chart::setBoundRect(const Geom::Rect &rect, Gfx::ICanvas &info) { if (actPlot) { actPlot->getStyle().setup(); - layout.setBoundary(rect, *actPlot, info); + layout.setBoundary(rect, + actPlot->getStyle(), + actPlot->getOptions(), + info); } else { - layout.setBoundary(rect, info); + layout.setBoundary(rect, + stylesheet.getDefaultParams(), + nullptr, + info); } } @@ -96,131 +102,17 @@ Gen::OptionsSetter Chart::getSetter() return setter; } -template -void Chart::drawHeading(const Draw::DrawingContext &context, - const Gen::Options::Heading &option, - const Styles::Label &style, - const Geom::Rect &layout, - const Util::EventDispatcher::event_ptr &event) -{ - option.visit( - [&](int, const auto &weighted) - { - if (weighted.value.has_value()) { - Draw::DrawLabel(context, - Geom::TransformedRect::fromRect(layout), - *weighted.value, - style, - event, - std::make_unique(*weighted.value), - Draw::DrawLabel::Options(true, - std::max(weighted.weight * 2 - 1, 0.0))); - } - }); -} - void Chart::draw(Gfx::ICanvas &canvas) { - if (actPlot - && (!events.draw.begin - || events.draw.begin->invoke( - Util::EventDispatcher::Params{}))) { - - auto coordSys = getCoordSystem(); - - Draw::RenderedChart rendered(coordSys, actPlot); - - Draw::DrawingContext context(canvas, - layout, - events, - *actPlot, - coordSys, - rendered); - - Draw::DrawBackground(context, - layout.boundary.outline(Geom::Size::Square(1)), - actPlot->getStyle(), - events.draw.background, - std::make_unique()); - - Draw::DrawPlot{context}; - - actPlot->getOptions()->legend.visit( - [&](int, const auto &legend) - { - if (legend.value) - Draw::DrawLegend(context, - Gen::Options::toChannel(*legend.value), - legend.weight); - }); - - drawHeading(context, - actPlot->getOptions()->title, - actPlot->getStyle().title, - layout.title, - events.draw.title); - - drawHeading(context, - actPlot->getOptions()->subtitle, - actPlot->getStyle().subtitle, - layout.subtitle, - events.draw.subtitle); - - drawHeading(context, - actPlot->getOptions()->caption, - actPlot->getStyle().caption, - layout.caption, - events.draw.caption); - - Draw::DrawMarkerInfo(layout, canvas, *actPlot); - - renderedChart = std::move(rendered); - } - else { - renderedChart = {}; - } - - auto logoRect = getLogoBoundary(); - if (auto logoElement = std::make_unique(); - events.draw.logo->invoke(Events::OnRectDrawEvent(*logoElement, - {logoRect, false}))) { - auto filter = *(actPlot ? actPlot->getStyle() - : stylesheet.getDefaultParams()) - .logo.filter; - - Draw::Logo(canvas).draw(logoRect.pos, - logoRect.width(), - filter); - - renderedChart.emplace( - Geom::TransformedRect::fromRect(logoRect), - std::move(logoElement)); - } - - if (events.draw.complete) - events.draw.complete->invoke(Util::EventDispatcher::Params{}); -} - -Geom::Rect Chart::getLogoBoundary() const -{ - const auto &logoStyle = (actPlot ? actPlot->getStyle() - : stylesheet.getDefaultParams()) - .logo; - - auto logoWidth = - logoStyle.width->get(layout.boundary.size.minSize(), - Styles::Sheet::baseFontSize(layout.boundary.size, false)); - - auto logoHeight = Draw::Logo::height(logoWidth); - - auto logoPad = - logoStyle.toMargin(Geom::Size{logoWidth, logoHeight}, - Styles::Sheet::baseFontSize(layout.boundary.size, false)); - - return {layout.boundary.topRight() - - Geom::Point{logoPad.right + logoWidth, - logoPad.bottom + logoHeight}, - Geom::Size{logoWidth, logoHeight}}; + Draw::DrawChart{Draw::DrawingContext{canvas, + layout, + events, + actPlot, + actPlot ? actPlot->getStyle() + : stylesheet.getDefaultParams(), + getCoordSystem(), + renderedChart = {}}} + .draw(); } Gen::PlotPtr Chart::plot(const Gen::PlotOptionsPtr &options) diff --git a/src/chart/main/chart.h b/src/chart/main/chart.h index e5ba89080..364fc7930 100644 --- a/src/chart/main/chart.h +++ b/src/chart/main/chart.h @@ -22,11 +22,6 @@ namespace Vizzu { -namespace Draw -{ -class DrawingContext; -} - class Chart { public: @@ -84,7 +79,6 @@ class Chart void animate(const OnComplete &onComplete = OnComplete()); void setKeyframe(); void setAnimation(const Anim::AnimationPtr &animation); - [[nodiscard]] Geom::Rect getLogoBoundary() const; private: Layout layout; @@ -103,13 +97,6 @@ class Chart Events events; Gen::PlotPtr plot(const Gen::PlotOptionsPtr &options); - - template - static void drawHeading(const Draw::DrawingContext &context, - const Gen::Options::Heading &option, - const Styles::Label &style, - const Geom::Rect &layout, - const Util::EventDispatcher::event_ptr &event); }; } diff --git a/src/chart/main/layout.cpp b/src/chart/main/layout.cpp index 747a7daf8..5c4e5dd3f 100644 --- a/src/chart/main/layout.cpp +++ b/src/chart/main/layout.cpp @@ -1,14 +1,12 @@ #include "layout.h" #include "chart/rendering/drawlabel.h" +#include "chart/rendering/logo.h" -namespace Vizzu -{ +#include "stylesheet.h" -void Layout::setBoundary(const Geom::Rect &boundary, Gfx::ICanvas &) +namespace Vizzu { - this->boundary = boundary; -} template auto popRectArea(double height, @@ -30,25 +28,29 @@ auto popRectArea(double height, } void Layout::setBoundary(const Geom::Rect &boundary, - const Gen::Plot &plot, + const Styles::Chart &style, + const Gen::PlotOptionsPtr &options, Gfx::ICanvas &info) { - const auto &style = plot.getStyle(); - auto em = style.calculatedSize(); - this->boundary = boundary; + + setLogoBoundary(style.logo); + + if (!options) return; + + auto em = style.calculatedSize(); auto rect = style.contentRect(boundary, em); caption = popRectArea(Draw::DrawLabel::getHeight(style.caption, info), - plot.getOptions()->caption, + options->caption, rect, &Geom::Rect::popTop); caption.setBottom(rect.top()); caption.setTop(boundary.top()); title = popRectArea(Draw::DrawLabel::getHeight(style.title, info), - plot.getOptions()->title, + options->title, rect, &Geom::Rect::popBottom, &Geom::Rect::setBottom, @@ -56,14 +58,14 @@ void Layout::setBoundary(const Geom::Rect &boundary, subtitle = popRectArea(Draw::DrawLabel::getHeight(style.subtitle, info), - plot.getOptions()->subtitle, + options->subtitle, rect, &Geom::Rect::popBottom, &Geom::Rect::setBottom, rect.pos.y); legend = popRectArea(style.legend.computedWidth(rect.size.x, em), - plot.getOptions()->legend, + options->legend, rect, &Geom::Rect::popLeft, &Geom::Rect::setLeft, @@ -74,4 +76,20 @@ void Layout::setBoundary(const Geom::Rect &boundary, plotArea = style.plot.contentRect(rect, em); } +void Layout::setLogoBoundary(const Styles::Logo &logoStyle) +{ + auto logoWidth = logoStyle.width->get(boundary.size.minSize(), + Styles::Sheet::baseFontSize(boundary.size, false)); + + auto logoHeight = Draw::Logo::height(logoWidth); + + auto logoPad = + logoStyle.toMargin(Geom::Size{logoWidth, logoHeight}, + Styles::Sheet::baseFontSize(boundary.size, false)); + + logo = {boundary.topRight() + - Geom::Point{logoPad.right + logoWidth, + logoPad.bottom + logoHeight}, + Geom::Size{logoWidth, logoHeight}}; +} } \ No newline at end of file diff --git a/src/chart/main/layout.h b/src/chart/main/layout.h index 75a419355..9891b84ac 100644 --- a/src/chart/main/layout.h +++ b/src/chart/main/layout.h @@ -22,12 +22,14 @@ class Layout Geom::Rect plotArea; Geom::Rect xTitle; Geom::Rect yTitle; + Geom::Rect logo; void setBoundary(const Geom::Rect &boundary, - const Gen::Plot &plot, + const Styles::Chart &style, + const Gen::PlotOptionsPtr &options, Gfx::ICanvas &info); - void setBoundary(const Geom::Rect &boundary, Gfx::ICanvas &info); + void setLogoBoundary(const Styles::Logo &logoStyle); }; } diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index f7b4f4d95..ac2bc37c8 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -37,7 +37,7 @@ Geom::Line DrawAxes::getAxis(Gen::ChannelId axisIndex) const { auto horizontal = axisIndex == Gen::ChannelId::x; - auto offset = plot.measureAxises.other(axisIndex).origo(); + auto offset = plot->measureAxises.other(axisIndex).origo(); auto direction = Geom::Point::Ident(horizontal); @@ -54,7 +54,7 @@ void DrawAxes::drawAxis(Gen::ChannelId axisIndex) axisIndex == Gen::ChannelId::x); auto lineBaseColor = *rootStyle.plot.getAxis(axisIndex).color - * static_cast(plot.anyAxisSet); + * static_cast(plot->anyAxisSet); if (lineBaseColor.alpha <= 0) return; @@ -63,7 +63,7 @@ void DrawAxes::drawAxis(Gen::ChannelId axisIndex) if (!line.isPoint()) { auto lineColor = lineBaseColor - * static_cast(plot.guides.at(axisIndex).axis); + * static_cast(plot->guides.at(axisIndex).axis); canvas.save(); @@ -97,7 +97,7 @@ Geom::Point DrawAxes::getTitleBasePos(Gen::ChannelId axisIndex, case Pos::min_edge: break; case Pos::max_edge: orthogonal = 1.0; break; case Pos::axis: - orthogonal = plot.measureAxises.other(axisIndex).origo(); + orthogonal = plot->measureAxises.other(axisIndex).origo(); break; } @@ -158,7 +158,7 @@ Geom::Point DrawAxes::getTitleOffset(Gen::ChannelId axisIndex, void DrawAxes::drawTitle(Gen::ChannelId axisIndex) { - const auto &titleString = plot.commonAxises.at(axisIndex).title; + const auto &titleString = plot->commonAxises.at(axisIndex).title; const auto &titleStyle = rootStyle.plot.getAxis(axisIndex).title; @@ -259,8 +259,8 @@ void DrawAxes::drawDimensionLabels(bool horizontal) auto textColor = *labelStyle.color; if (textColor.alpha == 0.0) return; - auto origo = plot.measureAxises.origo(); - const auto &axises = plot.dimensionAxises; + auto origo = plot->measureAxises.origo(); + const auto &axises = plot->dimensionAxises; const auto &axis = axises.at(axisIndex); if (axis.enabled) { @@ -276,7 +276,8 @@ void DrawAxes::drawDimensionLabel(bool horizontal, const Geom::Point &origo, Gen::DimensionAxis::Values::const_iterator it) { - const auto &enabled = horizontal ? plot.guides.x : plot.guides.y; + const auto &enabled = + horizontal ? plot->guides.x : plot->guides.y; auto weight = it->second.weight * static_cast(enabled.labels); diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp new file mode 100644 index 000000000..717500dd5 --- /dev/null +++ b/src/chart/rendering/drawchart.cpp @@ -0,0 +1,97 @@ +#include "drawchart.h" + +#include "drawbackground.h" +#include "drawlabel.h" +#include "drawlegend.h" +#include "drawmarkerinfo.h" +#include "drawplot.h" +#include "logo.h" + +namespace Vizzu::Draw +{ +template +void DrawChart::drawHeading(const Gen::Options::Heading &option, + const Styles::Label &style, + const Geom::Rect &layout, + const Util::EventDispatcher::event_ptr &event) +{ + option.visit( + [&, this](int, const auto &weighted) + { + if (weighted.value.has_value()) { + DrawLabel(*this, + Geom::TransformedRect::fromRect(layout), + *weighted.value, + style, + event, + std::make_unique(*weighted.value), + DrawLabel::Options(true, + std::max(weighted.weight * 2 - 1, 0.0))); + } + }); +} + +void DrawChart::draw() +{ + if (plot + && (!rootEvents.draw.begin + || rootEvents.draw.begin->invoke( + Util::EventDispatcher::Params{}))) { + + DrawBackground(*this, + layout.boundary.outline(Geom::Size::Square(1)), + plot->getStyle(), + rootEvents.draw.background, + std::make_unique()); + + DrawPlot{*this}; + + plot->getOptions()->legend.visit( + [&, this](int, const auto &legend) + { + if (legend.value) + DrawLegend(*this, + Gen::Options::toChannel(*legend.value), + legend.weight); + }); + + drawHeading( + plot->getOptions()->title, + plot->getStyle().title, + layout.title, + rootEvents.draw.title); + + drawHeading( + plot->getOptions()->subtitle, + plot->getStyle().subtitle, + layout.subtitle, + rootEvents.draw.subtitle); + + drawHeading( + plot->getOptions()->caption, + plot->getStyle().caption, + layout.caption, + rootEvents.draw.caption); + + DrawMarkerInfo(layout, canvas, *plot); + } + + if (auto logoElement = std::make_unique(); + rootEvents.draw.logo->invoke( + Events::OnRectDrawEvent(*logoElement, + {layout.logoBoundary, false}))) { + + Logo(canvas).draw(layout.logoBoundary.pos, + layout.logoBoundary.width(), + *rootStyle.logo.filter); + + renderedChart.emplace( + Geom::TransformedRect::fromRect(layout.logoBoundary), + std::move(logoElement)); + } + + if (rootEvents.draw.complete) + rootEvents.draw.complete->invoke( + Util::EventDispatcher::Params{}); +} +} \ No newline at end of file diff --git a/src/chart/rendering/drawchart.h b/src/chart/rendering/drawchart.h new file mode 100644 index 000000000..c1059e436 --- /dev/null +++ b/src/chart/rendering/drawchart.h @@ -0,0 +1,24 @@ + +#ifndef VIZZU_DRAWCHART_H +#define VIZZU_DRAWCHART_H + +#include "drawingcontext.h" + +namespace Vizzu::Draw +{ + +class DrawChart : public DrawingContext +{ + template + void drawHeading(const Gen::Options::Heading &option, + const Styles::Label &style, + const Geom::Rect &layout, + const Util::EventDispatcher::event_ptr &event); + +public: + void draw(); +}; + +} + +#endif diff --git a/src/chart/rendering/drawguides.cpp b/src/chart/rendering/drawguides.cpp index 624bbdeb9..9495dc006 100644 --- a/src/chart/rendering/drawguides.cpp +++ b/src/chart/rendering/drawguides.cpp @@ -19,19 +19,19 @@ void DrawGuides::draw(bool horizontal) auto baseColor = *guideStyle.color; if (baseColor.alpha == 0) return; - const auto &axises = plot.dimensionAxises; + const auto &axises = plot->dimensionAxises; const auto &axis = axises.at(axisId); if (axis.enabled && *guideStyle.lineWidth > 0 && (static_cast( - plot.guides.at(axisId).dimensionGuides) + plot->guides.at(axisId).dimensionGuides) > 0)) { canvas.setLineWidth(*guideStyle.lineWidth); for (auto it = axis.begin(); it != axis.end(); ++it) { auto weight = it->second.weight; weight *= static_cast( - plot.guides.at(axisId).dimensionGuides); + plot->guides.at(axisId).dimensionGuides); if (weight == 0) continue; auto next = std::next(it); diff --git a/src/chart/rendering/drawingcontext.h b/src/chart/rendering/drawingcontext.h index 4f33ed2e3..4e2c9c0e3 100644 --- a/src/chart/rendering/drawingcontext.h +++ b/src/chart/rendering/drawingcontext.h @@ -20,15 +20,15 @@ class DrawingContext DrawingContext(Gfx::ICanvas &canvas, const Layout &layout, const Events &events, - const Gen::Plot &plot, + const std::shared_ptr &plot, + const Styles::Chart &styles, const CoordinateSystem &coordSys, RenderedChart &renderedChart) : plot(plot), coordSys(coordSys), canvas(canvas), painter(*static_cast(canvas.getPainter())), - options(*plot.getOptions()), - rootStyle(plot.getStyle()), + rootStyle(styles), rootEvents(events), layout(layout), renderedChart(renderedChart) @@ -36,15 +36,16 @@ class DrawingContext painter.setCoordSys(coordSys); } - const Gen::Plot &plot; + const std::shared_ptr &plot; const CoordinateSystem &coordSys; Gfx::ICanvas &canvas; Painter &painter; - const Gen::Options &options; const Styles::Chart &rootStyle; const Events &rootEvents; const Layout &layout; RenderedChart &renderedChart; + + const Gen::Options &getOptions() { return *plot->getOptions(); } }; } diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index 30c2a70fc..a0c862670 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -34,7 +34,7 @@ void DrawInterlacing::draw(bool horizontal, bool text) if (!text && interlacingColor.alpha <= 0.0) return; - const auto &axis = plot.measureAxises.at(axisIndex); + const auto &axis = plot->measureAxises.at(axisIndex); if (!axis.range.isReal()) return; @@ -94,16 +94,17 @@ void DrawInterlacing::draw( double rangeSize, bool text) { - const auto &enabled = horizontal ? plot.guides.y : plot.guides.x; + const auto &enabled = + horizontal ? plot->guides.y : plot->guides.x; auto axisIndex = horizontal ? Gen::ChannelId::y : Gen::ChannelId::x; const auto &axisStyle = rootStyle.plot.getAxis(axisIndex); - const auto &axis = plot.measureAxises.at(axisIndex); + const auto &axis = plot->measureAxises.at(axisIndex); - const auto origo = plot.measureAxises.origo(); + const auto origo = plot->measureAxises.origo(); if (static_cast(enabled.interlacings || enabled.axisSticks || enabled.labels) diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index 5d0e41075..ab177cc34 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -33,17 +33,17 @@ DrawLegend::DrawLegend(const DrawingContext &context, std::make_unique(channelType)); if (static_cast(type) - < std::size(plot.measureAxises.axises)) { + < std::size(plot->measureAxises.axises)) { canvas.save(); canvas.setClipRect(contentRect); - const auto measureAxis = plot.measureAxises.at(type); - const auto dimensionAxis = plot.dimensionAxises.at(type); + const auto measureAxis = plot->measureAxises.at(type); + const auto dimensionAxis = plot->dimensionAxises.at(type); const auto measureEnabled = measureAxis.enabled.calculate(); - drawTitle(plot.commonAxises.at(type).title, + drawTitle(plot->commonAxises.at(type).title, dimensionAxis.enabled ? 1.0 : measureEnabled); if (dimensionAxis.enabled) drawDimension(dimensionAxis); @@ -141,7 +141,7 @@ void DrawLegend::drawMarker(const Gfx::Color &color, canvas.setLineColor(color); canvas.setLineWidth(0); - auto radius = plot.getStyle().legend.marker.type->factor( + auto radius = rootStyle.legend.marker.type->factor( Styles::Legend::Marker::Type::circle) * rect.size.minSize() / 2.0; @@ -201,7 +201,7 @@ void DrawLegend::colorBar(const Geom::Rect &rect) canvas.save(); canvas.setBrushGradient(rect.leftSide(), - Gfx::ColorGradient{*plot.getStyle().plot.marker.colorGradient + Gfx::ColorGradient{*rootStyle.plot.marker.colorGradient * (weight * enabled)}); canvas.setLineColor(Gfx::Color::Transparent()); canvas.setLineWidth(0); diff --git a/src/chart/rendering/draworientedlabel.h b/src/chart/rendering/draworientedlabel.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/chart/rendering/drawplot.cpp b/src/chart/rendering/drawplot.cpp index 9656ab0f1..d9cec5acc 100644 --- a/src/chart/rendering/drawplot.cpp +++ b/src/chart/rendering/drawplot.cpp @@ -81,16 +81,16 @@ void DrawPlot::drawArea(bool clip) void DrawPlot::drawMarkerGuides() { - const auto &style = plot.getStyle().plot.marker.guides; + const auto &style = rootStyle.plot.marker.guides; if (!style.color->isTransparent() && *style.lineWidth > 0 - && static_cast(plot.anyAxisSet) > 0 - && plot.guides.hasAnyGuides()) { + && static_cast(plot->anyAxisSet) > 0 + && plot->guides.hasAnyGuides()) { canvas.setLineWidth(*style.lineWidth); - auto origo = plot.measureAxises.origo(); + auto origo = plot->measureAxises.origo(); - for (const auto &marker : plot.getMarkers()) + for (const auto &marker : plot->getMarkers()) MarkerRenderer(marker, *this).drawLines(style, origo); canvas.setLineWidth(0); @@ -99,13 +99,13 @@ void DrawPlot::drawMarkerGuides() void DrawPlot::drawMarkers() { - for (const auto &marker : plot.getMarkers()) + for (const auto &marker : plot->getMarkers()) MarkerRenderer(marker, *this).draw(); } void DrawPlot::drawMarkerLabels() { - for (const auto &marker : plot.getMarkers()) + for (const auto &marker : plot->getMarkers()) MarkerRenderer(marker, *this).drawLabel(); } diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index e44a633d4..cce6b96c8 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -25,20 +25,20 @@ void MarkerRenderer::drawLines(const Styles::Guide &style, if (static_cast(marker.enabled) == 0) return; auto blended = AbstractMarker::createInterpolated(marker, - options, - plot.getStyle(), + getOptions(), + plot->getStyle(), coordSys, - plot.getMarkers(), + plot->getMarkers(), 0); auto baseColor = - *style.color * static_cast(plot.anyAxisSet); + *style.color * static_cast(plot->anyAxisSet); if (static_cast(blended.enabled) > 0) { - if (static_cast(plot.guides.x.guidelines) > 0) { + if (static_cast(plot->guides.x.guidelines) > 0) { auto lineColor = baseColor - * static_cast(plot.guides.x.guidelines); + * static_cast(plot->guides.x.guidelines); canvas.setLineColor(lineColor); auto axisPoint = blended.center.xComp() + origo.yComp(); const Geom::Line line(axisPoint, blended.center); @@ -55,14 +55,14 @@ void MarkerRenderer::drawLines(const Styles::Guide &style, std::move(guideElement)); } } - if (static_cast(plot.guides.y.guidelines) > 0) { + if (static_cast(plot->guides.y.guidelines) > 0) { blended.center.x = Math::interpolate(blended.center.x, 1.0, - options.coordSystem.factor( + getOptions().coordSystem.factor( Gen::CoordSystem::polar)); auto lineColor = baseColor - * static_cast(plot.guides.y.guidelines); + * static_cast(plot->guides.y.guidelines); canvas.setLineColor(lineColor); auto axisPoint = blended.center.yComp() + origo.xComp(); const Geom::Line line(blended.center, axisPoint); @@ -86,12 +86,12 @@ void MarkerRenderer::draw() { if (!shouldDrawMarkerBody()) return; - if (options.geometry.contains(Gen::ShapeType::line) - && options.geometry.contains(Gen::ShapeType::circle)) { + if (getOptions().geometry.contains(Gen::ShapeType::line) + && getOptions().geometry.contains(Gen::ShapeType::circle)) { const CircleMarker circle(marker, coordSys, - options, - plot.getStyle()); + getOptions(), + rootStyle); draw(circle, 1, false); @@ -100,9 +100,9 @@ void MarkerRenderer::draw() { const ConnectingMarker line(marker, coordSys, - options, - plot.getStyle(), - plot.getMarkers(), + getOptions(), + rootStyle, + plot->getMarkers(), index, Gen::ShapeType::line); @@ -114,14 +114,14 @@ void MarkerRenderer::draw() [this](int index, ::Anim::Weighted value) { auto blended0 = AbstractMarker::createInterpolated(marker, - options, - plot.getStyle(), + getOptions(), + rootStyle, coordSys, - plot.getMarkers(), + plot->getMarkers(), index); - auto lineFactor = - options.geometry.factor(Gen::ShapeType::line); + auto lineFactor = getOptions().geometry.factor( + Gen::ShapeType::line); draw(blended0, value.weight * (1 - lineFactor) * (1 - lineFactor), @@ -130,17 +130,18 @@ void MarkerRenderer::draw() }; auto containsConnected = - options.geometry.contains(Gen::ShapeType::line) - || options.geometry.contains(Gen::ShapeType::area); + getOptions().geometry.contains(Gen::ShapeType::line) + || getOptions().geometry.contains(Gen::ShapeType::area); auto containsSingle = - options.geometry.contains(Gen::ShapeType::rectangle) - || options.geometry.contains(Gen::ShapeType::circle); + getOptions().geometry.contains(Gen::ShapeType::rectangle) + || getOptions().geometry.contains(Gen::ShapeType::circle); if (containsConnected) { if (containsSingle) { auto lineIndex = - Gen::isConnecting(options.geometry.get(0).value) + Gen::isConnecting( + getOptions().geometry.get(0).value) ? 0 : 1; @@ -159,10 +160,10 @@ void MarkerRenderer::drawLabel() if (static_cast(marker.enabled) == 0) return; auto blended = AbstractMarker::createInterpolated(marker, - options, - plot.getStyle(), + getOptions(), + plot->getStyle(), coordSys, - plot.getMarkers(), + plot->getMarkers(), 0); drawLabel(blended, 0); @@ -172,13 +173,14 @@ void MarkerRenderer::drawLabel() bool MarkerRenderer::shouldDrawMarkerBody() { bool enabled = static_cast(marker.enabled) > 0; - if (options.geometry.factor(Gen::ShapeType::area) + if (getOptions().geometry.factor( + Gen::ShapeType::area) != false) { const auto *prev0 = - ConnectingMarker::getPrev(marker, plot.getMarkers(), 0); + ConnectingMarker::getPrev(marker, plot->getMarkers(), 0); const auto *prev1 = - ConnectingMarker::getPrev(marker, plot.getMarkers(), 1); + ConnectingMarker::getPrev(marker, plot->getMarkers(), 1); if (prev0) enabled |= static_cast(prev0->enabled) > 0; if (prev1) enabled |= static_cast(prev1->enabled) > 0; @@ -386,7 +388,7 @@ std::pair MarkerRenderer::getColor( double highlight = 0.0; double anyHighlight = 0.0; - auto markerInfo = plot.getMarkersInfo(); + auto markerInfo = plot->getMarkersInfo(); for (auto &info : markerInfo) { auto allHighlight = 0.0; info.second.visit( @@ -430,7 +432,7 @@ Gfx::Color MarkerRenderer::getSelectedColor(bool label) return Math::interpolate(orig, interpolated, - static_cast(plot.anySelected)); + static_cast(plot->anySelected)); } } \ No newline at end of file diff --git a/src/chart/ui/chart.cpp b/src/chart/ui/chart.cpp index 897129857..3336ec10b 100644 --- a/src/chart/ui/chart.cpp +++ b/src/chart/ui/chart.cpp @@ -85,7 +85,7 @@ void ChartWidget::onPointerUp( if (onClick->invoke(PointerEvent(event.pointerId, event.pos, chart.getRenderedChart().find(event.pos)))) { - if (chart.getLogoBoundary().contains(event.pos)) { + if (chart.getLayout().logo.contains(event.pos)) { if (openUrl) openUrl( Main::siteUrl + std::string("?utm_source=logo")); @@ -143,7 +143,7 @@ void ChartWidget::updateCursor( const std::shared_ptr &canvas, const Geom::Point &pos) { - if (chart.getLogoBoundary().contains(pos)) + if (chart.getLayout().logo.contains(pos)) return setCursor(canvas, GUI::Cursor::push); if (!chart.getAnimControl().isRunning()) From 98a02cbe3a08cd4485c0073a0e296cfa86590dc3 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 15:19:36 +0100 Subject: [PATCH 075/180] compile fix --- src/chart/rendering/drawchart.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp index 717500dd5..e1e18671e 100644 --- a/src/chart/rendering/drawchart.cpp +++ b/src/chart/rendering/drawchart.cpp @@ -79,14 +79,14 @@ void DrawChart::draw() if (auto logoElement = std::make_unique(); rootEvents.draw.logo->invoke( Events::OnRectDrawEvent(*logoElement, - {layout.logoBoundary, false}))) { + {layout.logo, false}))) { - Logo(canvas).draw(layout.logoBoundary.pos, - layout.logoBoundary.width(), + Logo(canvas).draw(layout.logo.pos, + layout.logo.width(), *rootStyle.logo.filter); renderedChart.emplace( - Geom::TransformedRect::fromRect(layout.logoBoundary), + Geom::TransformedRect::fromRect(layout.logo), std::move(logoElement)); } From e70eeddc70c90c57441b94a62c7fca21560ed48d Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 15:19:48 +0100 Subject: [PATCH 076/180] clang-tidy-fix --- src/chart/speclayout/treemap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chart/speclayout/treemap.h b/src/chart/speclayout/treemap.h index c3b861a01..b40fb3c39 100644 --- a/src/chart/speclayout/treemap.h +++ b/src/chart/speclayout/treemap.h @@ -71,7 +71,7 @@ void TreeMap::setupVector(std::vector &items, size_t subCnt = 0; for (const auto &item : level.second) { auto &c = subChart.markers[subCnt]; - Geom::Rect rect = c.rect().positive(); + auto rect = c.rect().positive(); items[item.second].position = rect.topRight(); items[item.second].size = rect.size; ++subCnt; From b0beb4dbf1c3e4991aab05e095b278ef6936445c Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 15:19:48 +0100 Subject: [PATCH 077/180] clang-tidy-fix --- src/chart/speclayout/treemap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chart/speclayout/treemap.h b/src/chart/speclayout/treemap.h index c3b861a01..b40fb3c39 100644 --- a/src/chart/speclayout/treemap.h +++ b/src/chart/speclayout/treemap.h @@ -71,7 +71,7 @@ void TreeMap::setupVector(std::vector &items, size_t subCnt = 0; for (const auto &item : level.second) { auto &c = subChart.markers[subCnt]; - Geom::Rect rect = c.rect().positive(); + auto rect = c.rect().positive(); items[item.second].position = rect.topRight(); items[item.second].size = rect.size; ++subCnt; From faff056e5a12a1a8a00c0c67513ee6a5dc3c23b3 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 18:53:27 +0100 Subject: [PATCH 078/180] Move CoordSys to RenderedChart --- src/apps/weblib/interface.cpp | 8 +++++-- src/chart/main/chart.cpp | 30 +------------------------ src/chart/main/chart.h | 2 -- src/chart/rendering/drawaxes.cpp | 10 +++++---- src/chart/rendering/drawingcontext.h | 24 ++++++++++++++++---- src/chart/rendering/drawinterlacing.cpp | 10 +++++---- src/chart/rendering/markerrenderer.cpp | 17 +++++++------- src/chart/rendering/painter/painter.h | 1 + src/chart/rendering/renderedchart.h | 5 +++++ 9 files changed, 54 insertions(+), 53 deletions(-) diff --git a/src/apps/weblib/interface.cpp b/src/apps/weblib/interface.cpp index f02e28525..f6478f24e 100644 --- a/src/apps/weblib/interface.cpp +++ b/src/apps/weblib/interface.cpp @@ -143,7 +143,9 @@ void Interface::relToCanvasCoords(ObjectRegistry::Handle chart, double &x, double &y) { - auto to = getChart(chart)->getCoordSystem().convert({rx, ry}); + auto to = + getChart(chart)->getRenderedChart().getCoordSys().convert( + {rx, ry}); x = to.x; y = to.y; } @@ -154,7 +156,9 @@ void Interface::canvasToRelCoords(ObjectRegistry::Handle chart, double &rx, double &ry) { - auto to = getChart(chart)->getCoordSystem().getOriginal({x, y}); + auto to = + getChart(chart)->getRenderedChart().getCoordSys().getOriginal( + {x, y}); rx = to.x; ry = to.y; } diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index e8ea7418e..72797bef4 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -1,11 +1,6 @@ #include "chart.h" -#include "chart/rendering/drawbackground.h" #include "chart/rendering/drawchart.h" -#include "chart/rendering/drawlabel.h" -#include "chart/rendering/drawlegend.h" -#include "chart/rendering/drawmarkerinfo.h" -#include "chart/rendering/drawplot.h" #include "data/datacube/datacube.h" namespace Vizzu @@ -110,8 +105,7 @@ void Chart::draw(Gfx::ICanvas &canvas) actPlot, actPlot ? actPlot->getStyle() : stylesheet.getDefaultParams(), - getCoordSystem(), - renderedChart = {}}} + renderedChart}} .draw(); } @@ -128,26 +122,4 @@ Gen::PlotPtr Chart::plot(const Gen::PlotOptionsPtr &options) false); } -Draw::CoordinateSystem Chart::getCoordSystem() const -{ - if (actPlot) { - const auto &rootStyle = actPlot->getStyle(); - - auto plotArea = rootStyle.plot.contentRect(layout.plot, - rootStyle.calculatedSize()); - - const auto &options = *actPlot->getOptions(); - - return {plotArea, - options.angle, - options.coordSystem, - actPlot->keepAspectRatio}; - } - return {layout.plotArea, - 0.0, - ::Anim::Interpolated{ - Gen::CoordSystem::cartesian}, - Math::FuzzyBool()}; -} - } \ No newline at end of file diff --git a/src/chart/main/chart.h b/src/chart/main/chart.h index 364fc7930..b9dc23691 100644 --- a/src/chart/main/chart.h +++ b/src/chart/main/chart.h @@ -13,7 +13,6 @@ #include "chart/main/layout.h" #include "chart/main/stylesheet.h" #include "chart/options/config.h" -#include "chart/rendering/painter/coordinatesystem.h" #include "chart/rendering/renderedchart.h" #include "data/table/datatable.h" @@ -68,7 +67,6 @@ class Chart { return eventDispatcher; } - [[nodiscard]] Draw::CoordinateSystem getCoordSystem() const; [[nodiscard]] const Draw::RenderedChart &getRenderedChart() const { return renderedChart; diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index ac2bc37c8..d84a203ec 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -187,8 +187,9 @@ void DrawAxes::drawTitle(Gen::ChannelId axisIndex) auto offset = getTitleOffset(axisIndex, index, fades); - auto posDir = coordSys.convertDirectionAt( - Geom::Line(relCenter, relCenter + normal)); + auto posDir = + renderedChart.getCoordSys().convertDirectionAt( + Geom::Line(relCenter, relCenter + normal)); auto posAngle = posDir.getDirection().angle(); @@ -324,8 +325,9 @@ void DrawAxes::drawDimensionLabel(bool horizontal, auto sign = 1 - 2 * under; - auto posDir = coordSys.convertDirectionAt( - Geom::Line(relCenter, relCenter + normal)); + auto posDir = + renderedChart.getCoordSys().convertDirectionAt( + Geom::Line(relCenter, relCenter + normal)); posDir = posDir.extend(sign); diff --git a/src/chart/rendering/drawingcontext.h b/src/chart/rendering/drawingcontext.h index 4e2c9c0e3..cfb68f35b 100644 --- a/src/chart/rendering/drawingcontext.h +++ b/src/chart/rendering/drawingcontext.h @@ -22,10 +22,8 @@ class DrawingContext const Events &events, const std::shared_ptr &plot, const Styles::Chart &styles, - const CoordinateSystem &coordSys, RenderedChart &renderedChart) : plot(plot), - coordSys(coordSys), canvas(canvas), painter(*static_cast(canvas.getPainter())), rootStyle(styles), @@ -33,11 +31,29 @@ class DrawingContext layout(layout), renderedChart(renderedChart) { - painter.setCoordSys(coordSys); + if (plot) { + auto plotArea = styles.plot.contentRect(layout.plot, + styles.calculatedSize()); + const auto &options = *plot->getOptions(); + renderedChart = RenderedChart{{plotArea, + options.angle, + options.coordSystem, + plot->keepAspectRatio}, + plot}; + } + else { + renderedChart = RenderedChart{ + {layout.plotArea, + 0.0, + ::Anim::Interpolated{ + Gen::CoordSystem::cartesian}, + Math::FuzzyBool()}, + plot}; + } + painter.setCoordSys(renderedChart.getCoordSys()); } const std::shared_ptr &plot; - const CoordinateSystem &coordSys; Gfx::ICanvas &canvas; Painter &painter; const Styles::Chart &rootStyle; diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index a0c862670..d2c6ab307 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -283,8 +283,9 @@ void DrawInterlacing::drawDataLabel( auto sign = 1 - 2 * under; - auto posDir = coordSys.convertDirectionAt( - {refPos, refPos + normal}); + auto posDir = + renderedChart.getCoordSys().convertDirectionAt( + {refPos, refPos + normal}); posDir = posDir.extend(sign); @@ -310,7 +311,8 @@ void DrawInterlacing::drawSticks(double tickIntensity, const auto &tickStyle = axisStyle.ticks; auto tickLength = tickStyle.length->get( - coordSys.getRect().size.getCoord(horizontal), + renderedChart.getCoordSys().getRect().size.getCoord( + horizontal), axisStyle.label.calculatedSize()); if (tickStyle.color->isTransparent() || tickLength == 0 @@ -327,7 +329,7 @@ void DrawInterlacing::drawSticks(double tickIntensity, auto direction = horizontal ? Geom::Point::X(-1) : Geom::Point::Y(-1); - auto tickLine = coordSys.convertDirectionAt( + auto tickLine = renderedChart.getCoordSys().convertDirectionAt( Geom::Line(tickPos, tickPos + direction)); tickLine = tickLine.segment(0, tickLength); diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index cce6b96c8..f9b4dbd20 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -27,7 +27,7 @@ void MarkerRenderer::drawLines(const Styles::Guide &style, auto blended = AbstractMarker::createInterpolated(marker, getOptions(), plot->getStyle(), - coordSys, + renderedChart.getCoordSys(), plot->getMarkers(), 0); @@ -89,7 +89,7 @@ void MarkerRenderer::draw() if (getOptions().geometry.contains(Gen::ShapeType::line) && getOptions().geometry.contains(Gen::ShapeType::circle)) { const CircleMarker circle(marker, - coordSys, + renderedChart.getCoordSys(), getOptions(), rootStyle); @@ -99,7 +99,7 @@ void MarkerRenderer::draw() [this](int index, auto value) { const ConnectingMarker line(marker, - coordSys, + renderedChart.getCoordSys(), getOptions(), rootStyle, plot->getMarkers(), @@ -116,7 +116,7 @@ void MarkerRenderer::draw() auto blended0 = AbstractMarker::createInterpolated(marker, getOptions(), rootStyle, - coordSys, + renderedChart.getCoordSys(), plot->getMarkers(), index); @@ -162,7 +162,7 @@ void MarkerRenderer::drawLabel() auto blended = AbstractMarker::createInterpolated(marker, getOptions(), plot->getStyle(), - coordSys, + renderedChart.getCoordSys(), plot->getMarkers(), 0); @@ -219,8 +219,8 @@ void MarkerRenderer::draw(const AbstractMarker &abstractMarker, if (line) { auto line = abstractMarker.getLine(); - auto p0 = coordSys.convert(line.begin); - auto p1 = coordSys.convert(line.end); + auto p0 = renderedChart.getCoordSys().convert(line.begin); + auto p1 = renderedChart.getCoordSys().convert(line.end); canvas.setLineColor( colors.second @@ -272,7 +272,8 @@ void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, auto labelPos = labelStyle.position->combine( [this, &abstractMarker](int, const auto &position) { - return abstractMarker.getLabelPos(position, coordSys); + return abstractMarker.getLabelPos(position, + renderedChart.getCoordSys()); }); auto textColor = (*labelStyle.filter)(color)*weight; diff --git a/src/chart/rendering/painter/painter.h b/src/chart/rendering/painter/painter.h index f6da7d672..ac2a9b049 100644 --- a/src/chart/rendering/painter/painter.h +++ b/src/chart/rendering/painter/painter.h @@ -20,6 +20,7 @@ class Painter { this->system = system; } + void setResMode(const ResolutionMode &mode) { this->mode = mode; } void drawLine(const Geom::Line &line); diff --git a/src/chart/rendering/renderedchart.h b/src/chart/rendering/renderedchart.h index 97d0575f1..ed111c04f 100644 --- a/src/chart/rendering/renderedchart.h +++ b/src/chart/rendering/renderedchart.h @@ -72,6 +72,11 @@ class RenderedChart [[nodiscard]] const Util::EventTarget *find( const Geom::Point &point) const; + [[nodiscard]] const CoordinateSystem &getCoordSys() const + { + return coordinateSystem; + } + private: CoordinateSystem coordinateSystem; std::shared_ptr plot; From 7915453d449538f8fd40f75409528336639e0b0f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 19:28:22 +0100 Subject: [PATCH 079/180] Revert coordSys to DrawingContext member --- src/chart/main/chart.h | 1 - src/chart/rendering/drawaxes.cpp | 10 ++++------ src/chart/rendering/drawchart.cpp | 4 ++-- src/chart/rendering/drawingcontext.h | 4 +++- src/chart/rendering/drawinterlacing.cpp | 12 +++++------- src/chart/rendering/markerrenderer.cpp | 17 ++++++++--------- src/chart/rendering/markers/abstractmarker.cpp | 4 ++-- 7 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/chart/main/chart.h b/src/chart/main/chart.h index b9dc23691..d693b1fbd 100644 --- a/src/chart/main/chart.h +++ b/src/chart/main/chart.h @@ -61,7 +61,6 @@ class Chart return animator->getActAnimation(); } Anim::Options &getAnimOptions() { return nextAnimOptions; } - Events &getEvents() { return events; } [[nodiscard]] const Layout &getLayout() const { return layout; } Util::EventDispatcher &getEventDispatcher() { diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index d84a203ec..c813ca7c2 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -187,9 +187,8 @@ void DrawAxes::drawTitle(Gen::ChannelId axisIndex) auto offset = getTitleOffset(axisIndex, index, fades); - auto posDir = - renderedChart.getCoordSys().convertDirectionAt( - Geom::Line(relCenter, relCenter + normal)); + auto posDir = coordSys.convertDirectionAt( + {relCenter, relCenter + normal}); auto posAngle = posDir.getDirection().angle(); @@ -325,9 +324,8 @@ void DrawAxes::drawDimensionLabel(bool horizontal, auto sign = 1 - 2 * under; - auto posDir = - renderedChart.getCoordSys().convertDirectionAt( - Geom::Line(relCenter, relCenter + normal)); + auto posDir = coordSys.convertDirectionAt( + {relCenter, relCenter + normal}); posDir = posDir.extend(sign); diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp index e1e18671e..5609628b3 100644 --- a/src/chart/rendering/drawchart.cpp +++ b/src/chart/rendering/drawchart.cpp @@ -16,7 +16,7 @@ void DrawChart::drawHeading(const Gen::Options::Heading &option, const Util::EventDispatcher::event_ptr &event) { option.visit( - [&, this](int, const auto &weighted) + [&layout, &style, &event, this](int, const auto &weighted) { if (weighted.value.has_value()) { DrawLabel(*this, @@ -47,7 +47,7 @@ void DrawChart::draw() DrawPlot{*this}; plot->getOptions()->legend.visit( - [&, this](int, const auto &legend) + [this](int, const auto &legend) { if (legend.value) DrawLegend(*this, diff --git a/src/chart/rendering/drawingcontext.h b/src/chart/rendering/drawingcontext.h index cfb68f35b..99d0c759f 100644 --- a/src/chart/rendering/drawingcontext.h +++ b/src/chart/rendering/drawingcontext.h @@ -24,6 +24,7 @@ class DrawingContext const Styles::Chart &styles, RenderedChart &renderedChart) : plot(plot), + coordSys(renderedChart.getCoordSys()), canvas(canvas), painter(*static_cast(canvas.getPainter())), rootStyle(styles), @@ -50,10 +51,11 @@ class DrawingContext Math::FuzzyBool()}, plot}; } - painter.setCoordSys(renderedChart.getCoordSys()); + painter.setCoordSys(coordSys); } const std::shared_ptr &plot; + const CoordinateSystem &coordSys; Gfx::ICanvas &canvas; Painter &painter; const Styles::Chart &rootStyle; diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index d2c6ab307..aeea64681 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -283,9 +283,8 @@ void DrawInterlacing::drawDataLabel( auto sign = 1 - 2 * under; - auto posDir = - renderedChart.getCoordSys().convertDirectionAt( - {refPos, refPos + normal}); + auto posDir = coordSys.convertDirectionAt( + {refPos, refPos + normal}); posDir = posDir.extend(sign); @@ -311,8 +310,7 @@ void DrawInterlacing::drawSticks(double tickIntensity, const auto &tickStyle = axisStyle.ticks; auto tickLength = tickStyle.length->get( - renderedChart.getCoordSys().getRect().size.getCoord( - horizontal), + coordSys.getRect().size.getCoord(horizontal), axisStyle.label.calculatedSize()); if (tickStyle.color->isTransparent() || tickLength == 0 @@ -329,8 +327,8 @@ void DrawInterlacing::drawSticks(double tickIntensity, auto direction = horizontal ? Geom::Point::X(-1) : Geom::Point::Y(-1); - auto tickLine = renderedChart.getCoordSys().convertDirectionAt( - Geom::Line(tickPos, tickPos + direction)); + auto tickLine = + coordSys.convertDirectionAt({tickPos, tickPos + direction}); tickLine = tickLine.segment(0, tickLength); diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index f9b4dbd20..cce6b96c8 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -27,7 +27,7 @@ void MarkerRenderer::drawLines(const Styles::Guide &style, auto blended = AbstractMarker::createInterpolated(marker, getOptions(), plot->getStyle(), - renderedChart.getCoordSys(), + coordSys, plot->getMarkers(), 0); @@ -89,7 +89,7 @@ void MarkerRenderer::draw() if (getOptions().geometry.contains(Gen::ShapeType::line) && getOptions().geometry.contains(Gen::ShapeType::circle)) { const CircleMarker circle(marker, - renderedChart.getCoordSys(), + coordSys, getOptions(), rootStyle); @@ -99,7 +99,7 @@ void MarkerRenderer::draw() [this](int index, auto value) { const ConnectingMarker line(marker, - renderedChart.getCoordSys(), + coordSys, getOptions(), rootStyle, plot->getMarkers(), @@ -116,7 +116,7 @@ void MarkerRenderer::draw() auto blended0 = AbstractMarker::createInterpolated(marker, getOptions(), rootStyle, - renderedChart.getCoordSys(), + coordSys, plot->getMarkers(), index); @@ -162,7 +162,7 @@ void MarkerRenderer::drawLabel() auto blended = AbstractMarker::createInterpolated(marker, getOptions(), plot->getStyle(), - renderedChart.getCoordSys(), + coordSys, plot->getMarkers(), 0); @@ -219,8 +219,8 @@ void MarkerRenderer::draw(const AbstractMarker &abstractMarker, if (line) { auto line = abstractMarker.getLine(); - auto p0 = renderedChart.getCoordSys().convert(line.begin); - auto p1 = renderedChart.getCoordSys().convert(line.end); + auto p0 = coordSys.convert(line.begin); + auto p1 = coordSys.convert(line.end); canvas.setLineColor( colors.second @@ -272,8 +272,7 @@ void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, auto labelPos = labelStyle.position->combine( [this, &abstractMarker](int, const auto &position) { - return abstractMarker.getLabelPos(position, - renderedChart.getCoordSys()); + return abstractMarker.getLabelPos(position, coordSys); }); auto textColor = (*labelStyle.filter)(color)*weight; diff --git a/src/chart/rendering/markers/abstractmarker.cpp b/src/chart/rendering/markers/abstractmarker.cpp index 11b2819d9..97bc98a60 100644 --- a/src/chart/rendering/markers/abstractmarker.cpp +++ b/src/chart/rendering/markers/abstractmarker.cpp @@ -159,8 +159,8 @@ Geom::Line AbstractMarker::getLabelPos( center = side.center(); } - auto res = coordSys.convertDirectionAt( - Geom::Line(center, center + direction)); + auto res = + coordSys.convertDirectionAt({center, center + direction}); if (position != Pos::center) res.shift(res.getDirection() * radius); From fd9bd097fe0db4817ce527c046e8f559b8d5187b Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 19:38:35 +0100 Subject: [PATCH 080/180] draw: Replace all getStyle and getOption --- src/chart/rendering/drawchart.cpp | 17 ++++++++--------- src/chart/rendering/drawingcontext.h | 12 ++++++------ src/chart/rendering/markerrenderer.cpp | 4 ++-- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp index 5609628b3..bd55309c6 100644 --- a/src/chart/rendering/drawchart.cpp +++ b/src/chart/rendering/drawchart.cpp @@ -40,13 +40,13 @@ void DrawChart::draw() DrawBackground(*this, layout.boundary.outline(Geom::Size::Square(1)), - plot->getStyle(), + rootStyle, rootEvents.draw.background, std::make_unique()); DrawPlot{*this}; - plot->getOptions()->legend.visit( + getOptions().legend.visit( [this](int, const auto &legend) { if (legend.value) @@ -55,21 +55,20 @@ void DrawChart::draw() legend.weight); }); - drawHeading( - plot->getOptions()->title, - plot->getStyle().title, + drawHeading(getOptions().title, + rootStyle.title, layout.title, rootEvents.draw.title); drawHeading( - plot->getOptions()->subtitle, - plot->getStyle().subtitle, + getOptions().subtitle, + rootStyle.subtitle, layout.subtitle, rootEvents.draw.subtitle); drawHeading( - plot->getOptions()->caption, - plot->getStyle().caption, + getOptions().caption, + rootStyle.caption, layout.caption, rootEvents.draw.caption); diff --git a/src/chart/rendering/drawingcontext.h b/src/chart/rendering/drawingcontext.h index 99d0c759f..96f0f60d0 100644 --- a/src/chart/rendering/drawingcontext.h +++ b/src/chart/rendering/drawingcontext.h @@ -35,12 +35,12 @@ class DrawingContext if (plot) { auto plotArea = styles.plot.contentRect(layout.plot, styles.calculatedSize()); - const auto &options = *plot->getOptions(); - renderedChart = RenderedChart{{plotArea, - options.angle, - options.coordSystem, - plot->keepAspectRatio}, - plot}; + renderedChart = + RenderedChart{{plotArea, + getOptions().angle, + getOptions().coordSystem, + plot->keepAspectRatio}, + plot}; } else { renderedChart = RenderedChart{ diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index cce6b96c8..c80fb1863 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -26,7 +26,7 @@ void MarkerRenderer::drawLines(const Styles::Guide &style, auto blended = AbstractMarker::createInterpolated(marker, getOptions(), - plot->getStyle(), + rootStyle, coordSys, plot->getMarkers(), 0); @@ -161,7 +161,7 @@ void MarkerRenderer::drawLabel() auto blended = AbstractMarker::createInterpolated(marker, getOptions(), - plot->getStyle(), + rootStyle, coordSys, plot->getMarkers(), 0); From 5b6d213d9e2def9ae0826bc7f182c19d86884d0f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 19:47:27 +0100 Subject: [PATCH 081/180] Simplify drawHeading --- src/chart/rendering/drawchart.cpp | 64 ++++++++++++++++--------------- src/chart/rendering/drawchart.h | 7 +--- 2 files changed, 35 insertions(+), 36 deletions(-) diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp index bd55309c6..553d05d48 100644 --- a/src/chart/rendering/drawchart.cpp +++ b/src/chart/rendering/drawchart.cpp @@ -9,26 +9,27 @@ namespace Vizzu::Draw { -template -void DrawChart::drawHeading(const Gen::Options::Heading &option, - const Styles::Label &style, - const Geom::Rect &layout, - const Util::EventDispatcher::event_ptr &event) +template +void DrawChart::drawHeading(const MemberGetter &&getter) { - option.visit( - [&layout, &style, &event, this](int, const auto &weighted) - { - if (weighted.value.has_value()) { - DrawLabel(*this, - Geom::TransformedRect::fromRect(layout), - *weighted.value, - style, - event, - std::make_unique(*weighted.value), - DrawLabel::Options(true, - std::max(weighted.weight * 2 - 1, 0.0))); - } - }); + getter(getOptions()) + .visit( + [&layout = getter(layout), + &style = getter(rootStyle), + &event = getter(rootEvents.draw), + this](int, const auto &weighted) + { + if (weighted.value.has_value()) { + DrawLabel(*this, + Geom::TransformedRect::fromRect(layout), + *weighted.value, + style, + event, + std::make_unique(*weighted.value), + DrawLabel::Options(true, + std::max(weighted.weight * 2 - 1, 0.0))); + } + }); } void DrawChart::draw() @@ -55,22 +56,23 @@ void DrawChart::draw() legend.weight); }); - drawHeading(getOptions().title, - rootStyle.title, - layout.title, - rootEvents.draw.title); + drawHeading( + [](auto &obj) -> decltype((obj.title)) + { + return (obj.title); + }); drawHeading( - getOptions().subtitle, - rootStyle.subtitle, - layout.subtitle, - rootEvents.draw.subtitle); + [](auto &obj) -> decltype((obj.subtitle)) + { + return (obj.subtitle); + }); drawHeading( - getOptions().caption, - rootStyle.caption, - layout.caption, - rootEvents.draw.caption); + [](auto &obj) -> decltype((obj.caption)) + { + return (obj.caption); + }); DrawMarkerInfo(layout, canvas, *plot); } diff --git a/src/chart/rendering/drawchart.h b/src/chart/rendering/drawchart.h index c1059e436..e839fca5b 100644 --- a/src/chart/rendering/drawchart.h +++ b/src/chart/rendering/drawchart.h @@ -9,11 +9,8 @@ namespace Vizzu::Draw class DrawChart : public DrawingContext { - template - void drawHeading(const Gen::Options::Heading &option, - const Styles::Label &style, - const Geom::Rect &layout, - const Util::EventDispatcher::event_ptr &event); + template + void drawHeading(const MemberGetter &&getter); public: void draw(); From 0f3774782318015843e0a85f0f6462a7dc952e71 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 22:45:44 +0100 Subject: [PATCH 082/180] events transform types to functions --- src/chart/main/chart.cpp | 2 +- src/chart/main/events.cpp | 65 ++++--- src/chart/main/events.h | 224 +++++++++++++----------- src/chart/rendering/drawaxes.cpp | 10 +- src/chart/rendering/drawbackground.cpp | 4 +- src/chart/rendering/drawchart.cpp | 19 +- src/chart/rendering/drawchart.h | 2 +- src/chart/rendering/drawguides.cpp | 3 +- src/chart/rendering/drawinterlacing.cpp | 11 +- src/chart/rendering/drawlegend.cpp | 26 +-- src/chart/rendering/drawplot.cpp | 10 +- src/chart/rendering/markerrenderer.cpp | 11 +- src/chart/ui/chart.cpp | 27 +-- src/chart/ui/chart.h | 2 +- 14 files changed, 212 insertions(+), 204 deletions(-) diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index 72797bef4..2d708c9b1 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -10,7 +10,7 @@ Chart::Chart() : animator(std::make_shared()), stylesheet(Styles::Chart::def()), computedStyles(stylesheet.getDefaultParams()), - events(*this) + events(getEventDispatcher()) { stylesheet.setActiveParams(actStyles); nextOptions = std::make_shared(); diff --git a/src/chart/main/events.cpp b/src/chart/main/events.cpp index ceb537f4e..4a93d11b7 100644 --- a/src/chart/main/events.cpp +++ b/src/chart/main/events.cpp @@ -1,40 +1,39 @@ #include "events.h" -#include "chart.h" - namespace Vizzu { -Events::Events(Chart &chart) -{ - auto &ed = chart.getEventDispatcher(); - draw.begin = ed.createEvent("draw-begin"); - draw.complete = ed.createEvent("draw-complete"); - draw.background = ed.createEvent("background-draw"); - draw.title = ed.createEvent("title-draw"); - draw.subtitle = ed.createEvent("subtitle-draw"); - draw.caption = ed.createEvent("caption-draw"); - draw.logo = ed.createEvent("logo-draw"); - draw.legend.background = ed.createEvent("legend-background-draw"); - draw.legend.title = ed.createEvent("legend-title-draw"); - draw.legend.label = ed.createEvent("legend-label-draw"); - draw.legend.marker = ed.createEvent("legend-marker-draw"); - draw.legend.bar = ed.createEvent("legend-bar-draw"); - draw.plot.background = ed.createEvent("plot-background-draw"); - draw.plot.area = ed.createEvent("plot-area-draw"); - draw.plot.marker.base = ed.createEvent("plot-marker-draw"); - draw.plot.marker.label = ed.createEvent("plot-marker-label-draw"); - draw.plot.marker.guide = ed.createEvent("plot-marker-guide-draw"); - draw.plot.axis.base = ed.createEvent("plot-axis-draw"); - draw.plot.axis.title = ed.createEvent("plot-axis-title-draw"); - draw.plot.axis.label = ed.createEvent("plot-axis-label-draw"); - draw.plot.axis.tick = ed.createEvent("plot-axis-tick-draw"); - draw.plot.axis.guide = ed.createEvent("plot-axis-guide-draw"); - draw.plot.axis.interlacing = - ed.createEvent("plot-axis-interlacing-draw"); - animation.begin = ed.createEvent("animation-begin"); - animation.update = ed.createEvent("update"); - animation.complete = ed.createEvent("animation-complete"); -} +Events::Events(Util::EventDispatcher &ed) : + draw{ + .begin = ed.createEvent("draw-begin"), + .background = ed.createEvent("background-draw"), + .title = ed.createEvent("title-draw"), + .subtitle = ed.createEvent("subtitle-draw"), + .caption = ed.createEvent("caption-draw"), + .logo = ed.createEvent("logo-draw"), + .legend{.background = + ed.createEvent("legend-background-draw"), + .title = ed.createEvent("legend-title-draw"), + .label = ed.createEvent("legend-label-draw"), + .marker = ed.createEvent("legend-marker-draw"), + .bar = ed.createEvent("legend-bar-draw")}, + .plot{.background = ed.createEvent("plot-background-draw"), + .area = ed.createEvent("plot-area-draw"), + .marker{.base = ed.createEvent("plot-marker-draw"), + .label = ed.createEvent("plot-marker-label-draw"), + .guide = ed.createEvent("plot-marker-guide-draw")}, + .axis{.base = ed.createEvent("plot-axis-draw"), + .title = ed.createEvent("plot-axis-title-draw"), + .label = ed.createEvent("plot-axis-label-draw"), + .tick = ed.createEvent("plot-axis-tick-draw"), + .guide = ed.createEvent("plot-axis-guide-draw"), + .interlacing = + ed.createEvent("plot-axis-interlacing-draw")}}, + .complete = ed.createEvent("draw-complete"), + }, + animation{.begin = ed.createEvent("animation-begin"), + .update = ed.createEvent("update"), + .complete = ed.createEvent("animation-complete")} +{} } \ No newline at end of file diff --git a/src/chart/main/events.h b/src/chart/main/events.h index 8b75e54ab..1d6ca5fb0 100644 --- a/src/chart/main/events.h +++ b/src/chart/main/events.h @@ -15,12 +15,10 @@ namespace Vizzu { -class Chart; - class Events { public: - explicit Events(Chart &chart); + explicit Events(Util::EventDispatcher &ed); struct OnUpdateDetail { @@ -171,21 +169,26 @@ class Events } }; - template struct ChildOf : Element + template struct ParentHolder { Parent parent; + }; + template + struct ChildOf : ParentHolder, Element + { template explicit ChildOf(const std::string &name, Args &&...args) : - Element(Parent::name() + "-" + name), - parent(args...) + ParentHolder{ + Parent{std::forward(args)...}}, + Element(this->parent.tagName + "-" + name) {} void appendToJSON(Conv::JSONObj &&jsonObj) const override { Element::appendToJSON( - std::move(jsonObj)("parent", parent)); + std::move(jsonObj)("parent", this->parent)); } }; @@ -205,46 +208,12 @@ class Events } }; - template struct Label : Text - { - template - explicit Label(std::string text, Args &&...args) : - Text(std::move(text), "label", args...) - {} - }; - - template struct Title : Text - { - template - explicit Title(std::string text, Args &&...args) : - Text(std::move(text), "title", args...) - {} - }; - - template struct Subtitle : Text - { - template - explicit Subtitle(std::string text, Args &&...args) : - Text(std::move(text), "subtitle", args...) - {} - }; - - template struct Caption : Text - { - template - explicit Caption(std::string text, Args &&...args) : - Text(std::move(text), "caption", args...) - {} - }; - struct Legend : Element { - static std::string name() { return "legend"; } - Gen::ChannelId channel; explicit Legend(Gen::ChannelId channel) : - Element(name()), + Element("legend"), channel(channel) {} @@ -257,12 +226,10 @@ class Events struct Axis : Element { - static std::string name() { return "plot-axis"; } - bool horizontal; explicit Axis(bool horizontal) : - Element(name()), + Element("plot-axis"), horizontal(horizontal) {} @@ -275,12 +242,10 @@ class Events struct Marker : Element { - static std::string name() { return "plot-marker"; } - const Gen::Marker ▮ explicit Marker(const Gen::Marker &marker) : - Element(name()), + Element("plot-marker"), marker(marker) {} @@ -291,86 +256,149 @@ class Events } }; - struct MarkerGuide : ChildOf + using LegendChild = ChildOf; + using AxisChild = ChildOf; + using MarkerChild = ChildOf; + + struct MarkerGuide : MarkerChild { bool horizontal; MarkerGuide(const Gen::Marker &marker, bool horizontal) : - ChildOf("guide", marker), + MarkerChild("guide", marker), horizontal(horizontal) {} void appendToJSON(Conv::JSONObj &&jsonObj) const override { - ChildOf::appendToJSON(std::move( + MarkerChild::appendToJSON(std::move( jsonObj)("id", (horizontal ? "x" : "y"))); } }; - struct Root : Element + static auto axis(bool horizontal) { - Root() : Element("root") {} - }; - struct Plot : Element + return std::make_unique(horizontal); + } + + static auto legend(Gen::ChannelId channel) { - Plot() : Element("plot") {} - }; - struct Area : Element + return std::make_unique(channel); + } + + static auto marker(const Gen::Marker &marker) { - Area() : Element("plot-area") {} - }; - struct Logo : Element + return std::make_unique(marker); + } + + static auto markerGuide(const Gen::Marker &marker, + bool horizontal) { - Logo() : Element("logo") {} - }; + return std::make_unique(marker, horizontal); + } - using ChartTitle = Title; - using ChartSubtitle = Subtitle; - using ChartCaption = Caption; + static auto root() + { + return std::make_unique("root"); + } - using MarkerLabel = Label>; - using LegendChild = ChildOf; - using LegendLabel = Label>; - using LegendTitle = Title>; + static auto plot() + { + return std::make_unique("plot"); + } - struct LegendMarker : LegendChild + static auto area() { - explicit LegendMarker(Gen::ChannelId channel) : - LegendChild("marker", channel) - {} - }; + return std::make_unique("plot-area"); + } - struct LegendBar : LegendChild + static auto logo() { - explicit LegendBar(Gen::ChannelId channel) : - LegendChild("bar", channel) - {} - }; + return std::make_unique("logo"); + } - using AxisChild = ChildOf; - using AxisLabel = Label>; - using AxisTitle = Title>; + static auto chartTitle(const std::string &title) + { + return std::make_unique>(title, "title"); + } - struct AxisGuide : AxisChild + static auto chartSubtitle(const std::string &subtitle) { - explicit AxisGuide(bool horizontal) : - AxisChild("guide", horizontal) - {} - }; + return std::make_unique>(subtitle, + "subtitle"); + } - struct AxisTick : AxisChild + static auto chartCaption(const std::string &caption) { - explicit AxisTick(bool horizontal) : - AxisChild("tick", horizontal) - {} - }; + return std::make_unique>(caption, + "caption"); + } - struct AxisInterlacing : AxisChild + static auto markerLabel(const std::string &label, + const Gen::Marker &marker) { - explicit AxisInterlacing(bool horizontal) : - AxisChild("interlacing", horizontal) - {} - }; + return std::make_unique>(label, + "label", + marker); + } + + static auto legendLabel(const std::string &label, + Gen::ChannelId channel) + { + return std::make_unique>(label, + "label", + channel); + } + + static auto legendTitle(const std::string &title, + Gen::ChannelId channel) + { + return std::make_unique>(title, + "title", + channel); + } + + static auto legendMarker(Gen::ChannelId channel) + { + return std::make_unique("marker", channel); + } + + static auto legendBar(Gen::ChannelId channel) + { + return std::make_unique("bar", channel); + } + + static auto axisLabel(const std::string &label, + bool horizontal) + { + return std::make_unique>(label, + "label", + horizontal); + } + + static auto axisTitle(const std::string &title, + bool horizontal) + { + return std::make_unique>(title, + "title", + horizontal); + } + + static auto axisGuide(bool horizontal) + { + return std::make_unique("guide", horizontal); + } + + static auto axisTick(bool horizontal) + { + return std::make_unique("tick", horizontal); + } + + static auto axisInterlacing(bool horizontal) + { + return std::make_unique("interlacing", + horizontal); + } }; }; diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index c813ca7c2..ad459fdda 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -50,8 +50,8 @@ Geom::Line DrawAxes::getAxis(Gen::ChannelId axisIndex) const void DrawAxes::drawAxis(Gen::ChannelId axisIndex) { - auto eventTarget = std::make_unique( - axisIndex == Gen::ChannelId::x); + auto eventTarget = + Events::Targets::axis(axisIndex == Gen::ChannelId::x); auto lineBaseColor = *rootStyle.plot.getAxis(axisIndex).color * static_cast(plot->anyAxisSet); @@ -239,8 +239,7 @@ void DrawAxes::drawTitle(Gen::ChannelId axisIndex) title.value, titleStyle, rootEvents.draw.plot.axis.title, - std::make_unique( - title.value, + Events::Targets::axisTitle(title.value, axisIndex == Gen::ChannelId::x), DrawLabel::Options(false, 1.0, upsideDown)); @@ -336,8 +335,7 @@ void DrawAxes::drawDimensionLabel(bool horizontal, textColor * weight * position.weight, *labelStyle.backgroundColor, rootEvents.draw.plot.axis.label, - std::make_unique(text, - horizontal)); + Events::Targets::axisLabel(text, horizontal)); }); } diff --git a/src/chart/rendering/drawbackground.cpp b/src/chart/rendering/drawbackground.cpp index a89a734c7..1becfbd32 100644 --- a/src/chart/rendering/drawbackground.cpp +++ b/src/chart/rendering/drawbackground.cpp @@ -18,7 +18,7 @@ DrawBackground::DrawBackground(const DrawingContext &context, canvas.setBrushColor(*style.backgroundColor); canvas.setLineColor(*style.borderColor); canvas.setLineWidth(*style.borderWidth); - if (!onDraw || onDraw->invoke(std::move(eventObj))) { + if (onDraw->invoke(std::move(eventObj))) { canvas.rectangle(rect); renderedChart.emplace( Geom::TransformedRect::fromRect(rect), @@ -26,7 +26,7 @@ DrawBackground::DrawBackground(const DrawingContext &context, } canvas.setLineWidth(0); } - else if (!onDraw || onDraw->invoke(std::move(eventObj))) { + else if (onDraw->invoke(std::move(eventObj))) { renderedChart.emplace(Geom::TransformedRect::fromRect(rect), std::move(eventTarget)); } diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp index 553d05d48..926ef618c 100644 --- a/src/chart/rendering/drawchart.cpp +++ b/src/chart/rendering/drawchart.cpp @@ -9,7 +9,7 @@ namespace Vizzu::Draw { -template +template void DrawChart::drawHeading(const MemberGetter &&getter) { getter(getOptions()) @@ -25,7 +25,7 @@ void DrawChart::drawHeading(const MemberGetter &&getter) *weighted.value, style, event, - std::make_unique(*weighted.value), + targetGetter(*weighted.value), DrawLabel::Options(true, std::max(weighted.weight * 2 - 1, 0.0))); } @@ -35,15 +35,14 @@ void DrawChart::drawHeading(const MemberGetter &&getter) void DrawChart::draw() { if (plot - && (!rootEvents.draw.begin - || rootEvents.draw.begin->invoke( - Util::EventDispatcher::Params{}))) { + && rootEvents.draw.begin->invoke( + Util::EventDispatcher::Params{})) { DrawBackground(*this, layout.boundary.outline(Geom::Size::Square(1)), rootStyle, rootEvents.draw.background, - std::make_unique()); + Events::Targets::root()); DrawPlot{*this}; @@ -56,19 +55,19 @@ void DrawChart::draw() legend.weight); }); - drawHeading( + drawHeading<&Events::Targets::chartTitle>( [](auto &obj) -> decltype((obj.title)) { return (obj.title); }); - drawHeading( + drawHeading<&Events::Targets::chartSubtitle>( [](auto &obj) -> decltype((obj.subtitle)) { return (obj.subtitle); }); - drawHeading( + drawHeading<&Events::Targets::chartCaption>( [](auto &obj) -> decltype((obj.caption)) { return (obj.caption); @@ -77,7 +76,7 @@ void DrawChart::draw() DrawMarkerInfo(layout, canvas, *plot); } - if (auto logoElement = std::make_unique(); + if (auto logoElement = Events::Targets::logo(); rootEvents.draw.logo->invoke( Events::OnRectDrawEvent(*logoElement, {layout.logo, false}))) { diff --git a/src/chart/rendering/drawchart.h b/src/chart/rendering/drawchart.h index e839fca5b..3f550241a 100644 --- a/src/chart/rendering/drawchart.h +++ b/src/chart/rendering/drawchart.h @@ -9,7 +9,7 @@ namespace Vizzu::Draw class DrawChart : public DrawingContext { - template + template void drawHeading(const MemberGetter &&getter); public: diff --git a/src/chart/rendering/drawguides.cpp b/src/chart/rendering/drawguides.cpp index 9495dc006..b0143fd27 100644 --- a/src/chart/rendering/drawguides.cpp +++ b/src/chart/rendering/drawguides.cpp @@ -50,8 +50,7 @@ void DrawGuides::drawGuide(bool horizontal, double val, const Gfx::Color &color) { - auto eventTarget = - std::make_unique(horizontal); + auto eventTarget = Events::Targets::axisGuide(horizontal); auto ident = Geom::Point::Ident(horizontal); auto normal = Geom::Point::Ident(!horizontal); diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index aeea64681..fb04d2c94 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -205,9 +205,8 @@ void DrawInterlacing::draw( painter.setPolygonToCircleFactor(0); painter.setPolygonStraightFactor(0); - auto eventTarget = std::make_unique< - Events::Targets::AxisInterlacing>( - !horizontal); + auto eventTarget = + Events::Targets::axisInterlacing(!horizontal); if (rootEvents.draw.plot.axis.interlacing->invoke( Events::OnRectDrawEvent(*eventTarget, @@ -295,8 +294,7 @@ void DrawInterlacing::drawDataLabel( textColor * position.weight, *labelStyle.backgroundColor, rootEvents.draw.plot.axis.label, - std::make_unique(str, - !horizontal)); + Events::Targets::axisLabel(str, !horizontal)); }); } @@ -347,8 +345,7 @@ void DrawInterlacing::drawSticks(double tickIntensity, } }); - auto eventTarget = - std::make_unique(!horizontal); + auto eventTarget = Events::Targets::axisTick(!horizontal); if (rootEvents.draw.plot.axis.tick->invoke( Events::OnLineDrawEvent(*eventTarget, diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index ab177cc34..90cf1fb0c 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -30,7 +30,7 @@ DrawLegend::DrawLegend(const DrawingContext &context, layout.legend, style, events.background, - std::make_unique(channelType)); + Events::Targets::legend(channelType)); if (static_cast(type) < std::size(plot->measureAxises.axises)) { @@ -66,9 +66,7 @@ void DrawLegend::drawTitle(const ::Anim::String &title, double mul) title.value, style.title, events.title, - std::make_unique( - title.value, - type), + Events::Targets::legendTitle(title.value, type), DrawLabel::Options(true, title.weight * weight * mul)); }); @@ -93,8 +91,7 @@ void DrawLegend::drawDimension(const Gen::DimensionAxis &axis) value.second.label, style.label, events.label, - std::make_unique( - value.second.label, + Events::Targets::legendLabel(value.second.label, type), DrawLabel::Options(true, alpha)); } @@ -145,8 +142,7 @@ void DrawLegend::drawMarker(const Gfx::Color &color, Styles::Legend::Marker::Type::circle) * rect.size.minSize() / 2.0; - auto markerElement = - std::make_unique(type); + auto markerElement = Events::Targets::legendMarker(type); if (events.marker->invoke( Events::OnRectDrawEvent(*markerElement, {rect, false}))) { @@ -184,15 +180,12 @@ void DrawLegend::extremaLabel(double value, int pos) *style.label.numberScale); auto itemRect = getItemRect(pos); - auto labelElement = - std::make_unique(text, type); - DrawLabel(*this, getLabelRect(itemRect), text, style.label, events.label, - std::move(labelElement), + Events::Targets::legendLabel(text, type), DrawLabel::Options(true, weight * enabled)); } @@ -206,8 +199,7 @@ void DrawLegend::colorBar(const Geom::Rect &rect) canvas.setLineColor(Gfx::Color::Transparent()); canvas.setLineWidth(0); - auto barElement = - std::make_unique(type); + auto barElement = Events::Targets::legendBar(type); if (events.bar->invoke( Events::OnRectDrawEvent(*barElement, {rect, false}))) { @@ -237,8 +229,7 @@ void DrawLegend::lightnessBar(const Geom::Rect &rect) canvas.setLineColor(Gfx::Color::Transparent()); canvas.setLineWidth(0); - auto barElement = - std::make_unique(type); + auto barElement = Events::Targets::legendBar(type); if (events.bar->invoke( Events::OnRectDrawEvent(*barElement, {rect, false}))) { @@ -257,8 +248,7 @@ void DrawLegend::sizeBar(const Geom::Rect &rect) canvas.setBrushColor(Gfx::Color::Gray(0.8) * (weight * enabled)); canvas.setLineWidth(0); - auto barElement = - std::make_unique(type); + auto barElement = Events::Targets::legendBar(type); if (events.bar->invoke( Events::OnRectDrawEvent(*barElement, {rect, false}))) { diff --git a/src/chart/rendering/drawplot.cpp b/src/chart/rendering/drawplot.cpp index d9cec5acc..a0123bbe7 100644 --- a/src/chart/rendering/drawplot.cpp +++ b/src/chart/rendering/drawplot.cpp @@ -16,7 +16,7 @@ DrawPlot::DrawPlot(const DrawingContext &context) : layout.plot, rootStyle.plot, rootEvents.draw.plot.background, - std::make_unique()); + Events::Targets::plot()); drawArea(false); @@ -46,7 +46,7 @@ void DrawPlot::clipPlotArea() void DrawPlot::drawArea(bool clip) { - auto areaElement = std::make_unique(); + auto areaElement = Events::Targets::area(); auto rect = Geom::Rect{Geom::Point(), Geom::Size::Identity()}; painter.setPolygonToCircleFactor(0.0); @@ -61,8 +61,7 @@ void DrawPlot::drawArea(bool clip) canvas.setBrushColor(*rootStyle.plot.areaColor); canvas.setLineColor(*rootStyle.plot.areaColor); canvas.setLineWidth(0); - if (!rootEvents.draw.plot.area - || rootEvents.draw.plot.area->invoke( + if (rootEvents.draw.plot.area->invoke( std::move(eventObj))) { painter.drawPolygon(rect.points(), false); renderedChart.emplace(Rect{rect, true}, @@ -70,8 +69,7 @@ void DrawPlot::drawArea(bool clip) } canvas.setLineWidth(0); } - else if (!rootEvents.draw.plot.area - || rootEvents.draw.plot.area->invoke( + else if (rootEvents.draw.plot.area->invoke( std::move(eventObj))) { renderedChart.emplace(Rect{rect, true}, std::move(areaElement)); diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index c80fb1863..1ca1f5d17 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -44,8 +44,7 @@ void MarkerRenderer::drawLines(const Styles::Guide &style, const Geom::Line line(axisPoint, blended.center); auto guideElement = - std::make_unique(marker, - false); + Events::Targets::markerGuide(marker, false); if (rootEvents.draw.plot.marker.guide->invoke( Events::OnLineDrawEvent(*guideElement, @@ -68,8 +67,7 @@ void MarkerRenderer::drawLines(const Styles::Guide &style, const Geom::Line line(blended.center, axisPoint); auto guideElement = - std::make_unique(marker, - true); + Events::Targets::markerGuide(marker, true); if (rootEvents.draw.plot.marker.guide->invoke( Events::OnLineDrawEvent(*guideElement, @@ -213,8 +211,7 @@ void MarkerRenderer::draw(const AbstractMarker &abstractMarker, auto boundary = abstractMarker.getBoundary(); - auto markerElement = - std::make_unique(marker); + auto markerElement = Events::Targets::marker(marker); if (line) { auto line = abstractMarker.getLine(); @@ -288,7 +285,7 @@ void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, textColor, bgColor, rootEvents.draw.plot.marker.label, - std::make_unique(text, marker)); + Events::Targets::markerLabel(text, marker)); } std::string MarkerRenderer::getLabelText(size_t index) const diff --git a/src/chart/ui/chart.cpp b/src/chart/ui/chart.cpp index 3336ec10b..9400f61df 100644 --- a/src/chart/ui/chart.cpp +++ b/src/chart/ui/chart.cpp @@ -76,22 +76,21 @@ void ChartWidget::onPointerUp( const std::shared_ptr &canvas, const GUI::PointerEvent &event) { - const auto *clickedMarker = getMarkerAt(event.pos); + const auto *eventTarget = + chart.getRenderedChart().find(event.pos); - onPointerUpEvent->invoke(PointerEvent(event.pointerId, - event.pos, - chart.getRenderedChart().find(event.pos))); + onPointerUpEvent->invoke( + PointerEvent(event.pointerId, event.pos, eventTarget)); - if (onClick->invoke(PointerEvent(event.pointerId, - event.pos, - chart.getRenderedChart().find(event.pos)))) { + if (onClick->invoke( + PointerEvent(event.pointerId, event.pos, eventTarget))) { if (chart.getLayout().logo.contains(event.pos)) { if (openUrl) openUrl( Main::siteUrl + std::string("?utm_source=logo")); } else if (auto plot = chart.getPlot()) { - if (clickedMarker) + if (const auto *clickedMarker = getIfMarker(eventTarget)) Gen::Selector(*plot).toggleMarker( const_cast( // NOLINT *clickedMarker)); @@ -148,16 +147,20 @@ void ChartWidget::updateCursor( if (!chart.getAnimControl().isRunning()) if (auto plot = chart.getPlot()) - if (plot->anySelected || getMarkerAt(pos)) + if (plot->anySelected + || getIfMarker(chart.getRenderedChart().find(pos))) return setCursor(canvas, GUI::Cursor::push); return setCursor(canvas, GUI::Cursor::point); } -const Gen::Marker *ChartWidget::getMarkerAt(const Geom::Point &pos) +const Gen::Marker *ChartWidget::getIfMarker( + const Util::EventTarget *target) { + if (!target) [[unlikely]] + throw std::runtime_error("Nothing at this position"); + const auto *element = - static_cast( - chart.getRenderedChart().find(pos)); + static_cast(target); return element->tagName == "plot-marker" ? &static_cast(element) diff --git a/src/chart/ui/chart.h b/src/chart/ui/chart.h index e58264e69..bc04d49d3 100644 --- a/src/chart/ui/chart.h +++ b/src/chart/ui/chart.h @@ -63,7 +63,7 @@ class ChartWidget : public GUI::Widget void updateCursor(const std::shared_ptr &, const Geom::Point &pos); - const Gen::Marker *getMarkerAt(const Geom::Point &pos); + const Gen::Marker *getIfMarker(const Util::EventTarget *); }; } From a911c9e9b6b2eec323cef7d9220b48073d8b1676 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 30 Nov 2023 23:08:32 +0100 Subject: [PATCH 083/180] remove unnecessary param construction --- src/base/util/eventdispatcher.h | 2 +- src/chart/rendering/drawchart.cpp | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/base/util/eventdispatcher.h b/src/base/util/eventdispatcher.h index b9333eb4e..0d0625604 100644 --- a/src/base/util/eventdispatcher.h +++ b/src/base/util/eventdispatcher.h @@ -56,7 +56,7 @@ class EventDispatcher virtual ~Event(); std::string name() const; - bool invoke(Params &¶ms = Params()); + bool invoke(Params &¶ms = Params{}); void attach(std::uint64_t id, handler_fn handler); void detach(std::uint64_t id); explicit operator bool() const; diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp index 926ef618c..996b95a68 100644 --- a/src/chart/rendering/drawchart.cpp +++ b/src/chart/rendering/drawchart.cpp @@ -34,9 +34,7 @@ void DrawChart::drawHeading(const MemberGetter &&getter) void DrawChart::draw() { - if (plot - && rootEvents.draw.begin->invoke( - Util::EventDispatcher::Params{})) { + if (plot && rootEvents.draw.begin->invoke()) { DrawBackground(*this, layout.boundary.outline(Geom::Size::Square(1)), @@ -90,8 +88,6 @@ void DrawChart::draw() std::move(logoElement)); } - if (rootEvents.draw.complete) - rootEvents.draw.complete->invoke( - Util::EventDispatcher::Params{}); + rootEvents.draw.complete->invoke(); } } \ No newline at end of file From 99732fd722d5e5211e0aa3918857ffbfa1efd3bb Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 4 Dec 2023 14:15:24 +0100 Subject: [PATCH 084/180] small_changes_2 --- src/base/gfx/draw/roundedrect.h | 2 ++ src/base/math/statistics.h | 1 + src/chart/rendering/painter/coordinatesystem.h | 10 ++++++---- src/chart/rendering/painter/painter.cpp | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/base/gfx/draw/roundedrect.h b/src/base/gfx/draw/roundedrect.h index 84b629ad6..69721e194 100644 --- a/src/base/gfx/draw/roundedrect.h +++ b/src/base/gfx/draw/roundedrect.h @@ -13,6 +13,8 @@ class RoundedRect RoundedRect(ICanvas &canvas, const Geom::Rect &rect, double radius); + +protected: void corner(Geom::Point corner, const Geom::Point &dir0, const Geom::Point &dir1); diff --git a/src/base/math/statistics.h b/src/base/math/statistics.h index d0174eeb4..87f5e2c2a 100644 --- a/src/base/math/statistics.h +++ b/src/base/math/statistics.h @@ -9,6 +9,7 @@ namespace Math template static T mean(const std::array &values) { + static_assert(N > 0); return std::accumulate(values.begin(), values.end(), T()) / N; } diff --git a/src/chart/rendering/painter/coordinatesystem.h b/src/chart/rendering/painter/coordinatesystem.h index 9114c6a6f..e767c04fd 100644 --- a/src/chart/rendering/painter/coordinatesystem.h +++ b/src/chart/rendering/painter/coordinatesystem.h @@ -31,10 +31,12 @@ class CompoundTransform : public PolarDescartesTransform { public: CompoundTransform() = default; - CompoundTransform(const Geom::Rect &rect, - double angle, - const ::Anim::Interpolated &coordSystem, - Math::FuzzyBool keepAspectRatio); + explicit CompoundTransform(const Geom::Rect &rect, + double angle = 0.0, + const ::Anim::Interpolated &coordSystem = + ::Anim::Interpolated{ + Gen::CoordSystem::cartesian}, + Math::FuzzyBool keepAspectRatio = {}); [[nodiscard]] Geom::Point convert(const Geom::Point &p) const; [[nodiscard]] double horConvert(double length) const; [[nodiscard]] double verConvert(double length) const; diff --git a/src/chart/rendering/painter/painter.cpp b/src/chart/rendering/painter/painter.cpp index 2fe574f9e..652c5e54e 100644 --- a/src/chart/rendering/painter/painter.cpp +++ b/src/chart/rendering/painter/painter.cpp @@ -32,6 +32,7 @@ void Painter::drawPolygon(const std::array &ps, Draw::DrawPolygon::Options options(system); options.circ = polygonOptions.toCircleFactor; options.linear = polygonOptions.straightFactor; + options.resolutionMode = mode; Draw::DrawPolygon(ps, options, getCanvas(), clip); } From a2004727c20a9581e65223d042ffb17ee445724e Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 4 Dec 2023 16:09:23 +0100 Subject: [PATCH 085/180] new draw syntax --- src/chart/main/chart.cpp | 19 +- src/chart/main/layout.h | 1 + src/chart/rendering/drawaxes.cpp | 14 +- src/chart/rendering/drawaxes.h | 12 +- src/chart/rendering/drawbackground.cpp | 5 +- src/chart/rendering/drawbackground.h | 7 +- src/chart/rendering/drawchart.cpp | 110 +++++--- src/chart/rendering/drawchart.h | 22 +- src/chart/rendering/drawguides.cpp | 3 +- src/chart/rendering/drawguides.h | 7 +- src/chart/rendering/drawingcontext.h | 50 +--- src/chart/rendering/drawinterlacing.cpp | 8 +- src/chart/rendering/drawinterlacing.h | 7 +- src/chart/rendering/drawlabel.cpp | 20 +- src/chart/rendering/drawlabel.h | 11 +- src/chart/rendering/drawlegend.cpp | 294 +++++++++++---------- src/chart/rendering/drawlegend.h | 69 +++-- src/chart/rendering/drawmarkerinfo.cpp | 109 ++++---- src/chart/rendering/drawmarkerinfo.h | 40 +-- src/chart/rendering/drawplot.cpp | 69 ++--- src/chart/rendering/drawplot.h | 15 +- src/chart/rendering/markerrenderer.cpp | 330 +++++++++++++----------- src/chart/rendering/markerrenderer.h | 31 +-- src/chart/rendering/orientedlabel.cpp | 5 - src/chart/rendering/orientedlabel.h | 5 +- 25 files changed, 664 insertions(+), 599 deletions(-) diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index 2d708c9b1..dc3f406f4 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -99,14 +99,21 @@ Gen::OptionsSetter Chart::getSetter() void Chart::draw(Gfx::ICanvas &canvas) { - Draw::DrawChart{Draw::DrawingContext{canvas, - layout, - events, - actPlot, + renderedChart = Draw::RenderedChart{ + actPlot ? Draw::CoordinateSystem{layout.plotArea, + actPlot->getOptions()->angle, + actPlot->getOptions()->coordSystem, + actPlot->keepAspectRatio} + : Draw::CoordinateSystem{layout.plotArea}, + actPlot}; + + Draw::DrawChart{Draw::DrawingContext{actPlot, + renderedChart, + renderedChart.getCoordSys(), actPlot ? actPlot->getStyle() : stylesheet.getDefaultParams(), - renderedChart}} - .draw(); + events}} + .draw(canvas, layout); } Gen::PlotPtr Chart::plot(const Gen::PlotOptionsPtr &options) diff --git a/src/chart/main/layout.h b/src/chart/main/layout.h index 9891b84ac..56ccaa382 100644 --- a/src/chart/main/layout.h +++ b/src/chart/main/layout.h @@ -29,6 +29,7 @@ class Layout const Gen::PlotOptionsPtr &options, Gfx::ICanvas &info); +private: void setLogoBoundary(const Styles::Logo &logoStyle); }; diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index ad459fdda..e8a6e3576 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -8,18 +8,14 @@ namespace Vizzu::Draw { -DrawAxes::DrawAxes(const DrawingContext &context) : - DrawingContext(context) -{} - -void DrawAxes::drawBase() +void DrawAxes::drawGeometries() { interlacing.drawGeometries(); drawAxis(Gen::ChannelId::x); drawAxis(Gen::ChannelId::y); - DrawGuides(*this); + DrawGuides{{*this}, canvas, painter}.draw(); } void DrawAxes::drawLabels() @@ -234,7 +230,7 @@ void DrawAxes::drawTitle(Gen::ChannelId axisIndex) auto upsideDown = realAngle > M_PI / 2.0 && realAngle < 3 * M_PI / 2.0; - [[maybe_unused]] const DrawLabel label(*this, + DrawLabel{{*this}}.draw(canvas, Geom::TransformedRect{transform, Geom::Size{size}}, title.value, titleStyle, @@ -328,7 +324,9 @@ void DrawAxes::drawDimensionLabel(bool horizontal, posDir = posDir.extend(sign); - OrientedLabelRenderer labelRenderer(*this); + OrientedLabelRenderer labelRenderer{{*this}, + canvas, + painter}; auto label = labelRenderer.create(text, posDir, labelStyle, 0); labelRenderer.render(label, diff --git a/src/chart/rendering/drawaxes.h b/src/chart/rendering/drawaxes.h index 3a84384c2..ee2e6aca8 100644 --- a/src/chart/rendering/drawaxes.h +++ b/src/chart/rendering/drawaxes.h @@ -9,14 +9,16 @@ namespace Vizzu::Draw { -class DrawAxes : private DrawingContext +class DrawAxes : public DrawingContext { public: - explicit DrawAxes(const DrawingContext &context); - - void drawBase(); + void drawGeometries(); void drawLabels(); + Gfx::ICanvas &canvas; + Painter &painter; + DrawInterlacing interlacing{{*this}, canvas, painter}; + private: [[nodiscard]] Geom::Line getAxis(Gen::ChannelId axisIndex) const; [[nodiscard]] Geom::Point @@ -30,8 +32,6 @@ class DrawAxes : private DrawingContext void drawDimensionLabel(bool horizontal, const Geom::Point &origo, Gen::DimensionAxis::Values::const_iterator it); - - DrawInterlacing interlacing{*this}; }; } diff --git a/src/chart/rendering/drawbackground.cpp b/src/chart/rendering/drawbackground.cpp index 1becfbd32..e06a98f6f 100644 --- a/src/chart/rendering/drawbackground.cpp +++ b/src/chart/rendering/drawbackground.cpp @@ -5,12 +5,11 @@ namespace Vizzu::Draw { -DrawBackground::DrawBackground(const DrawingContext &context, +void DrawBackground::draw(Gfx::ICanvas &canvas, const Geom::Rect &rect, const Styles::Box &style, const Util::EventDispatcher::event_ptr &onDraw, - std::unique_ptr eventTarget) : - DrawingContext(context) + std::unique_ptr &&eventTarget) const { Events::OnRectDrawEvent eventObj(*eventTarget, {rect, false}); if (!style.borderColor->isTransparent() diff --git a/src/chart/rendering/drawbackground.h b/src/chart/rendering/drawbackground.h index 736c0d1fc..0725e1a1e 100644 --- a/src/chart/rendering/drawbackground.h +++ b/src/chart/rendering/drawbackground.h @@ -10,14 +10,13 @@ namespace Vizzu::Draw { -class DrawBackground : public DrawingContext +struct DrawBackground : DrawingContext { -public: - DrawBackground(const DrawingContext &context, + void draw(Gfx::ICanvas &canvas, const Geom::Rect &rect, const Styles::Box &style, const Util::EventDispatcher::event_ptr &onDraw, - std::unique_ptr eventTarget); + std::unique_ptr &&eventTarget) const; }; } diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp index 996b95a68..e4f3b4af0 100644 --- a/src/chart/rendering/drawchart.cpp +++ b/src/chart/rendering/drawchart.cpp @@ -9,18 +9,54 @@ namespace Vizzu::Draw { +void DrawChart::drawBackground(Gfx::ICanvas &canvas, + const Geom::Rect &bounds) const +{ + DrawBackground{{*this}}.draw(canvas, + bounds, + rootStyle, + rootEvents.draw.background, + Events::Targets::root()); +} + +void DrawChart::drawPlot(Gfx::ICanvas &canvas, + Painter &painter, + const Geom::Rect &plotRect) const +{ + DrawPlot{{*this}}.draw(canvas, painter, plotRect); +} + +void DrawChart::drawLegend(Gfx::ICanvas &canvas, + const Geom::Rect &bounds) const +{ + auto &&legendObj = DrawLegend{{*this}}; + + getOptions().legend.visit( + [&legendObj, &canvas, &bounds](int, const auto &legend) + { + if (legend.value) + legendObj.draw(canvas, + bounds, + Gen::Options::toChannel(*legend.value), + legend.weight); + }); +} + template -void DrawChart::drawHeading(const MemberGetter &&getter) +void DrawChart::drawHeading(Gfx::ICanvas &canvas, + const Layout &layout, + const MemberGetter &&getter) const { getter(getOptions()) .visit( [&layout = getter(layout), &style = getter(rootStyle), &event = getter(rootEvents.draw), + &canvas, this](int, const auto &weighted) { if (weighted.value.has_value()) { - DrawLabel(*this, + DrawLabel{{*this}}.draw(canvas, Geom::TransformedRect::fromRect(layout), *weighted.value, style, @@ -32,61 +68,67 @@ void DrawChart::drawHeading(const MemberGetter &&getter) }); } -void DrawChart::draw() +void DrawChart::drawMarkerInfo(Gfx::ICanvas &canvas, + const Geom::Rect &bounds) const +{ + DrawMarkerInfo{{*this}}.draw(canvas, bounds); +} + +void DrawChart::drawLogo(Gfx::ICanvas &canvas, + const Geom::Rect &bounds) const { + if (auto logoElement = Events::Targets::logo(); + rootEvents.draw.logo->invoke( + Events::OnRectDrawEvent(*logoElement, {bounds, false}))) { + + Logo(canvas).draw(bounds.pos, + bounds.width(), + *rootStyle.logo.filter); + + renderedChart.emplace(Geom::TransformedRect::fromRect(bounds), + std::move(logoElement)); + } +} + +void DrawChart::draw(Gfx::ICanvas &canvas, const Layout &layout) const +{ + Painter &painter = *static_cast(canvas.getPainter()); + painter.setCoordSys(coordSys); + if (plot && rootEvents.draw.begin->invoke()) { - DrawBackground(*this, - layout.boundary.outline(Geom::Size::Square(1)), - rootStyle, - rootEvents.draw.background, - Events::Targets::root()); + drawBackground(canvas, + layout.boundary.outline(Geom::Size::Square(1))); - DrawPlot{*this}; + drawPlot(canvas, painter, layout.plot); - getOptions().legend.visit( - [this](int, const auto &legend) - { - if (legend.value) - DrawLegend(*this, - Gen::Options::toChannel(*legend.value), - legend.weight); - }); + drawLegend(canvas, layout.legend); - drawHeading<&Events::Targets::chartTitle>( + drawHeading<&Events::Targets::chartTitle>(canvas, + layout, [](auto &obj) -> decltype((obj.title)) { return (obj.title); }); - drawHeading<&Events::Targets::chartSubtitle>( + drawHeading<&Events::Targets::chartSubtitle>(canvas, + layout, [](auto &obj) -> decltype((obj.subtitle)) { return (obj.subtitle); }); - drawHeading<&Events::Targets::chartCaption>( + drawHeading<&Events::Targets::chartCaption>(canvas, + layout, [](auto &obj) -> decltype((obj.caption)) { return (obj.caption); }); - DrawMarkerInfo(layout, canvas, *plot); + drawMarkerInfo(canvas, layout.boundary); } - if (auto logoElement = Events::Targets::logo(); - rootEvents.draw.logo->invoke( - Events::OnRectDrawEvent(*logoElement, - {layout.logo, false}))) { - - Logo(canvas).draw(layout.logo.pos, - layout.logo.width(), - *rootStyle.logo.filter); - - renderedChart.emplace( - Geom::TransformedRect::fromRect(layout.logo), - std::move(logoElement)); - } + drawLogo(canvas, layout.logo); rootEvents.draw.complete->invoke(); } diff --git a/src/chart/rendering/drawchart.h b/src/chart/rendering/drawchart.h index 3f550241a..609b08643 100644 --- a/src/chart/rendering/drawchart.h +++ b/src/chart/rendering/drawchart.h @@ -9,11 +9,29 @@ namespace Vizzu::Draw class DrawChart : public DrawingContext { + void drawBackground(Gfx::ICanvas &canvas, + const Geom::Rect &bounds) const; + + void drawPlot(Gfx::ICanvas &canvas, + Painter &painter, + const Geom::Rect &plotRect) const; + + void drawLegend(Gfx::ICanvas &canvas, + const Geom::Rect &bounds) const; + template - void drawHeading(const MemberGetter &&getter); + void drawHeading(Gfx::ICanvas &canvas, + const Layout &layout, + const MemberGetter &&getter) const; + + void drawMarkerInfo(Gfx::ICanvas &canvas, + const Geom::Rect &bounds) const; + + void drawLogo(Gfx::ICanvas &canvas, + const Geom::Rect &bounds) const; public: - void draw(); + void draw(Gfx::ICanvas &canvas, const Layout &layout) const; }; } diff --git a/src/chart/rendering/drawguides.cpp b/src/chart/rendering/drawguides.cpp index b0143fd27..1c51dd3b3 100644 --- a/src/chart/rendering/drawguides.cpp +++ b/src/chart/rendering/drawguides.cpp @@ -3,8 +3,7 @@ namespace Vizzu::Draw { -DrawGuides::DrawGuides(const DrawingContext &context) : - DrawingContext(context) +void DrawGuides::draw() { draw(true); draw(false); diff --git a/src/chart/rendering/drawguides.h b/src/chart/rendering/drawguides.h index 7b0a4f1ea..5a9f77704 100644 --- a/src/chart/rendering/drawguides.h +++ b/src/chart/rendering/drawguides.h @@ -6,10 +6,13 @@ namespace Vizzu::Draw { -class DrawGuides : private DrawingContext +class DrawGuides : public DrawingContext { public: - explicit DrawGuides(const DrawingContext &context); + void draw(); + + Gfx::ICanvas &canvas; + Painter &painter; private: void draw(bool horizontal); diff --git a/src/chart/rendering/drawingcontext.h b/src/chart/rendering/drawingcontext.h index 96f0f60d0..0a6236cb3 100644 --- a/src/chart/rendering/drawingcontext.h +++ b/src/chart/rendering/drawingcontext.h @@ -14,56 +14,18 @@ namespace Vizzu::Draw { -class DrawingContext +struct DrawingContext { -public: - DrawingContext(Gfx::ICanvas &canvas, - const Layout &layout, - const Events &events, - const std::shared_ptr &plot, - const Styles::Chart &styles, - RenderedChart &renderedChart) : - plot(plot), - coordSys(renderedChart.getCoordSys()), - canvas(canvas), - painter(*static_cast(canvas.getPainter())), - rootStyle(styles), - rootEvents(events), - layout(layout), - renderedChart(renderedChart) - { - if (plot) { - auto plotArea = styles.plot.contentRect(layout.plot, - styles.calculatedSize()); - renderedChart = - RenderedChart{{plotArea, - getOptions().angle, - getOptions().coordSystem, - plot->keepAspectRatio}, - plot}; - } - else { - renderedChart = RenderedChart{ - {layout.plotArea, - 0.0, - ::Anim::Interpolated{ - Gen::CoordSystem::cartesian}, - Math::FuzzyBool()}, - plot}; - } - painter.setCoordSys(coordSys); - } - const std::shared_ptr &plot; + RenderedChart &renderedChart; const CoordinateSystem &coordSys; - Gfx::ICanvas &canvas; - Painter &painter; const Styles::Chart &rootStyle; const Events &rootEvents; - const Layout &layout; - RenderedChart &renderedChart; - const Gen::Options &getOptions() { return *plot->getOptions(); } + const Gen::Options &getOptions() const + { + return *plot->getOptions(); + } }; } diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index fb04d2c94..507797c7a 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -8,10 +8,6 @@ namespace Vizzu::Draw { -DrawInterlacing::DrawInterlacing(const DrawingContext &context) : - DrawingContext(context) -{} - void DrawInterlacing::drawGeometries() { draw(true, false); @@ -287,7 +283,9 @@ void DrawInterlacing::drawDataLabel( posDir = posDir.extend(sign); - OrientedLabelRenderer labelRenderer(*this); + OrientedLabelRenderer labelRenderer{{*this}, + canvas, + painter}; auto label = labelRenderer.create(str, posDir, labelStyle, 0); labelRenderer.render(label, diff --git a/src/chart/rendering/drawinterlacing.h b/src/chart/rendering/drawinterlacing.h index 708c717b8..2fc09f2ca 100644 --- a/src/chart/rendering/drawinterlacing.h +++ b/src/chart/rendering/drawinterlacing.h @@ -6,14 +6,15 @@ namespace Vizzu::Draw { -class DrawInterlacing : private DrawingContext +class DrawInterlacing : public DrawingContext { public: - explicit DrawInterlacing(const DrawingContext &context); - void drawGeometries(); void drawTexts(); + Gfx::ICanvas &canvas; + Painter &painter; + private: void draw(bool horizontal, bool text); diff --git a/src/chart/rendering/drawlabel.cpp b/src/chart/rendering/drawlabel.cpp index f2a26250b..67fb2ff31 100644 --- a/src/chart/rendering/drawlabel.cpp +++ b/src/chart/rendering/drawlabel.cpp @@ -3,16 +3,13 @@ namespace Vizzu::Draw { -DrawLabel::DrawLabel(const DrawingContext &context, +void DrawLabel::draw(Gfx::ICanvas &canvas, const Geom::TransformedRect &rect, const std::string &text, const Styles::Label &style, const Util::EventDispatcher::event_ptr &onDraw, std::unique_ptr eventTarget, - Options options) : - DrawingContext(context), - style(style), - onDraw(onDraw) + Options options) const { auto relRect = Geom::Rect{Geom::Point(), rect.size}; @@ -27,7 +24,8 @@ DrawLabel::DrawLabel(const DrawingContext &context, canvas.save(); - contentRect = style.contentRect(relRect, style.calculatedSize()); + auto contentRect = + style.contentRect(relRect, style.calculatedSize()); canvas.setFont(Gfx::Font{style}); if (options.setColor) @@ -36,7 +34,7 @@ DrawLabel::DrawLabel(const DrawingContext &context, auto textSize = canvas.textBoundary(text); auto alignSize = textSize; alignSize.x = std::min(alignSize.x, contentRect.size.x); - auto textRect = alignText(alignSize); + auto textRect = alignText(contentRect, style, alignSize); textRect.size = textSize; auto transform = @@ -50,7 +48,7 @@ DrawLabel::DrawLabel(const DrawingContext &context, trRect.transform = transform; trRect.size = textRect.size; - if (this->onDraw->invoke( + if (onDraw->invoke( Events::OnTextDrawEvent(*eventTarget, trRect, text))) { canvas.transform(transform); @@ -73,14 +71,16 @@ double DrawLabel::getHeight(const Styles::Label &style, + textHeight; } -Geom::Rect DrawLabel::alignText(const Geom::Size &textSize) +Geom::Rect DrawLabel::alignText(const Geom::Rect &contentRect, + const Styles::Label &style, + const Geom::Size &textSize) const { Geom::Rect res; res.size = textSize; res.pos = contentRect.pos; res.pos.x = style.textAlign->combine( - [this, &textSize](int, + [&contentRect, &textSize](int, const Styles::Text::TextAlign &align) -> double { switch (align) { diff --git a/src/chart/rendering/drawlabel.h b/src/chart/rendering/drawlabel.h index 876ce359f..5782650c3 100644 --- a/src/chart/rendering/drawlabel.h +++ b/src/chart/rendering/drawlabel.h @@ -28,22 +28,21 @@ class DrawLabel : public DrawingContext bool flip; }; - DrawLabel(const DrawingContext &context, + void draw(Gfx::ICanvas &canvas, const Geom::TransformedRect &rect, const std::string &text, const Styles::Label &style, const Util::EventDispatcher::event_ptr &onDraw, std::unique_ptr eventTarget, - Options options = Options()); + Options options = Options()) const; static double getHeight(const Styles::Label &style, Gfx::ICanvas &canvas); private: - Geom::Rect contentRect; - const Styles::Label &style; - const Util::EventDispatcher::event_ptr &onDraw; - Geom::Rect alignText(const Geom::Size &textSize); + Geom::Rect alignText(const Geom::Rect &contentRect, + const Styles::Label &style, + const Geom::Size &textSize) const; }; } diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index 90cf1fb0c..128557d5a 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -8,210 +8,225 @@ namespace Vizzu::Draw { -DrawLegend::DrawLegend(const DrawingContext &context, +void DrawLegend::draw(Gfx::ICanvas &canvas, + const Geom::Rect &legendLayout, Gen::ChannelId channelType, - double weight) : - DrawingContext(context), - colorBuilder(context.rootStyle.plot.marker.lightnessRange(), - *context.rootStyle.plot.marker.colorPalette, - *context.rootStyle.plot.marker.colorGradient), - events(context.rootEvents.draw.legend), - style(context.rootStyle.legend), - type(channelType), - weight(weight), - itemHeight(DrawLabel::getHeight(style.label, canvas)), - titleHeight(DrawLabel::getHeight(style.title, canvas)) + double weight) const { - - contentRect = style.contentRect(layout.legend, - context.rootStyle.calculatedSize()); - - DrawBackground(*this, - layout.legend, + auto contentRect = + style.contentRect(legendLayout, rootStyle.calculatedSize()); + + auto &&info = Info{ + .canvas = canvas, + .contentRect = contentRect, + .type = channelType, + .weight = weight, + .itemHeight = DrawLabel::getHeight(style.label, canvas), + .titleHeight = DrawLabel::getHeight(style.title, canvas), + .markerSize = style.marker.size->get(contentRect.size.y, + style.label.calculatedSize()), + .measure = plot->measureAxises.at(channelType), + .dimension = plot->dimensionAxises.at(channelType), + }; + + DrawBackground{{*this}}.draw(canvas, + legendLayout, style, events.background, Events::Targets::legend(channelType)); - if (static_cast(type) - < std::size(plot->measureAxises.axises)) { - canvas.save(); - canvas.setClipRect(contentRect); - - const auto measureAxis = plot->measureAxises.at(type); - const auto dimensionAxis = plot->dimensionAxises.at(type); - - const auto measureEnabled = - measureAxis.enabled.calculate(); + canvas.save(); + canvas.setClipRect(contentRect); - drawTitle(plot->commonAxises.at(type).title, - dimensionAxis.enabled ? 1.0 : measureEnabled); + drawTitle(info); - if (dimensionAxis.enabled) drawDimension(dimensionAxis); + drawDimension(info); - if (measureEnabled > 0) drawMeasure(measureAxis); + drawMeasure(info); - canvas.restore(); - } + canvas.restore(); } -void DrawLegend::drawTitle(const ::Anim::String &title, double mul) +void DrawLegend::drawTitle(const Info &info) const { - auto rect = contentRect; - rect.size.y += titleHeight; - title.visit( - [this, &rect, &mul](int, const auto &title) + auto rect = info.contentRect; + rect.size.y += info.titleHeight; + plot->commonAxises.at(info.type).title.visit( + [this, + &info, + &rect, + mul = std::max(info.measureEnabled, + info.dimensionEnabled)](int, const auto &title) { - DrawLabel(*this, + if (title.weight <= 0) return; + + DrawLabel{{*this}}.draw(info.canvas, Geom::TransformedRect::fromRect(rect), title.value, style.title, events.title, - Events::Targets::legendTitle(title.value, type), + Events::Targets::legendTitle(title.value, info.type), DrawLabel::Options(true, - title.weight * weight * mul)); + title.weight * info.weight * mul)); }); } -void DrawLegend::drawDimension(const Gen::DimensionAxis &axis) +void DrawLegend::drawDimension(const Info &info) const { - enabled = static_cast(axis.enabled); - - for (const auto &value : axis) { - if (value.second.weight > 0) { - auto itemRect = getItemRect(value.second.range.getMin()); - if (itemRect.y().getMax() < contentRect.y().getMax()) { - auto alpha = value.second.weight * weight * enabled; - auto markerColor = - colorBuilder.render(value.second.colorBase) - * alpha; - drawMarker(markerColor, getMarkerRect(itemRect)); - - DrawLabel(*this, - getLabelRect(itemRect), - value.second.label, - style.label, - events.label, - Events::Targets::legendLabel(value.second.label, - type), - DrawLabel::Options(true, alpha)); - } - } + if (!info.dimensionEnabled) return; + + auto label = DrawLabel{{*this}}; + for (const auto &value : info.dimension) { + if (value.second.weight <= 0) continue; + + auto itemRect = + getItemRect(info, value.second.range.getMin()); + + if (itemRect.y().getMax() >= info.contentRect.y().getMax()) + continue; + + auto alpha = value.second.weight * info.weight; + + drawMarker(info, + colorBuilder.render(value.second.colorBase) * alpha, + getMarkerRect(info, itemRect)); + + label.draw(info.canvas, + getLabelRect(info, itemRect), + value.second.label, + style.label, + events.label, + Events::Targets::legendLabel(value.second.label, + info.type), + DrawLabel::Options(true, alpha)); } } -Geom::Rect DrawLegend::getItemRect(double index) const +Geom::Rect DrawLegend::getItemRect(const Info &info, + double index) const { - Geom::Rect res = contentRect; - res.pos.y += titleHeight + index * itemHeight; - res.size.y = itemHeight; + Geom::Rect res = info.contentRect; + res.pos.y += info.titleHeight + index * info.itemHeight; + res.size.y = info.itemHeight; if (res.size.x < 0) res.size.x = 0; return res; } -Geom::Rect DrawLegend::getMarkerRect(const Geom::Rect &itemRect) const +Geom::Rect DrawLegend::getMarkerRect(const Info &info, + const Geom::Rect &itemRect) const { - auto markerSize = style.marker.size->get(contentRect.size.y, - style.label.calculatedSize()); Geom::Rect res = itemRect; - res.pos.y += itemHeight / 2.0 - markerSize / 2.0; - res.size = Geom::Size::Square(markerSize); + res.pos.y += info.itemHeight / 2.0 - info.markerSize / 2.0; + res.size = Geom::Size::Square(info.markerSize); return res; } -Geom::TransformedRect DrawLegend::getLabelRect( +Geom::TransformedRect DrawLegend::getLabelRect(const Info &info, const Geom::Rect &itemRect) const { - auto markerSize = style.marker.size->get(contentRect.size.y, - style.label.calculatedSize()); Geom::Rect res = itemRect; - res.pos.x += markerSize; - res.size.x -= std::max(0.0, res.size.x - markerSize); + res.pos.x += info.markerSize; + res.size.x -= std::max(0.0, res.size.x - info.markerSize); return Geom::TransformedRect::fromRect(res); } -void DrawLegend::drawMarker(const Gfx::Color &color, - const Geom::Rect &rect) +void DrawLegend::drawMarker(const Info &info, + const Gfx::Color &color, + const Geom::Rect &rect) const { - canvas.save(); + info.canvas.save(); - canvas.setBrushColor(color); - canvas.setLineColor(color); - canvas.setLineWidth(0); + info.canvas.setBrushColor(color); + info.canvas.setLineColor(color); + info.canvas.setLineWidth(0); auto radius = rootStyle.legend.marker.type->factor( Styles::Legend::Marker::Type::circle) * rect.size.minSize() / 2.0; - auto markerElement = Events::Targets::legendMarker(type); + auto markerElement = Events::Targets::legendMarker(info.type); if (events.marker->invoke( Events::OnRectDrawEvent(*markerElement, {rect, false}))) { - Gfx::Draw::RoundedRect(canvas, rect, radius); + Gfx::Draw::RoundedRect(info.canvas, rect, radius); renderedChart.emplace(Geom::TransformedRect::fromRect(rect), std::move(markerElement)); } - canvas.restore(); + info.canvas.restore(); } -void DrawLegend::drawMeasure(const Gen::MeasureAxis &axis) +void DrawLegend::drawMeasure(const Info &info) const { - enabled = axis.enabled.calculate(); + if (info.measureEnabled <= 0) return; - extremaLabel(axis.range.getMax(), 0); - extremaLabel(axis.range.getMin(), 5); + extremaLabel(info, info.measure.range.getMax(), 0); + extremaLabel(info, info.measure.range.getMin(), 5); - auto bar = getBarRect(); + auto bar = getBarRect(info); using ST = Gen::ChannelId; - switch (type) { - case ST::color: colorBar(bar); break; - case ST::lightness: lightnessBar(bar); break; - case ST::size: sizeBar(bar); break; + switch (info.type) { + case ST::color: colorBar(info, bar); break; + case ST::lightness: lightnessBar(info, bar); break; + case ST::size: sizeBar(info, bar); break; default: break; } } -void DrawLegend::extremaLabel(double value, int pos) +void DrawLegend::extremaLabel(const Info &info, + double value, + int pos) const { auto text = Text::SmartString::fromNumber(value, *style.label.numberFormat, static_cast(*style.label.maxFractionDigits), *style.label.numberScale); - auto itemRect = getItemRect(pos); - DrawLabel(*this, - getLabelRect(itemRect), + DrawLabel{{*this}}.draw(info.canvas, + getLabelRect(info, getItemRect(info, pos)), text, style.label, events.label, - Events::Targets::legendLabel(text, type), - DrawLabel::Options(true, weight * enabled)); + Events::Targets::legendLabel(text, info.type), + DrawLabel::Options(true, info.measureWeight)); } -void DrawLegend::colorBar(const Geom::Rect &rect) +Geom::Rect DrawLegend::getBarRect(const Info &info) const { - canvas.save(); + Geom::Rect res = info.contentRect; + res.pos.y += info.titleHeight + info.itemHeight / 2.0; + res.size.y = 5 * info.itemHeight; + res.size.x = info.markerSize; + return res; +} - canvas.setBrushGradient(rect.leftSide(), +void DrawLegend::colorBar(const Info &info, + const Geom::Rect &rect) const +{ + info.canvas.save(); + + info.canvas.setBrushGradient(rect.leftSide(), Gfx::ColorGradient{*rootStyle.plot.marker.colorGradient - * (weight * enabled)}); - canvas.setLineColor(Gfx::Color::Transparent()); - canvas.setLineWidth(0); + * info.measureWeight}); + info.canvas.setLineColor(Gfx::Color::Transparent()); + info.canvas.setLineWidth(0); - auto barElement = Events::Targets::legendBar(type); + auto barElement = + Events::Targets::legendBar(Gen::ChannelId::color); if (events.bar->invoke( Events::OnRectDrawEvent(*barElement, {rect, false}))) { - canvas.rectangle(rect); + info.canvas.rectangle(rect); renderedChart.emplace(Geom::TransformedRect::fromRect(rect), std::move(barElement)); } - canvas.restore(); + info.canvas.restore(); } -void DrawLegend::lightnessBar(const Geom::Rect &rect) +void DrawLegend::lightnessBar(const Info &info, + const Geom::Rect &rect) const { Gfx::ColorGradient gradient; @@ -222,57 +237,50 @@ void DrawLegend::lightnessBar(const Geom::Rect &rect) gradient.stops.emplace_back(1.0, colorBuilder.render(Gen::ColorBase(0U, 1.0))); - canvas.save(); + info.canvas.save(); - canvas.setBrushGradient(rect.leftSide(), - Gfx::ColorGradient{gradient * (weight * enabled)}); - canvas.setLineColor(Gfx::Color::Transparent()); - canvas.setLineWidth(0); + info.canvas.setBrushGradient(rect.leftSide(), + Gfx::ColorGradient{gradient * info.measureWeight}); + info.canvas.setLineColor(Gfx::Color::Transparent()); + info.canvas.setLineWidth(0); - auto barElement = Events::Targets::legendBar(type); + auto barElement = + Events::Targets::legendBar(Gen::ChannelId::lightness); if (events.bar->invoke( Events::OnRectDrawEvent(*barElement, {rect, false}))) { - canvas.rectangle(rect); + info.canvas.rectangle(rect); renderedChart.emplace(Geom::TransformedRect::fromRect(rect), std::move(barElement)); } - canvas.restore(); + info.canvas.restore(); } -void DrawLegend::sizeBar(const Geom::Rect &rect) +void DrawLegend::sizeBar(const Info &info, + const Geom::Rect &rect) const { - canvas.save(); + info.canvas.save(); - canvas.setBrushColor(Gfx::Color::Gray(0.8) * (weight * enabled)); - canvas.setLineWidth(0); + info.canvas.setBrushColor( + Gfx::Color::Gray(0.8) * info.measureWeight); + info.canvas.setLineWidth(0); - auto barElement = Events::Targets::legendBar(type); + auto barElement = + Events::Targets::legendBar(Gen::ChannelId::size); if (events.bar->invoke( Events::OnRectDrawEvent(*barElement, {rect, false}))) { - canvas.beginPolygon(); - canvas.addPoint(rect.bottomLeft()); - canvas.addPoint(rect.bottomRight()); - canvas.addPoint(rect.topSide().center()); - canvas.endPolygon(); + info.canvas.beginPolygon(); + info.canvas.addPoint(rect.bottomLeft()); + info.canvas.addPoint(rect.bottomRight()); + info.canvas.addPoint(rect.topSide().center()); + info.canvas.endPolygon(); renderedChart.emplace(Geom::TransformedRect::fromRect(rect), std::move(barElement)); } - canvas.restore(); -} - -Geom::Rect DrawLegend::getBarRect() const -{ - auto markerSize = style.marker.size->get(contentRect.size.y, - style.label.calculatedSize()); - Geom::Rect res = contentRect; - res.pos.y += titleHeight + itemHeight / 2.0; - res.size.y = 5 * itemHeight; - res.size.x = markerSize; - return res; + info.canvas.restore(); } } \ No newline at end of file diff --git a/src/chart/rendering/drawlegend.h b/src/chart/rendering/drawlegend.h index 06dc0b554..9f0831eb9 100644 --- a/src/chart/rendering/drawlegend.h +++ b/src/chart/rendering/drawlegend.h @@ -10,37 +10,56 @@ namespace Vizzu::Draw class DrawLegend : public DrawingContext { public: - DrawLegend(const DrawingContext &context, + void draw(Gfx::ICanvas &canvas, + const Geom::Rect &legendLayout, Gen::ChannelId channelType, - double weight); + double weight) const; + + const Events::DrawEvents::Legend &events = rootEvents.draw.legend; + const Styles::Legend &style = rootStyle.legend; + + const ColorBuilder colorBuilder = { + rootStyle.plot.marker.lightnessRange(), + *rootStyle.plot.marker.colorPalette, + *rootStyle.plot.marker.colorGradient}; private: - ColorBuilder colorBuilder; - Geom::Rect contentRect; - const Events::DrawEvents::Legend &events; - const Styles::Legend &style; - Gen::ChannelId type; - double weight; - double enabled{}; - double itemHeight; - double titleHeight; - - void drawDimension(const Gen::DimensionAxis &axis); - void drawMeasure(const Gen::MeasureAxis &axis); - void drawMarker(const Gfx::Color &color, const Geom::Rect &rect); - [[nodiscard]] Geom::Rect getItemRect(double index) const; - [[nodiscard]] Geom::Rect getMarkerRect( + struct Info + { + Gfx::ICanvas &canvas; + Geom::Rect contentRect; + Gen::ChannelId type; + double weight; + double itemHeight; + double titleHeight; + double markerSize; + const Gen::MeasureAxis &measure; + const Gen::DimensionAxis &dimension; + double measureEnabled = measure.enabled.calculate(); + bool dimensionEnabled = dimension.enabled; + double measureWeight = weight * measureEnabled; + }; + + void drawTitle(const Info &info) const; + + void drawDimension(const Info &info) const; + void drawMeasure(const Info &info) const; + + void drawMarker(const Info &info, + const Gfx::Color &color, + const Geom::Rect &rect) const; + [[nodiscard]] Geom::Rect getItemRect(const Info &info, + double index) const; + [[nodiscard]] Geom::Rect getMarkerRect(const Info &info, const Geom::Rect &itemRect) const; - [[nodiscard]] Geom::TransformedRect getLabelRect( + [[nodiscard]] Geom::TransformedRect getLabelRect(const Info &info, const Geom::Rect &itemRect) const; - [[nodiscard]] Geom::Rect getBarRect() const; - - void drawTitle(const ::Anim::String &title, double mul); + [[nodiscard]] Geom::Rect getBarRect(const Info &info) const; - void extremaLabel(double value, int pos); - void colorBar(const Geom::Rect &rect); - void lightnessBar(const Geom::Rect &rect); - void sizeBar(const Geom::Rect &rect); + void extremaLabel(const Info &info, double value, int pos) const; + void colorBar(const Info &info, const Geom::Rect &rect) const; + void lightnessBar(const Info &info, const Geom::Rect &rect) const; + void sizeBar(const Info &info, const Geom::Rect &rect) const; }; } diff --git a/src/chart/rendering/drawmarkerinfo.cpp b/src/chart/rendering/drawmarkerinfo.cpp index 6e0fd2c4a..31f462185 100644 --- a/src/chart/rendering/drawmarkerinfo.cpp +++ b/src/chart/rendering/drawmarkerinfo.cpp @@ -7,20 +7,23 @@ namespace Vizzu::Draw { -DrawMarkerInfo::MarkerDC::MarkerDC(DrawMarkerInfo &parent, +DrawMarkerInfo::MarkerDC::MarkerDC(const DrawMarkerInfo &parent, + Gfx::ICanvas &canvas, + const Geom::Rect &boundary, Content &content) : - parent(parent) + parent(parent), + canvas(canvas) { loadMarker(content); fillTextBox(content); calculateLayout(); - if (bubble.pos.x + bubble.size.x > parent.layout.boundary.size.x) + if (bubble.pos.x + bubble.size.x > boundary.size.x) calculateLayout(Geom::Point{-1, 0}); - if (bubble.pos.x <= parent.layout.boundary.pos.x) + if (bubble.pos.x <= boundary.pos.x) calculateLayout(Geom::Point{1, 0}); - if (bubble.pos.y + bubble.size.y > parent.layout.boundary.size.y) + if (bubble.pos.y + bubble.size.y > boundary.size.y) calculateLayout(Geom::Point{0, -1}); - if (bubble.pos.y <= parent.layout.boundary.pos.y) + if (bubble.pos.y <= boundary.pos.y) calculateLayout(Geom::Point{0, 1}); } @@ -32,29 +35,29 @@ void DrawMarkerInfo::MarkerDC::draw(double weight) color2.alpha = weight; color3.alpha *= weight; auto offset = *parent.style.dropShadow; - parent.canvas.setLineWidth(*parent.style.borderWidth); - parent.canvas.setLineColor(color2); - parent.canvas.setBrushColor(color1); - parent.canvas.beginDropShadow(); - parent.canvas.setDropShadowBlur(2.0 * offset); - parent.canvas.setDropShadowColor(color3); - parent.canvas.setDropShadowOffset(Geom::Point{0, offset}); - Gfx::Draw::InfoBubble{parent.canvas, + canvas.setLineWidth(*parent.style.borderWidth); + canvas.setLineColor(color2); + canvas.setBrushColor(color1); + canvas.beginDropShadow(); + canvas.setDropShadowBlur(2.0 * offset); + canvas.setDropShadowColor(color3); + canvas.setDropShadowOffset(Geom::Point{0, offset}); + Gfx::Draw::InfoBubble{canvas, bubble, *parent.style.borderRadius, *parent.style.arrowSize, arrow}; - parent.canvas.endDropShadow(); - Gfx::Draw::InfoBubble{parent.canvas, + canvas.endDropShadow(); + Gfx::Draw::InfoBubble{canvas, bubble, *parent.style.borderRadius, *parent.style.arrowSize, arrow}; - parent.canvas.save(); - parent.canvas.setClipRect(bubble); + canvas.save(); + canvas.setClipRect(bubble); text << bubble.pos; - text.draw(parent.canvas, weight); - parent.canvas.restore(); + text.draw(canvas, weight); + canvas.restore(); } void DrawMarkerInfo::MarkerDC::interpolate(double weight1, @@ -70,19 +73,19 @@ void DrawMarkerInfo::MarkerDC::interpolate(double weight1, void DrawMarkerInfo::MarkerDC::loadMarker(Content &cnt) { const auto &marker = - parent.plot.getMarkers()[cnt.markerId.value()]; + parent.plot->getMarkers()[cnt.markerId.value()]; auto blendedMarker = Draw::AbstractMarker::createInterpolated(marker, - *parent.plot.getOptions(), - parent.plot.getStyle(), - *parent.coordSystem, - parent.plot.getMarkers(), + parent.getOptions(), + parent.rootStyle, + parent.coordSys, + parent.plot->getMarkers(), 0); auto line = blendedMarker.getLabelPos(Styles::MarkerLabel::Position::top, - *parent.coordSystem); + parent.coordSys); dataPoint = line.begin; labelDir = line.end - line.begin; } @@ -147,7 +150,7 @@ void DrawMarkerInfo::MarkerDC::fillTextBox(Content &cnt) void DrawMarkerInfo::MarkerDC::calculateLayout(Geom::Point hint) { - bubble.size = text.measure(parent.canvas); + bubble.size = text.measure(canvas); if (hint.isNull()) { // orientation: horizontal, right if ((labelDir.x > 0 && labelDir.y > 0 @@ -196,58 +199,62 @@ void DrawMarkerInfo::MarkerDC::calculateLayout(Geom::Point hint) arrow.y - bubble.size.y - *parent.style.arrowSize; } -DrawMarkerInfo::DrawMarkerInfo(const Layout &layout, - Gfx::ICanvas &canvas, - const Gen::Plot &plot) : - layout(layout), - canvas(canvas), - plot(plot), - style(plot.getStyle().tooltip) +void DrawMarkerInfo::draw(Gfx::ICanvas &canvas, + const Geom::Rect &boundary) const { - coordSystem.emplace(layout.plotArea, - plot.getOptions()->angle, - plot.getOptions()->coordSystem, - plot.keepAspectRatio); - for (const auto &info : plot.getMarkersInfo()) { + for (const auto &info : plot->getMarkersInfo()) { if (info.second.count == 0) continue; auto weight1 = info.second.values[0].weight; const auto &cnt1 = info.second.values[0].value; if (info.second.count == 1 && cnt1) { - MarkerDC dc(*this, cnt1); + MarkerDC dc(*this, canvas, boundary, cnt1); dc.draw(weight1); } else if (info.second.count == 2) { auto weight2 = info.second.values[1].weight; const auto &cnt2 = info.second.values[1].value; if (!cnt1 && cnt2) - fadeInMarkerInfo(cnt2, weight2); + fadeInMarkerInfo(canvas, boundary, cnt2, weight2); else if (cnt1 && !cnt2) - fadeOutMarkerInfo(cnt1, weight1); + fadeOutMarkerInfo(canvas, boundary, cnt1, weight1); else if (cnt1 && cnt2) - moveMarkerInfo(cnt1, weight1, cnt2, weight2); + moveMarkerInfo(canvas, + boundary, + cnt1, + weight1, + cnt2, + weight2); } } } -void DrawMarkerInfo::fadeInMarkerInfo(Content &cnt, double weight) +void DrawMarkerInfo::fadeInMarkerInfo(Gfx::ICanvas &canvas, + const Geom::Rect &boundary, + Content &cnt, + double weight) const { - MarkerDC dc(*this, cnt); + MarkerDC dc(*this, canvas, boundary, cnt); dc.draw(weight); } -void DrawMarkerInfo::fadeOutMarkerInfo(Content &cnt, double weight) +void DrawMarkerInfo::fadeOutMarkerInfo(Gfx::ICanvas &canvas, + const Geom::Rect &boundary, + Content &cnt, + double weight) const { - MarkerDC dc(*this, cnt); + MarkerDC dc(*this, canvas, boundary, cnt); dc.draw(weight); } -void DrawMarkerInfo::moveMarkerInfo(Content &cnt1, +void DrawMarkerInfo::moveMarkerInfo(Gfx::ICanvas &canvas, + const Geom::Rect &boundary, + Content &cnt1, double weight1, Content &cnt2, - double weight2) + double weight2) const { - MarkerDC dc1(*this, cnt1); - MarkerDC dc2(*this, cnt2); + MarkerDC dc1(*this, canvas, boundary, cnt1); + MarkerDC dc2(*this, canvas, boundary, cnt2); dc1.interpolate(weight1, dc2, weight2); dc1.draw(weight1); dc2.draw(weight2); diff --git a/src/chart/rendering/drawmarkerinfo.h b/src/chart/rendering/drawmarkerinfo.h index 50e5a9b35..adb7d3d3f 100644 --- a/src/chart/rendering/drawmarkerinfo.h +++ b/src/chart/rendering/drawmarkerinfo.h @@ -8,10 +8,12 @@ #include "chart/main/style.h" #include "painter/coordinatesystem.h" +#include "drawingcontext.h" + namespace Vizzu::Draw { -class DrawMarkerInfo +class DrawMarkerInfo : public DrawingContext { friend class MarkerDC; @@ -22,13 +24,17 @@ class DrawMarkerInfo class MarkerDC { public: - MarkerDC(DrawMarkerInfo &parent, Content &content); + MarkerDC(const DrawMarkerInfo &parent, + Gfx::ICanvas &canvas, + const Geom::Rect &boundary, + Content &content); void draw(double weight); void interpolate(double weight1, MarkerDC &other, double weight2); protected: - DrawMarkerInfo &parent; + const DrawMarkerInfo &parent; + Gfx::ICanvas &canvas; TextBox text; Geom::Point dataPoint; Geom::Point labelDir; @@ -40,23 +46,25 @@ class DrawMarkerInfo void calculateLayout(Geom::Point hint = Geom::Point{0, 0}); }; - DrawMarkerInfo(const Layout &layout, - Gfx::ICanvas &canvas, - const Gen::Plot &plot); + void draw(Gfx::ICanvas &canvas, const Geom::Rect &boundary) const; -private: - const Layout &layout; - Gfx::ICanvas &canvas; - const Gen::Plot &plot; - std::optional coordSystem; - const Styles::Tooltip &style; + const Styles::Tooltip &style = rootStyle.tooltip; - void fadeInMarkerInfo(Content &cnt, double weight); - void fadeOutMarkerInfo(Content &cnt, double weight); - void moveMarkerInfo(Content &cnt1, +private: + void fadeInMarkerInfo(Gfx::ICanvas &canvas, + const Geom::Rect &boundary, + Content &cnt, + double weight) const; + void fadeOutMarkerInfo(Gfx::ICanvas &canvas, + const Geom::Rect &boundary, + Content &cnt, + double weight) const; + void moveMarkerInfo(Gfx::ICanvas &canvas, + const Geom::Rect &boundary, + Content &cnt1, double weight1, Content &cnt2, - double weight2); + double weight2) const; }; } diff --git a/src/chart/rendering/drawplot.cpp b/src/chart/rendering/drawplot.cpp index a0123bbe7..1439d7bdc 100644 --- a/src/chart/rendering/drawplot.cpp +++ b/src/chart/rendering/drawplot.cpp @@ -9,46 +9,47 @@ namespace Vizzu::Draw { -DrawPlot::DrawPlot(const DrawingContext &context) : - DrawingContext(context) +void DrawPlot::draw(Gfx::ICanvas &canvas, + Painter &painter, + const Geom::Rect &plotRect) const { - DrawBackground(*this, - layout.plot, + DrawBackground{{*this}}.draw(canvas, + plotRect, rootStyle.plot, rootEvents.draw.plot.background, Events::Targets::plot()); - drawArea(false); + drawPlotArea(canvas, painter, false); - DrawAxes axes(*this); - axes.drawBase(); + DrawAxes axes{{*this}, canvas, painter}; + axes.drawGeometries(); auto clip = rootStyle.plot.overflow == Styles::Overflow::hidden; - if (clip) clipPlotArea(); + if (clip) { + canvas.save(); + drawPlotArea(canvas, painter, true); + } - drawMarkerGuides(); + MarkerRenderer markerRenderer{{*this}, canvas, painter}; + markerRenderer.drawLines(); - drawMarkers(); + markerRenderer.drawMarkers(); if (clip) canvas.restore(); - drawMarkerLabels(); + markerRenderer.drawLabels(); axes.drawLabels(); } -void DrawPlot::clipPlotArea() -{ - canvas.save(); - drawArea(true); -} - -void DrawPlot::drawArea(bool clip) +void DrawPlot::drawPlotArea(Gfx::ICanvas &canvas, + Painter &painter, + bool clip) const { auto areaElement = Events::Targets::area(); - auto rect = Geom::Rect{Geom::Point(), Geom::Size::Identity()}; + auto rect = Geom::Rect::Ident(); painter.setPolygonToCircleFactor(0.0); painter.setPolygonStraightFactor(0.0); painter.setResMode(ResolutionMode::High); @@ -77,34 +78,4 @@ void DrawPlot::drawArea(bool clip) } } -void DrawPlot::drawMarkerGuides() -{ - const auto &style = rootStyle.plot.marker.guides; - - if (!style.color->isTransparent() && *style.lineWidth > 0 - && static_cast(plot->anyAxisSet) > 0 - && plot->guides.hasAnyGuides()) { - canvas.setLineWidth(*style.lineWidth); - - auto origo = plot->measureAxises.origo(); - - for (const auto &marker : plot->getMarkers()) - MarkerRenderer(marker, *this).drawLines(style, origo); - - canvas.setLineWidth(0); - } -} - -void DrawPlot::drawMarkers() -{ - for (const auto &marker : plot->getMarkers()) - MarkerRenderer(marker, *this).draw(); -} - -void DrawPlot::drawMarkerLabels() -{ - for (const auto &marker : plot->getMarkers()) - MarkerRenderer(marker, *this).drawLabel(); -} - } \ No newline at end of file diff --git a/src/chart/rendering/drawplot.h b/src/chart/rendering/drawplot.h index fb4a32082..6073f9075 100644 --- a/src/chart/rendering/drawplot.h +++ b/src/chart/rendering/drawplot.h @@ -2,23 +2,24 @@ #define DRAW_PLOT_H #include "drawingcontext.h" +#include "markerrenderer.h" namespace Vizzu::Draw { class AbstractMarker; -class DrawPlot : private DrawingContext +class DrawPlot : public DrawingContext { public: - explicit DrawPlot(const DrawingContext &context); + void draw(Gfx::ICanvas &canvas, + Painter &painter, + const Geom::Rect &plotRect) const; private: - void drawArea(bool clip); - void clipPlotArea(); - void drawMarkerGuides(); - void drawMarkers(); - void drawMarkerLabels(); + void drawPlotArea(Gfx::ICanvas &canvas, + Painter &painter, + bool clip) const; }; } diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index 1ca1f5d17..eff87d687 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -13,162 +13,183 @@ namespace Vizzu::Draw { -MarkerRenderer::MarkerRenderer(const Gen::Marker &marker, - const DrawingContext &context) : - DrawingContext(context), - marker(marker) -{} - -void MarkerRenderer::drawLines(const Styles::Guide &style, - const Geom::Point &origo) +void MarkerRenderer::drawLines() const { - if (static_cast(marker.enabled) == 0) return; - - auto blended = AbstractMarker::createInterpolated(marker, - getOptions(), - rootStyle, - coordSys, - plot->getMarkers(), - 0); - - auto baseColor = - *style.color * static_cast(plot->anyAxisSet); - - if (static_cast(blended.enabled) > 0) { - if (static_cast(plot->guides.x.guidelines) > 0) { - auto lineColor = - baseColor - * static_cast(plot->guides.x.guidelines); - canvas.setLineColor(lineColor); - auto axisPoint = blended.center.xComp() + origo.yComp(); - const Geom::Line line(axisPoint, blended.center); - - auto guideElement = - Events::Targets::markerGuide(marker, false); - - if (rootEvents.draw.plot.marker.guide->invoke( - Events::OnLineDrawEvent(*guideElement, - {line, true}))) { - painter.drawLine(line); - renderedChart.emplace(Draw::Line{line, true}, - std::move(guideElement)); + const auto &style = rootStyle.plot.marker.guides; + + if (style.color->isTransparent() || *style.lineWidth <= 0 + || static_cast(plot->anyAxisSet) <= 0 + || !plot->guides.hasAnyGuides()) + return; + + canvas.setLineWidth(*style.lineWidth); + + auto origo = plot->measureAxises.origo(); + + for (auto &marker : plot->getMarkers()) { + if (static_cast(marker.enabled) == 0) return; + + auto blended = AbstractMarker::createInterpolated(marker, + getOptions(), + rootStyle, + coordSys, + plot->getMarkers(), + 0); + + auto baseColor = + *style.color * static_cast(plot->anyAxisSet); + + if (static_cast(blended.enabled) > 0) { + if (static_cast(plot->guides.x.guidelines) > 0) { + auto lineColor = + baseColor + * static_cast(plot->guides.x.guidelines); + canvas.setLineColor(lineColor); + auto axisPoint = + blended.center.xComp() + origo.yComp(); + const Geom::Line line(axisPoint, blended.center); + + auto guideElement = + Events::Targets::markerGuide(marker, false); + + if (rootEvents.draw.plot.marker.guide->invoke( + Events::OnLineDrawEvent(*guideElement, + {line, true}))) { + painter.drawLine(line); + renderedChart.emplace(Draw::Line{line, true}, + std::move(guideElement)); + } } - } - if (static_cast(plot->guides.y.guidelines) > 0) { - blended.center.x = Math::interpolate(blended.center.x, - 1.0, - getOptions().coordSystem.factor( - Gen::CoordSystem::polar)); - auto lineColor = - baseColor - * static_cast(plot->guides.y.guidelines); - canvas.setLineColor(lineColor); - auto axisPoint = blended.center.yComp() + origo.xComp(); - const Geom::Line line(blended.center, axisPoint); - - auto guideElement = - Events::Targets::markerGuide(marker, true); - - if (rootEvents.draw.plot.marker.guide->invoke( - Events::OnLineDrawEvent(*guideElement, - {line, true}))) { - painter.drawLine(line); - renderedChart.emplace(Draw::Line{line, true}, - std::move(guideElement)); + if (static_cast(plot->guides.y.guidelines) > 0) { + blended.center.x = Math::interpolate(blended.center.x, + 1.0, + getOptions().coordSystem.factor( + Gen::CoordSystem::polar)); + auto lineColor = + baseColor + * static_cast(plot->guides.y.guidelines); + canvas.setLineColor(lineColor); + auto axisPoint = + blended.center.yComp() + origo.xComp(); + const Geom::Line line(blended.center, axisPoint); + + auto guideElement = + Events::Targets::markerGuide(marker, true); + + if (rootEvents.draw.plot.marker.guide->invoke( + Events::OnLineDrawEvent(*guideElement, + {line, true}))) { + painter.drawLine(line); + renderedChart.emplace(Draw::Line{line, true}, + std::move(guideElement)); + } } } } + canvas.setLineWidth(0); } -void MarkerRenderer::draw() +void MarkerRenderer::drawMarkers() const { - if (!shouldDrawMarkerBody()) return; - - if (getOptions().geometry.contains(Gen::ShapeType::line) - && getOptions().geometry.contains(Gen::ShapeType::circle)) { - const CircleMarker circle(marker, - coordSys, - getOptions(), - rootStyle); - - draw(circle, 1, false); + for (auto &marker : plot->getMarkers()) { + if (!shouldDrawMarkerBody(marker)) return; - marker.prevMainMarkerIdx.visit( - [this](int index, auto value) - { - const ConnectingMarker line(marker, - coordSys, - getOptions(), - rootStyle, - plot->getMarkers(), - index, - Gen::ShapeType::line); - - draw(line, value.weight, true); - }); - } - else { - auto drawMarker = - [this](int index, ::Anim::Weighted value) - { - auto blended0 = AbstractMarker::createInterpolated(marker, - getOptions(), - rootStyle, + if (getOptions().geometry.contains(Gen::ShapeType::line) + && getOptions().geometry.contains( + Gen::ShapeType::circle)) { + const CircleMarker circle(marker, coordSys, - plot->getMarkers(), - index); - - auto lineFactor = getOptions().geometry.factor( - Gen::ShapeType::line); - - draw(blended0, - value.weight * (1 - lineFactor) * (1 - lineFactor), - false); - draw(blended0, value.weight * sqrt(lineFactor), true); - }; - - auto containsConnected = - getOptions().geometry.contains(Gen::ShapeType::line) - || getOptions().geometry.contains(Gen::ShapeType::area); - - auto containsSingle = - getOptions().geometry.contains(Gen::ShapeType::rectangle) - || getOptions().geometry.contains(Gen::ShapeType::circle); - - if (containsConnected) { - if (containsSingle) { - auto lineIndex = - Gen::isConnecting( - getOptions().geometry.get(0).value) - ? 0 - : 1; - - drawMarker(lineIndex, ::Anim::Weighted(0)); + getOptions(), + rootStyle); + + draw(circle, 1, false); + + marker.prevMainMarkerIdx.visit( + [this, &marker](int index, auto value) + { + const ConnectingMarker line(marker, + coordSys, + getOptions(), + rootStyle, + plot->getMarkers(), + index, + Gen::ShapeType::line); + + draw(line, value.weight, true); + }); + } + else { + auto drawMarker = [this, &marker](int index, + ::Anim::Weighted value) + { + auto blended0 = + AbstractMarker::createInterpolated(marker, + getOptions(), + rootStyle, + coordSys, + plot->getMarkers(), + index); + + auto lineFactor = + getOptions().geometry.factor( + Gen::ShapeType::line); + + draw(blended0, + value.weight * (1 - lineFactor) + * (1 - lineFactor), + false); + draw(blended0, value.weight * sqrt(lineFactor), true); + }; + + auto containsConnected = + getOptions().geometry.contains(Gen::ShapeType::line) + || getOptions().geometry.contains( + Gen::ShapeType::area); + + auto containsSingle = getOptions().geometry.contains( + Gen::ShapeType::rectangle) + || getOptions().geometry.contains( + Gen::ShapeType::circle); + + if (containsConnected) { + if (containsSingle) { + auto lineIndex = + Gen::isConnecting( + getOptions().geometry.get(0).value) + ? 0 + : 1; + + drawMarker(lineIndex, + ::Anim::Weighted(0)); + } + else + marker.prevMainMarkerIdx.visit(drawMarker); } else - marker.prevMainMarkerIdx.visit(drawMarker); + drawMarker(0, ::Anim::Weighted(0)); } - else - drawMarker(0, ::Anim::Weighted(0)); } } -void MarkerRenderer::drawLabel() +void MarkerRenderer::drawLabels() const { - if (static_cast(marker.enabled) == 0) return; + for (auto &marker : plot->getMarkers()) { + if (static_cast(marker.enabled) == 0) return; - auto blended = AbstractMarker::createInterpolated(marker, - getOptions(), - rootStyle, - coordSys, - plot->getMarkers(), - 0); + auto blended = AbstractMarker::createInterpolated(marker, + getOptions(), + rootStyle, + coordSys, + plot->getMarkers(), + 0); - drawLabel(blended, 0); - drawLabel(blended, 1); + drawLabel(blended, 0); + drawLabel(blended, 1); + } } -bool MarkerRenderer::shouldDrawMarkerBody() +bool MarkerRenderer::shouldDrawMarkerBody( + const Gen::Marker &marker) const { bool enabled = static_cast(marker.enabled) > 0; if (getOptions().geometry.factor( @@ -188,7 +209,7 @@ bool MarkerRenderer::shouldDrawMarkerBody() void MarkerRenderer::draw(const AbstractMarker &abstractMarker, double factor, - bool line) + bool line) const { if (static_cast(abstractMarker.enabled) == 0 || factor == 0) @@ -211,7 +232,8 @@ void MarkerRenderer::draw(const AbstractMarker &abstractMarker, auto boundary = abstractMarker.getBoundary(); - auto markerElement = Events::Targets::marker(marker); + auto markerElement = + Events::Targets::marker(abstractMarker.marker); if (line) { auto line = abstractMarker.getLine(); @@ -252,16 +274,17 @@ void MarkerRenderer::draw(const AbstractMarker &abstractMarker, } void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, - size_t index) + size_t index) const { if (static_cast(abstractMarker.labelEnabled) == 0) return; + const auto &marker = abstractMarker.marker; auto weight = marker.label.values[index].weight; if (weight == 0.0) return; auto color = getColor(abstractMarker, 1, true).second; - auto text = getLabelText(index); + auto text = getLabelText(marker.label, index); if (text.empty()) return; const auto &labelStyle = rootStyle.plot.marker.label; @@ -278,7 +301,7 @@ void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, auto centered = labelStyle.position->factor( Styles::MarkerLabel::Position::center); - OrientedLabelRenderer labelRenderer(*this); + OrientedLabelRenderer labelRenderer{{*this}, canvas, painter}; labelRenderer.render( labelRenderer.create(text, labelPos, labelStyle, centered), @@ -288,19 +311,21 @@ void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, Events::Targets::markerLabel(text, marker)); } -std::string MarkerRenderer::getLabelText(size_t index) const +std::string MarkerRenderer::getLabelText( + const ::Anim::Interpolated &label, + size_t index) const { const auto &labelStyle = rootStyle.plot.marker.label; - const auto &values = marker.label.values; + const auto &values = label.values; auto needsInterpolation = - marker.label.count == 2 + label.count == 2 && (values[0].value.measureId == values[1].value.measureId); std::string valueStr; if (values[index].value.hasValue()) { auto value = needsInterpolation - ? marker.label.combine( + ? label.combine( [&](int, const auto &value) { return value.value.value_or(0); @@ -348,9 +373,10 @@ std::string MarkerRenderer::getLabelText(size_t index) const std::pair MarkerRenderer::getColor( const AbstractMarker &abstractMarker, double factor, - bool label) + bool label) const { - auto selectedColor = getSelectedColor(label); + auto selectedColor = + getSelectedColor(abstractMarker.marker, label); auto borderAlpha = *rootStyle.plot.marker.borderOpacity; auto fillAlpha = *rootStyle.plot.marker.fillOpacity; @@ -389,11 +415,12 @@ std::pair MarkerRenderer::getColor( for (auto &info : markerInfo) { auto allHighlight = 0.0; info.second.visit( - [this, &highlight, &allHighlight](int, const auto &info) + [&highlight, + &allHighlight, + idx = abstractMarker.marker.idx](int, + const auto &info) { - highlight += info.value.markerId == this->marker.idx - ? 1.0 - : 0.0; + highlight += info.value.markerId == idx ? 1.0 : 0.0; if (info.value.markerId.has_value()) allHighlight += info.weight; }); @@ -407,7 +434,8 @@ std::pair MarkerRenderer::getColor( return std::make_pair(finalBorderColor, itemColor); } -Gfx::Color MarkerRenderer::getSelectedColor(bool label) +Gfx::Color MarkerRenderer::getSelectedColor(const Gen::Marker &marker, + bool label) const { const ColorBuilder colorBuilder( rootStyle.plot.marker.lightnessRange(), diff --git a/src/chart/rendering/markerrenderer.h b/src/chart/rendering/markerrenderer.h index 4406e23af..49a58d44b 100644 --- a/src/chart/rendering/markerrenderer.h +++ b/src/chart/rendering/markerrenderer.h @@ -8,32 +8,33 @@ namespace Vizzu::Draw { -class MarkerRenderer : private DrawingContext +class MarkerRenderer : public DrawingContext { public: - MarkerRenderer(const Gen::Marker &marker, - const DrawingContext &context); - void drawLines(const Styles::Guide &style, - const Geom::Point &origo); - void draw(); - void drawLabel(); + void drawLines() const; + void drawMarkers() const; + void drawLabels() const; -private: - const Gen::Marker ▮ + Gfx::ICanvas &canvas; + Painter &painter; - bool shouldDrawMarkerBody(); +private: + bool shouldDrawMarkerBody(const Gen::Marker &marker) const; std::pair getColor( const AbstractMarker &abstractMarker, double factor, - bool label = false); + bool label = false) const; void draw(const AbstractMarker &abstractMarker, double factor, - bool line); + bool line) const; void drawLabel(const AbstractMarker &abstractMarker, - size_t index); + size_t index) const; - Gfx::Color getSelectedColor(bool label); - [[nodiscard]] std::string getLabelText(size_t index) const; + Gfx::Color getSelectedColor(const Gen::Marker &marker, + bool label) const; + [[nodiscard]] std::string getLabelText( + const ::Anim::Interpolated &label, + size_t index) const; }; } diff --git a/src/chart/rendering/orientedlabel.cpp b/src/chart/rendering/orientedlabel.cpp index a5dc0383b..f4ad52a72 100644 --- a/src/chart/rendering/orientedlabel.cpp +++ b/src/chart/rendering/orientedlabel.cpp @@ -5,11 +5,6 @@ namespace Vizzu::Draw { -OrientedLabelRenderer::OrientedLabelRenderer( - const DrawingContext &context) : - DrawingContext(context) -{} - OrientedLabel OrientedLabelRenderer::create(const std::string &text, const Geom::Line &labelPos, const Styles::OrientedLabel &labelStyle, diff --git a/src/chart/rendering/orientedlabel.h b/src/chart/rendering/orientedlabel.h index 2121ebc81..6e7acc2a2 100644 --- a/src/chart/rendering/orientedlabel.h +++ b/src/chart/rendering/orientedlabel.h @@ -18,10 +18,11 @@ class OrientedLabel const std::string &text; }; -class OrientedLabelRenderer : private DrawingContext +class OrientedLabelRenderer : public DrawingContext { public: - explicit OrientedLabelRenderer(const DrawingContext &context); + Gfx::ICanvas &canvas; + Painter &painter; [[nodiscard]] OrientedLabel create(const std::string &text, const Geom::Line &labelPos, From 3fdaa7696d6918204b08c564a273b473117c4cfd Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 4 Dec 2023 14:15:24 +0100 Subject: [PATCH 086/180] small_changes_2 --- src/base/gfx/draw/roundedrect.h | 2 ++ src/base/math/statistics.h | 1 + src/chart/rendering/painter/coordinatesystem.h | 10 ++++++---- src/chart/rendering/painter/painter.cpp | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/base/gfx/draw/roundedrect.h b/src/base/gfx/draw/roundedrect.h index 84b629ad6..69721e194 100644 --- a/src/base/gfx/draw/roundedrect.h +++ b/src/base/gfx/draw/roundedrect.h @@ -13,6 +13,8 @@ class RoundedRect RoundedRect(ICanvas &canvas, const Geom::Rect &rect, double radius); + +protected: void corner(Geom::Point corner, const Geom::Point &dir0, const Geom::Point &dir1); diff --git a/src/base/math/statistics.h b/src/base/math/statistics.h index d0174eeb4..87f5e2c2a 100644 --- a/src/base/math/statistics.h +++ b/src/base/math/statistics.h @@ -9,6 +9,7 @@ namespace Math template static T mean(const std::array &values) { + static_assert(N > 0); return std::accumulate(values.begin(), values.end(), T()) / N; } diff --git a/src/chart/rendering/painter/coordinatesystem.h b/src/chart/rendering/painter/coordinatesystem.h index 9114c6a6f..e767c04fd 100644 --- a/src/chart/rendering/painter/coordinatesystem.h +++ b/src/chart/rendering/painter/coordinatesystem.h @@ -31,10 +31,12 @@ class CompoundTransform : public PolarDescartesTransform { public: CompoundTransform() = default; - CompoundTransform(const Geom::Rect &rect, - double angle, - const ::Anim::Interpolated &coordSystem, - Math::FuzzyBool keepAspectRatio); + explicit CompoundTransform(const Geom::Rect &rect, + double angle = 0.0, + const ::Anim::Interpolated &coordSystem = + ::Anim::Interpolated{ + Gen::CoordSystem::cartesian}, + Math::FuzzyBool keepAspectRatio = {}); [[nodiscard]] Geom::Point convert(const Geom::Point &p) const; [[nodiscard]] double horConvert(double length) const; [[nodiscard]] double verConvert(double length) const; diff --git a/src/chart/rendering/painter/painter.cpp b/src/chart/rendering/painter/painter.cpp index 2fe574f9e..652c5e54e 100644 --- a/src/chart/rendering/painter/painter.cpp +++ b/src/chart/rendering/painter/painter.cpp @@ -32,6 +32,7 @@ void Painter::drawPolygon(const std::array &ps, Draw::DrawPolygon::Options options(system); options.circ = polygonOptions.toCircleFactor; options.linear = polygonOptions.straightFactor; + options.resolutionMode = mode; Draw::DrawPolygon(ps, options, getCanvas(), clip); } From 3bd9f2a4ba81af75d792443a834606160611006a Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 4 Dec 2023 16:21:29 +0100 Subject: [PATCH 087/180] Review --- src/chart/main/layout.h | 1 + src/chart/rendering/drawingcontext.h | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/chart/main/layout.h b/src/chart/main/layout.h index 9891b84ac..56ccaa382 100644 --- a/src/chart/main/layout.h +++ b/src/chart/main/layout.h @@ -29,6 +29,7 @@ class Layout const Gen::PlotOptionsPtr &options, Gfx::ICanvas &info); +private: void setLogoBoundary(const Styles::Logo &logoStyle); }; diff --git a/src/chart/rendering/drawingcontext.h b/src/chart/rendering/drawingcontext.h index 96f0f60d0..3973acb10 100644 --- a/src/chart/rendering/drawingcontext.h +++ b/src/chart/rendering/drawingcontext.h @@ -36,7 +36,7 @@ class DrawingContext auto plotArea = styles.plot.contentRect(layout.plot, styles.calculatedSize()); renderedChart = - RenderedChart{{plotArea, + RenderedChart{CoordinateSystem{plotArea, getOptions().angle, getOptions().coordSystem, plot->keepAspectRatio}, @@ -44,7 +44,7 @@ class DrawingContext } else { renderedChart = RenderedChart{ - {layout.plotArea, + CoordinateSystem{layout.plotArea, 0.0, ::Anim::Interpolated{ Gen::CoordSystem::cartesian}, @@ -63,7 +63,10 @@ class DrawingContext const Layout &layout; RenderedChart &renderedChart; - const Gen::Options &getOptions() { return *plot->getOptions(); } + const Gen::Options &getOptions() const + { + return *plot->getOptions(); + } }; } From 4cb9d2a77b159c8901c47d937b668b4ea0d2cadb Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 4 Dec 2023 17:01:13 +0100 Subject: [PATCH 088/180] Revert Resolution fix --- src/chart/rendering/painter/painter.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/chart/rendering/painter/painter.cpp b/src/chart/rendering/painter/painter.cpp index 652c5e54e..2fe574f9e 100644 --- a/src/chart/rendering/painter/painter.cpp +++ b/src/chart/rendering/painter/painter.cpp @@ -32,7 +32,6 @@ void Painter::drawPolygon(const std::array &ps, Draw::DrawPolygon::Options options(system); options.circ = polygonOptions.toCircleFactor; options.linear = polygonOptions.straightFactor; - options.resolutionMode = mode; Draw::DrawPolygon(ps, options, getCanvas(), clip); } From 3e628bdb1de1988c76ccc89ba8fe5f5899258f95 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 4 Dec 2023 17:21:42 +0100 Subject: [PATCH 089/180] clang-tidy --- src/chart/ui/chart.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/chart/ui/chart.h b/src/chart/ui/chart.h index bc04d49d3..7cb4ea5dd 100644 --- a/src/chart/ui/chart.h +++ b/src/chart/ui/chart.h @@ -63,7 +63,9 @@ class ChartWidget : public GUI::Widget void updateCursor(const std::shared_ptr &, const Geom::Point &pos); - const Gen::Marker *getIfMarker(const Util::EventTarget *); + + [[nodiscard]] static const Gen::Marker *getIfMarker( + const Util::EventTarget *); }; } From 7a3203fee65dfbc2a581a1f9fa8aba9b643a79a5 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 4 Dec 2023 17:25:47 +0100 Subject: [PATCH 090/180] clang-tidy --- src/chart/rendering/drawingcontext.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chart/rendering/drawingcontext.h b/src/chart/rendering/drawingcontext.h index 3973acb10..22993cfbc 100644 --- a/src/chart/rendering/drawingcontext.h +++ b/src/chart/rendering/drawingcontext.h @@ -63,7 +63,7 @@ class DrawingContext const Layout &layout; RenderedChart &renderedChart; - const Gen::Options &getOptions() const + [[nodiscard]] const Gen::Options &getOptions() const { return *plot->getOptions(); } From e062aa94729ee88ace311726da368f384450e69f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 4 Dec 2023 19:07:21 +0100 Subject: [PATCH 091/180] revert painter mod --- src/chart/rendering/drawaxes.cpp | 4 ++-- src/chart/rendering/drawbackground.cpp | 6 +++--- src/chart/rendering/drawbackground.h | 2 +- src/chart/rendering/drawchart.cpp | 4 ++-- src/chart/rendering/drawinterlacing.cpp | 2 +- src/chart/rendering/drawlabel.cpp | 4 ++-- src/chart/rendering/drawlabel.h | 2 +- src/chart/rendering/drawlegend.cpp | 8 ++++---- src/chart/rendering/drawplot.cpp | 2 +- src/chart/rendering/markerrenderer.cpp | 2 +- src/chart/rendering/orientedlabel.cpp | 4 ++-- src/chart/rendering/orientedlabel.h | 2 +- src/chart/rendering/painter/painter.cpp | 1 - 13 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index e8a6e3576..9631bf792 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -234,7 +234,7 @@ void DrawAxes::drawTitle(Gen::ChannelId axisIndex) Geom::TransformedRect{transform, Geom::Size{size}}, title.value, titleStyle, - rootEvents.draw.plot.axis.title, + *rootEvents.draw.plot.axis.title, Events::Targets::axisTitle(title.value, axisIndex == Gen::ChannelId::x), DrawLabel::Options(false, 1.0, upsideDown)); @@ -332,7 +332,7 @@ void DrawAxes::drawDimensionLabel(bool horizontal, labelRenderer.render(label, textColor * weight * position.weight, *labelStyle.backgroundColor, - rootEvents.draw.plot.axis.label, + *rootEvents.draw.plot.axis.label, Events::Targets::axisLabel(text, horizontal)); }); } diff --git a/src/chart/rendering/drawbackground.cpp b/src/chart/rendering/drawbackground.cpp index e06a98f6f..d03f8366b 100644 --- a/src/chart/rendering/drawbackground.cpp +++ b/src/chart/rendering/drawbackground.cpp @@ -8,7 +8,7 @@ namespace Vizzu::Draw void DrawBackground::draw(Gfx::ICanvas &canvas, const Geom::Rect &rect, const Styles::Box &style, - const Util::EventDispatcher::event_ptr &onDraw, + Util::EventDispatcher::Event &onDraw, std::unique_ptr &&eventTarget) const { Events::OnRectDrawEvent eventObj(*eventTarget, {rect, false}); @@ -17,7 +17,7 @@ void DrawBackground::draw(Gfx::ICanvas &canvas, canvas.setBrushColor(*style.backgroundColor); canvas.setLineColor(*style.borderColor); canvas.setLineWidth(*style.borderWidth); - if (onDraw->invoke(std::move(eventObj))) { + if (onDraw.invoke(std::move(eventObj))) { canvas.rectangle(rect); renderedChart.emplace( Geom::TransformedRect::fromRect(rect), @@ -25,7 +25,7 @@ void DrawBackground::draw(Gfx::ICanvas &canvas, } canvas.setLineWidth(0); } - else if (onDraw->invoke(std::move(eventObj))) { + else if (onDraw.invoke(std::move(eventObj))) { renderedChart.emplace(Geom::TransformedRect::fromRect(rect), std::move(eventTarget)); } diff --git a/src/chart/rendering/drawbackground.h b/src/chart/rendering/drawbackground.h index 0725e1a1e..4587e5305 100644 --- a/src/chart/rendering/drawbackground.h +++ b/src/chart/rendering/drawbackground.h @@ -15,7 +15,7 @@ struct DrawBackground : DrawingContext void draw(Gfx::ICanvas &canvas, const Geom::Rect &rect, const Styles::Box &style, - const Util::EventDispatcher::event_ptr &onDraw, + Util::EventDispatcher::Event &onDraw, std::unique_ptr &&eventTarget) const; }; diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp index e4f3b4af0..0fb322fe8 100644 --- a/src/chart/rendering/drawchart.cpp +++ b/src/chart/rendering/drawchart.cpp @@ -15,7 +15,7 @@ void DrawChart::drawBackground(Gfx::ICanvas &canvas, DrawBackground{{*this}}.draw(canvas, bounds, rootStyle, - rootEvents.draw.background, + *rootEvents.draw.background, Events::Targets::root()); } @@ -51,7 +51,7 @@ void DrawChart::drawHeading(Gfx::ICanvas &canvas, .visit( [&layout = getter(layout), &style = getter(rootStyle), - &event = getter(rootEvents.draw), + &event = *getter(rootEvents.draw), &canvas, this](int, const auto &weighted) { diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index 507797c7a..da13d5d24 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -291,7 +291,7 @@ void DrawInterlacing::drawDataLabel( labelRenderer.render(label, textColor * position.weight, *labelStyle.backgroundColor, - rootEvents.draw.plot.axis.label, + *rootEvents.draw.plot.axis.label, Events::Targets::axisLabel(str, !horizontal)); }); } diff --git a/src/chart/rendering/drawlabel.cpp b/src/chart/rendering/drawlabel.cpp index 67fb2ff31..d9e6d0333 100644 --- a/src/chart/rendering/drawlabel.cpp +++ b/src/chart/rendering/drawlabel.cpp @@ -7,7 +7,7 @@ void DrawLabel::draw(Gfx::ICanvas &canvas, const Geom::TransformedRect &rect, const std::string &text, const Styles::Label &style, - const Util::EventDispatcher::event_ptr &onDraw, + Util::EventDispatcher::Event &onDraw, std::unique_ptr eventTarget, Options options) const { @@ -48,7 +48,7 @@ void DrawLabel::draw(Gfx::ICanvas &canvas, trRect.transform = transform; trRect.size = textRect.size; - if (onDraw->invoke( + if (onDraw.invoke( Events::OnTextDrawEvent(*eventTarget, trRect, text))) { canvas.transform(transform); diff --git a/src/chart/rendering/drawlabel.h b/src/chart/rendering/drawlabel.h index 5782650c3..e7d862383 100644 --- a/src/chart/rendering/drawlabel.h +++ b/src/chart/rendering/drawlabel.h @@ -32,7 +32,7 @@ class DrawLabel : public DrawingContext const Geom::TransformedRect &rect, const std::string &text, const Styles::Label &style, - const Util::EventDispatcher::event_ptr &onDraw, + Util::EventDispatcher::Event &onDraw, std::unique_ptr eventTarget, Options options = Options()) const; diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index 128557d5a..57dc47277 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -32,7 +32,7 @@ void DrawLegend::draw(Gfx::ICanvas &canvas, DrawBackground{{*this}}.draw(canvas, legendLayout, style, - events.background, + *events.background, Events::Targets::legend(channelType)); canvas.save(); @@ -64,7 +64,7 @@ void DrawLegend::drawTitle(const Info &info) const Geom::TransformedRect::fromRect(rect), title.value, style.title, - events.title, + *events.title, Events::Targets::legendTitle(title.value, info.type), DrawLabel::Options(true, title.weight * info.weight * mul)); @@ -95,7 +95,7 @@ void DrawLegend::drawDimension(const Info &info) const getLabelRect(info, itemRect), value.second.label, style.label, - events.label, + *events.label, Events::Targets::legendLabel(value.second.label, info.type), DrawLabel::Options(true, alpha)); @@ -187,7 +187,7 @@ void DrawLegend::extremaLabel(const Info &info, getLabelRect(info, getItemRect(info, pos)), text, style.label, - events.label, + *events.label, Events::Targets::legendLabel(text, info.type), DrawLabel::Options(true, info.measureWeight)); } diff --git a/src/chart/rendering/drawplot.cpp b/src/chart/rendering/drawplot.cpp index 1439d7bdc..f1d7cf66f 100644 --- a/src/chart/rendering/drawplot.cpp +++ b/src/chart/rendering/drawplot.cpp @@ -16,7 +16,7 @@ void DrawPlot::draw(Gfx::ICanvas &canvas, DrawBackground{{*this}}.draw(canvas, plotRect, rootStyle.plot, - rootEvents.draw.plot.background, + *rootEvents.draw.plot.background, Events::Targets::plot()); drawPlotArea(canvas, painter, false); diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index eff87d687..68fbf5310 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -307,7 +307,7 @@ void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, labelRenderer.create(text, labelPos, labelStyle, centered), textColor, bgColor, - rootEvents.draw.plot.marker.label, + *rootEvents.draw.plot.marker.label, Events::Targets::markerLabel(text, marker)); } diff --git a/src/chart/rendering/orientedlabel.cpp b/src/chart/rendering/orientedlabel.cpp index f4ad52a72..571094799 100644 --- a/src/chart/rendering/orientedlabel.cpp +++ b/src/chart/rendering/orientedlabel.cpp @@ -78,7 +78,7 @@ OrientedLabel OrientedLabelRenderer::create(const std::string &text, void OrientedLabelRenderer::render(const OrientedLabel &label, const Gfx::Color &textColor, const Gfx::Color &bgColor, - const Util::EventDispatcher::event_ptr &event, + Util::EventDispatcher::Event &event, std::unique_ptr eventTarget) { if (!bgColor.isTransparent()) { @@ -98,7 +98,7 @@ void OrientedLabelRenderer::render(const OrientedLabel &label, label.rect, label.text); - if (event->invoke(std::move(eventObj))) { + if (event.invoke(std::move(eventObj))) { canvas.transform(label.rect.transform); canvas.text(label.contentRect, label.text); renderedChart.emplace(label.rect, std::move(eventTarget)); diff --git a/src/chart/rendering/orientedlabel.h b/src/chart/rendering/orientedlabel.h index 6e7acc2a2..eed6a9b02 100644 --- a/src/chart/rendering/orientedlabel.h +++ b/src/chart/rendering/orientedlabel.h @@ -32,7 +32,7 @@ class OrientedLabelRenderer : public DrawingContext void render(const OrientedLabel &label, const Gfx::Color &textColor, const Gfx::Color &bgColor, - const Util::EventDispatcher::event_ptr &event, + Util::EventDispatcher::Event &event, std::unique_ptr eventTarget); }; diff --git a/src/chart/rendering/painter/painter.cpp b/src/chart/rendering/painter/painter.cpp index 652c5e54e..2fe574f9e 100644 --- a/src/chart/rendering/painter/painter.cpp +++ b/src/chart/rendering/painter/painter.cpp @@ -32,7 +32,6 @@ void Painter::drawPolygon(const std::array &ps, Draw::DrawPolygon::Options options(system); options.circ = polygonOptions.toCircleFactor; options.linear = polygonOptions.straightFactor; - options.resolutionMode = mode; Draw::DrawPolygon(ps, options, getCanvas(), clip); } From f623fa330ab9c9c663366299afaec5a2bd5553e6 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 4 Dec 2023 19:49:24 +0100 Subject: [PATCH 092/180] clang-tidy --- src/chart/rendering/drawaxes.cpp | 18 +++++++++--------- src/chart/rendering/drawaxes.h | 14 +++++++------- src/chart/rendering/drawchart.cpp | 10 +++++----- src/chart/rendering/drawingcontext.h | 2 ++ src/chart/rendering/drawinterlacing.cpp | 14 +++++++------- src/chart/rendering/drawinterlacing.h | 12 ++++++------ src/chart/rendering/drawlabel.cpp | 2 +- src/chart/rendering/drawlabel.h | 5 +++-- src/chart/rendering/drawlegend.cpp | 17 ++++++++--------- src/chart/rendering/drawlegend.h | 24 ++++++++++++------------ src/chart/rendering/drawmarkerinfo.h | 2 +- src/chart/rendering/drawplot.cpp | 9 ++++++--- src/chart/rendering/markerrenderer.cpp | 2 +- src/chart/rendering/markerrenderer.h | 9 +++++---- 14 files changed, 73 insertions(+), 67 deletions(-) diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index 9631bf792..0ed64e750 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -8,17 +8,17 @@ namespace Vizzu::Draw { -void DrawAxes::drawGeometries() +void DrawAxes::drawGeometries() const { interlacing.drawGeometries(); drawAxis(Gen::ChannelId::x); drawAxis(Gen::ChannelId::y); - DrawGuides{{*this}, canvas, painter}.draw(); + DrawGuides{{ctx()}, canvas, painter}.draw(); } -void DrawAxes::drawLabels() +void DrawAxes::drawLabels() const { interlacing.drawTexts(); @@ -44,7 +44,7 @@ Geom::Line DrawAxes::getAxis(Gen::ChannelId axisIndex) const return {}; } -void DrawAxes::drawAxis(Gen::ChannelId axisIndex) +void DrawAxes::drawAxis(Gen::ChannelId axisIndex) const { auto eventTarget = Events::Targets::axis(axisIndex == Gen::ChannelId::x); @@ -152,7 +152,7 @@ Geom::Point DrawAxes::getTitleOffset(Gen::ChannelId axisIndex, : Geom::Point{orthogonal, -parallel}; } -void DrawAxes::drawTitle(Gen::ChannelId axisIndex) +void DrawAxes::drawTitle(Gen::ChannelId axisIndex) const { const auto &titleString = plot->commonAxises.at(axisIndex).title; @@ -230,7 +230,7 @@ void DrawAxes::drawTitle(Gen::ChannelId axisIndex) auto upsideDown = realAngle > M_PI / 2.0 && realAngle < 3 * M_PI / 2.0; - DrawLabel{{*this}}.draw(canvas, + DrawLabel{{ctx()}}.draw(canvas, Geom::TransformedRect{transform, Geom::Size{size}}, title.value, titleStyle, @@ -244,7 +244,7 @@ void DrawAxes::drawTitle(Gen::ChannelId axisIndex) } } -void DrawAxes::drawDimensionLabels(bool horizontal) +void DrawAxes::drawDimensionLabels(bool horizontal) const { auto axisIndex = horizontal ? Gen::ChannelId::x : Gen::ChannelId::y; @@ -269,7 +269,7 @@ void DrawAxes::drawDimensionLabels(bool horizontal) void DrawAxes::drawDimensionLabel(bool horizontal, const Geom::Point &origo, - Gen::DimensionAxis::Values::const_iterator it) + Gen::DimensionAxis::Values::const_iterator it) const { const auto &enabled = horizontal ? plot->guides.x : plot->guides.y; @@ -324,7 +324,7 @@ void DrawAxes::drawDimensionLabel(bool horizontal, posDir = posDir.extend(sign); - OrientedLabelRenderer labelRenderer{{*this}, + OrientedLabelRenderer labelRenderer{{ctx()}, canvas, painter}; auto label = diff --git a/src/chart/rendering/drawaxes.h b/src/chart/rendering/drawaxes.h index ee2e6aca8..e983458ab 100644 --- a/src/chart/rendering/drawaxes.h +++ b/src/chart/rendering/drawaxes.h @@ -12,12 +12,12 @@ namespace Vizzu::Draw class DrawAxes : public DrawingContext { public: - void drawGeometries(); - void drawLabels(); + void drawGeometries() const; + void drawLabels() const; Gfx::ICanvas &canvas; Painter &painter; - DrawInterlacing interlacing{{*this}, canvas, painter}; + DrawInterlacing interlacing; private: [[nodiscard]] Geom::Line getAxis(Gen::ChannelId axisIndex) const; @@ -26,12 +26,12 @@ class DrawAxes : public DrawingContext [[nodiscard]] Geom::Point getTitleOffset(Gen::ChannelId axisIndex, int index, bool fades) const; - void drawAxis(Gen::ChannelId axisIndex); - void drawTitle(Gen::ChannelId axisIndex); - void drawDimensionLabels(bool horizontal); + void drawAxis(Gen::ChannelId axisIndex) const; + void drawTitle(Gen::ChannelId axisIndex) const; + void drawDimensionLabels(bool horizontal) const; void drawDimensionLabel(bool horizontal, const Geom::Point &origo, - Gen::DimensionAxis::Values::const_iterator it); + Gen::DimensionAxis::Values::const_iterator it) const; }; } diff --git a/src/chart/rendering/drawchart.cpp b/src/chart/rendering/drawchart.cpp index 0fb322fe8..7f7e4e693 100644 --- a/src/chart/rendering/drawchart.cpp +++ b/src/chart/rendering/drawchart.cpp @@ -12,7 +12,7 @@ namespace Vizzu::Draw void DrawChart::drawBackground(Gfx::ICanvas &canvas, const Geom::Rect &bounds) const { - DrawBackground{{*this}}.draw(canvas, + DrawBackground{{ctx()}}.draw(canvas, bounds, rootStyle, *rootEvents.draw.background, @@ -23,13 +23,13 @@ void DrawChart::drawPlot(Gfx::ICanvas &canvas, Painter &painter, const Geom::Rect &plotRect) const { - DrawPlot{{*this}}.draw(canvas, painter, plotRect); + DrawPlot{{ctx()}}.draw(canvas, painter, plotRect); } void DrawChart::drawLegend(Gfx::ICanvas &canvas, const Geom::Rect &bounds) const { - auto &&legendObj = DrawLegend{{*this}}; + auto &&legendObj = DrawLegend{{ctx()}}; getOptions().legend.visit( [&legendObj, &canvas, &bounds](int, const auto &legend) @@ -56,7 +56,7 @@ void DrawChart::drawHeading(Gfx::ICanvas &canvas, this](int, const auto &weighted) { if (weighted.value.has_value()) { - DrawLabel{{*this}}.draw(canvas, + DrawLabel{{ctx()}}.draw(canvas, Geom::TransformedRect::fromRect(layout), *weighted.value, style, @@ -71,7 +71,7 @@ void DrawChart::drawHeading(Gfx::ICanvas &canvas, void DrawChart::drawMarkerInfo(Gfx::ICanvas &canvas, const Geom::Rect &bounds) const { - DrawMarkerInfo{{*this}}.draw(canvas, bounds); + DrawMarkerInfo{{ctx()}, rootStyle.tooltip}.draw(canvas, bounds); } void DrawChart::drawLogo(Gfx::ICanvas &canvas, diff --git a/src/chart/rendering/drawingcontext.h b/src/chart/rendering/drawingcontext.h index c4476ce1c..761dfede9 100644 --- a/src/chart/rendering/drawingcontext.h +++ b/src/chart/rendering/drawingcontext.h @@ -26,6 +26,8 @@ struct DrawingContext { return *plot->getOptions(); } + + [[nodiscard]] const DrawingContext &ctx() const { return *this; } }; } diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index da13d5d24..f4152dcde 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -8,19 +8,19 @@ namespace Vizzu::Draw { -void DrawInterlacing::drawGeometries() +void DrawInterlacing::drawGeometries() const { draw(true, false); draw(false, false); } -void DrawInterlacing::drawTexts() +void DrawInterlacing::drawTexts() const { draw(true, true); draw(false, true); } -void DrawInterlacing::draw(bool horizontal, bool text) +void DrawInterlacing::draw(bool horizontal, bool text) const { auto axisIndex = horizontal ? Gen::ChannelId::y : Gen::ChannelId::x; @@ -88,7 +88,7 @@ void DrawInterlacing::draw( double stepSize, double weight, double rangeSize, - bool text) + bool text) const { const auto &enabled = horizontal ? plot->guides.y : plot->guides.x; @@ -225,7 +225,7 @@ void DrawInterlacing::drawDataLabel( const Geom::Point &tickPos, double value, const std::string &unit, - const Gfx::Color &textColor) + const Gfx::Color &textColor) const { auto axisIndex = horizontal ? Gen::ChannelId::y : Gen::ChannelId::x; @@ -283,7 +283,7 @@ void DrawInterlacing::drawDataLabel( posDir = posDir.extend(sign); - OrientedLabelRenderer labelRenderer{{*this}, + OrientedLabelRenderer labelRenderer{{ctx()}, canvas, painter}; auto label = @@ -298,7 +298,7 @@ void DrawInterlacing::drawDataLabel( void DrawInterlacing::drawSticks(double tickIntensity, bool horizontal, - const Geom::Point &tickPos) + const Geom::Point &tickPos) const { auto axisIndex = horizontal ? Gen::ChannelId::y : Gen::ChannelId::x; diff --git a/src/chart/rendering/drawinterlacing.h b/src/chart/rendering/drawinterlacing.h index 2fc09f2ca..ebcac3da5 100644 --- a/src/chart/rendering/drawinterlacing.h +++ b/src/chart/rendering/drawinterlacing.h @@ -9,32 +9,32 @@ namespace Vizzu::Draw class DrawInterlacing : public DrawingContext { public: - void drawGeometries(); - void drawTexts(); + void drawGeometries() const; + void drawTexts() const; Gfx::ICanvas &canvas; Painter &painter; private: - void draw(bool horizontal, bool text); + void draw(bool horizontal, bool text) const; void draw(const ::Anim::Interpolated &enabled, bool horizontal, double stepSize, double weight, double rangeSize, - bool text); + bool text) const; void drawDataLabel(const ::Anim::Interpolated &enabled, bool horizontal, const Geom::Point &tickPos, double value, const std::string &unit, - const Gfx::Color &textColor); + const Gfx::Color &textColor) const; void drawSticks(double tickIntensity, bool horizontal, - const Geom::Point &tickPos); + const Geom::Point &tickPos) const; }; } diff --git a/src/chart/rendering/drawlabel.cpp b/src/chart/rendering/drawlabel.cpp index d9e6d0333..c3ff75e11 100644 --- a/src/chart/rendering/drawlabel.cpp +++ b/src/chart/rendering/drawlabel.cpp @@ -73,7 +73,7 @@ double DrawLabel::getHeight(const Styles::Label &style, Geom::Rect DrawLabel::alignText(const Geom::Rect &contentRect, const Styles::Label &style, - const Geom::Size &textSize) const + const Geom::Size &textSize) { Geom::Rect res; res.size = textSize; diff --git a/src/chart/rendering/drawlabel.h b/src/chart/rendering/drawlabel.h index e7d862383..6642a5b7c 100644 --- a/src/chart/rendering/drawlabel.h +++ b/src/chart/rendering/drawlabel.h @@ -40,9 +40,10 @@ class DrawLabel : public DrawingContext Gfx::ICanvas &canvas); private: - Geom::Rect alignText(const Geom::Rect &contentRect, + [[nodiscard]] static Geom::Rect alignText( + const Geom::Rect &contentRect, const Styles::Label &style, - const Geom::Size &textSize) const; + const Geom::Size &textSize); }; } diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index 57dc47277..48e2b01a9 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -29,7 +29,7 @@ void DrawLegend::draw(Gfx::ICanvas &canvas, .dimension = plot->dimensionAxises.at(channelType), }; - DrawBackground{{*this}}.draw(canvas, + DrawBackground{{ctx()}}.draw(canvas, legendLayout, style, *events.background, @@ -60,7 +60,7 @@ void DrawLegend::drawTitle(const Info &info) const { if (title.weight <= 0) return; - DrawLabel{{*this}}.draw(info.canvas, + DrawLabel{{ctx()}}.draw(info.canvas, Geom::TransformedRect::fromRect(rect), title.value, style.title, @@ -75,7 +75,7 @@ void DrawLegend::drawDimension(const Info &info) const { if (!info.dimensionEnabled) return; - auto label = DrawLabel{{*this}}; + auto label = DrawLabel{{ctx()}}; for (const auto &value : info.dimension) { if (value.second.weight <= 0) continue; @@ -102,8 +102,7 @@ void DrawLegend::drawDimension(const Info &info) const } } -Geom::Rect DrawLegend::getItemRect(const Info &info, - double index) const +Geom::Rect DrawLegend::getItemRect(const Info &info, double index) { Geom::Rect res = info.contentRect; res.pos.y += info.titleHeight + index * info.itemHeight; @@ -113,7 +112,7 @@ Geom::Rect DrawLegend::getItemRect(const Info &info, } Geom::Rect DrawLegend::getMarkerRect(const Info &info, - const Geom::Rect &itemRect) const + const Geom::Rect &itemRect) { Geom::Rect res = itemRect; res.pos.y += info.itemHeight / 2.0 - info.markerSize / 2.0; @@ -122,7 +121,7 @@ Geom::Rect DrawLegend::getMarkerRect(const Info &info, } Geom::TransformedRect DrawLegend::getLabelRect(const Info &info, - const Geom::Rect &itemRect) const + const Geom::Rect &itemRect) { Geom::Rect res = itemRect; res.pos.x += info.markerSize; @@ -183,7 +182,7 @@ void DrawLegend::extremaLabel(const Info &info, static_cast(*style.label.maxFractionDigits), *style.label.numberScale); - DrawLabel{{*this}}.draw(info.canvas, + DrawLabel{{ctx()}}.draw(info.canvas, getLabelRect(info, getItemRect(info, pos)), text, style.label, @@ -192,7 +191,7 @@ void DrawLegend::extremaLabel(const Info &info, DrawLabel::Options(true, info.measureWeight)); } -Geom::Rect DrawLegend::getBarRect(const Info &info) const +Geom::Rect DrawLegend::getBarRect(const Info &info) { Geom::Rect res = info.contentRect; res.pos.y += info.titleHeight + info.itemHeight / 2.0; diff --git a/src/chart/rendering/drawlegend.h b/src/chart/rendering/drawlegend.h index 9f0831eb9..d83bfdfe9 100644 --- a/src/chart/rendering/drawlegend.h +++ b/src/chart/rendering/drawlegend.h @@ -28,11 +28,11 @@ class DrawLegend : public DrawingContext { Gfx::ICanvas &canvas; Geom::Rect contentRect; - Gen::ChannelId type; - double weight; - double itemHeight; - double titleHeight; - double markerSize; + Gen::ChannelId type{}; + double weight{}; + double itemHeight{}; + double titleHeight{}; + double markerSize{}; const Gen::MeasureAxis &measure; const Gen::DimensionAxis &dimension; double measureEnabled = measure.enabled.calculate(); @@ -48,13 +48,13 @@ class DrawLegend : public DrawingContext void drawMarker(const Info &info, const Gfx::Color &color, const Geom::Rect &rect) const; - [[nodiscard]] Geom::Rect getItemRect(const Info &info, - double index) const; - [[nodiscard]] Geom::Rect getMarkerRect(const Info &info, - const Geom::Rect &itemRect) const; - [[nodiscard]] Geom::TransformedRect getLabelRect(const Info &info, - const Geom::Rect &itemRect) const; - [[nodiscard]] Geom::Rect getBarRect(const Info &info) const; + [[nodiscard]] static Geom::Rect getItemRect(const Info &info, + double index); + [[nodiscard]] static Geom::Rect getMarkerRect(const Info &info, + const Geom::Rect &itemRect); + [[nodiscard]] static Geom::TransformedRect + getLabelRect(const Info &info, const Geom::Rect &itemRect); + [[nodiscard]] static Geom::Rect getBarRect(const Info &info); void extremaLabel(const Info &info, double value, int pos) const; void colorBar(const Info &info, const Geom::Rect &rect) const; diff --git a/src/chart/rendering/drawmarkerinfo.h b/src/chart/rendering/drawmarkerinfo.h index adb7d3d3f..d1df46c8c 100644 --- a/src/chart/rendering/drawmarkerinfo.h +++ b/src/chart/rendering/drawmarkerinfo.h @@ -48,7 +48,7 @@ class DrawMarkerInfo : public DrawingContext void draw(Gfx::ICanvas &canvas, const Geom::Rect &boundary) const; - const Styles::Tooltip &style = rootStyle.tooltip; + const Styles::Tooltip &style; private: void fadeInMarkerInfo(Gfx::ICanvas &canvas, diff --git a/src/chart/rendering/drawplot.cpp b/src/chart/rendering/drawplot.cpp index f1d7cf66f..f6468f439 100644 --- a/src/chart/rendering/drawplot.cpp +++ b/src/chart/rendering/drawplot.cpp @@ -13,7 +13,7 @@ void DrawPlot::draw(Gfx::ICanvas &canvas, Painter &painter, const Geom::Rect &plotRect) const { - DrawBackground{{*this}}.draw(canvas, + DrawBackground{{ctx()}}.draw(canvas, plotRect, rootStyle.plot, *rootEvents.draw.plot.background, @@ -21,7 +21,10 @@ void DrawPlot::draw(Gfx::ICanvas &canvas, drawPlotArea(canvas, painter, false); - DrawAxes axes{{*this}, canvas, painter}; + auto axes = DrawAxes{{ctx()}, + canvas, + painter, + {{ctx()}, canvas, painter}}; axes.drawGeometries(); auto clip = rootStyle.plot.overflow == Styles::Overflow::hidden; @@ -31,7 +34,7 @@ void DrawPlot::draw(Gfx::ICanvas &canvas, drawPlotArea(canvas, painter, true); } - MarkerRenderer markerRenderer{{*this}, canvas, painter}; + auto markerRenderer = MarkerRenderer{{ctx()}, canvas, painter}; markerRenderer.drawLines(); markerRenderer.drawMarkers(); diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index 68fbf5310..f2b129c2e 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -301,7 +301,7 @@ void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, auto centered = labelStyle.position->factor( Styles::MarkerLabel::Position::center); - OrientedLabelRenderer labelRenderer{{*this}, canvas, painter}; + OrientedLabelRenderer labelRenderer{{ctx()}, canvas, painter}; labelRenderer.render( labelRenderer.create(text, labelPos, labelStyle, centered), diff --git a/src/chart/rendering/markerrenderer.h b/src/chart/rendering/markerrenderer.h index 49a58d44b..5e1f24c25 100644 --- a/src/chart/rendering/markerrenderer.h +++ b/src/chart/rendering/markerrenderer.h @@ -19,8 +19,9 @@ class MarkerRenderer : public DrawingContext Painter &painter; private: - bool shouldDrawMarkerBody(const Gen::Marker &marker) const; - std::pair getColor( + [[nodiscard]] bool shouldDrawMarkerBody( + const Gen::Marker &marker) const; + [[nodiscard]] std::pair getColor( const AbstractMarker &abstractMarker, double factor, bool label = false) const; @@ -30,8 +31,8 @@ class MarkerRenderer : public DrawingContext void drawLabel(const AbstractMarker &abstractMarker, size_t index) const; - Gfx::Color getSelectedColor(const Gen::Marker &marker, - bool label) const; + [[nodiscard]] Gfx::Color + getSelectedColor(const Gen::Marker &marker, bool label) const; [[nodiscard]] std::string getLabelText( const ::Anim::Interpolated &label, size_t index) const; From c05e255e5cd7377db40c1e1b4402f4ed62763dae Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 5 Dec 2023 17:19:48 +0100 Subject: [PATCH 093/180] Add space when no unit on prefix number. Add unit on legend --- src/base/text/smartstring.cpp | 13 ++++++++----- src/base/text/smartstring.h | 20 +++----------------- src/chart/rendering/drawinterlacing.cpp | 10 ++-------- src/chart/rendering/drawlegend.cpp | 11 +++++++---- src/chart/rendering/drawlegend.h | 2 +- src/chart/rendering/markerrenderer.cpp | 11 ++--------- test/integration/tests/fixes.json | 3 +++ test/integration/tests/fixes/450.mjs | 25 +++++++++++++++++++++++++ 8 files changed, 51 insertions(+), 44 deletions(-) create mode 100644 test/integration/tests/fixes/450.mjs diff --git a/src/base/text/smartstring.cpp b/src/base/text/smartstring.cpp index bd6cdd5ab..e6ed91346 100644 --- a/src/base/text/smartstring.cpp +++ b/src/base/text/smartstring.cpp @@ -51,7 +51,8 @@ std::vector SmartString::split(const std::string &str, std::string SmartString::fromNumber(double value, NumberFormat format, size_t maxFractionDigits, - const NumberScale &numberScale) + const NumberScale &numberScale, + const std::string &unit) { Conv::NumberToString converter{ static_cast(maxFractionDigits)}; @@ -67,7 +68,9 @@ std::string SmartString::fromNumber(double value, auto prefix = numberScale.at(num.exponent); return converter(num.signedCoef()) - + (!prefix.empty() ? " " + prefix : ""); + + (prefix.empty() && unit.empty() + ? "" + : " " + prefix + unit); } break; } @@ -77,14 +80,14 @@ std::string SmartString::fromNumber(double value, case NumberFormat::none: default: break; } - return converter(value); + return converter(value) + (unit.empty() ? "" : " " + unit); } -std::string SmartString::escape(const std::string &str, char specChar) +std::string SmartString::escape(const std::string &str) { std::string result; for (const auto &ch : str) { - if ((ch == '\\') || specChar == ch) result.push_back('\\'); + if ((ch == '\\') || '"' == ch) result.push_back('\\'); result.push_back(ch); } return result; diff --git a/src/base/text/smartstring.h b/src/base/text/smartstring.h index 0187e3cf3..bbdfaa0aa 100644 --- a/src/base/text/smartstring.h +++ b/src/base/text/smartstring.h @@ -23,30 +23,16 @@ class SmartString bool ignoreEmpty = false, const char *parens = nullptr); - static std::string join(const auto &vector, char separator = ',') - { - std::string joined; - bool needSep = false; - for (const auto &s : vector) { - if (needSep) - joined += separator; - else - needSep = true; - joined.append(s); - } - return joined; - } - static void trim(std::string &string, int (*ignore)(int) = &isspace); static std::string fromNumber(double value, NumberFormat format = NumberFormat::none, size_t maxFractionDigits = 2, - const NumberScale &numberScale = NumberScale{}); + const NumberScale &numberScale = NumberScale{}, + const std::string &unit = ""); - static std::string escape(const std::string &str, - char specChar = '\"'); + static std::string escape(const std::string &str); }; } diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index fb04d2c94..49e8d5b87 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -238,14 +238,8 @@ void DrawInterlacing::drawDataLabel( auto str = Text::SmartString::fromNumber(value, *labelStyle.numberFormat, static_cast(*labelStyle.maxFractionDigits), - *labelStyle.numberScale); - - if (!unit.empty()) { - if (*labelStyle.numberFormat != Text::NumberFormat::prefixed) - str += " "; - - str += unit; - } + *labelStyle.numberScale, + unit); labelStyle.position->visit( [this, diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index 90cf1fb0c..ab38d059c 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -158,8 +158,8 @@ void DrawLegend::drawMeasure(const Gen::MeasureAxis &axis) { enabled = axis.enabled.calculate(); - extremaLabel(axis.range.getMax(), 0); - extremaLabel(axis.range.getMin(), 5); + extremaLabel(axis.range.getMax(), axis.unit, 0); + extremaLabel(axis.range.getMin(), axis.unit, 5); auto bar = getBarRect(); @@ -172,12 +172,15 @@ void DrawLegend::drawMeasure(const Gen::MeasureAxis &axis) } } -void DrawLegend::extremaLabel(double value, int pos) +void DrawLegend::extremaLabel(double value, + const std::string &unit, + int pos) { auto text = Text::SmartString::fromNumber(value, *style.label.numberFormat, static_cast(*style.label.maxFractionDigits), - *style.label.numberScale); + *style.label.numberScale, + unit); auto itemRect = getItemRect(pos); DrawLabel(*this, diff --git a/src/chart/rendering/drawlegend.h b/src/chart/rendering/drawlegend.h index 06dc0b554..2939aab65 100644 --- a/src/chart/rendering/drawlegend.h +++ b/src/chart/rendering/drawlegend.h @@ -37,7 +37,7 @@ class DrawLegend : public DrawingContext void drawTitle(const ::Anim::String &title, double mul); - void extremaLabel(double value, int pos); + void extremaLabel(double value, const std::string &unit, int pos); void colorBar(const Geom::Rect &rect); void lightnessBar(const Geom::Rect &rect); void sizeBar(const Geom::Rect &rect); diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index 1ca1f5d17..2b20fb1ed 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -309,15 +309,8 @@ std::string MarkerRenderer::getLabelText(size_t index) const valueStr = Text::SmartString::fromNumber(value, *labelStyle.numberFormat, static_cast(*labelStyle.maxFractionDigits), - *labelStyle.numberScale); - - if (!values[index].value.unit.empty()) { - if (*labelStyle.numberFormat - != Text::NumberFormat::prefixed) - valueStr += " "; - - valueStr += values[index].value.unit; - } + *labelStyle.numberScale, + values[index].value.unit); } auto indexStr = values[index].value.indexStr; diff --git a/test/integration/tests/fixes.json b/test/integration/tests/fixes.json index 95ec724af..49d695ebe 100644 --- a/test/integration/tests/fixes.json +++ b/test/integration/tests/fixes.json @@ -19,6 +19,9 @@ "333": { "refs": ["22c1f69"] }, + "450": { + "refs": ["761380e"] + }, "32303048": { "refs": ["b5d95ea"] }, diff --git a/test/integration/tests/fixes/450.mjs b/test/integration/tests/fixes/450.mjs new file mode 100644 index 000000000..a5e770b60 --- /dev/null +++ b/test/integration/tests/fixes/450.mjs @@ -0,0 +1,25 @@ +const testSteps = [ + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['a', 'b', 'c', 'a', 'b', 'c'] }, + { name: 'Foo2', values: ['A', 'A', 'A', 'B', 'B', 'B'] }, + { name: 'Bar', values: [150000000, 32, 12, 3, 2, 10], unit: 'p' } + ] + } + + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + config: { + x: { set: 'Foo2' }, + y: 'Bar', + color: 'Bar', + legend: 'color', + label: 'Bar' + } + }) +] + +export default testSteps From 95a1e850552136def8dcb6b4ab4c94b3362fd7bb Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 5 Dec 2023 19:56:36 +0100 Subject: [PATCH 094/180] unit fix --- CHANGELOG.md | 11 ++ src/base/anim/interpolated.h | 4 +- src/base/text/smartstring.cpp | 7 +- src/chart/generator/axis.cpp | 5 +- src/chart/generator/axis.h | 2 +- src/chart/rendering/drawinterlacing.cpp | 73 +++++++----- src/chart/rendering/drawinterlacing.h | 2 +- src/chart/rendering/drawlegend.cpp | 19 +++- src/chart/rendering/drawlegend.h | 5 +- test/integration/test_cases/test_cases.json | 118 ++++++++++---------- 10 files changed, 147 insertions(+), 99 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4eb099a57..77c951bde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,17 @@ ## [Unreleased] +### Fixed + +- When only logo rendered chart resized, the previous drawn logo position was not deleted. +- At the mouse events the lib is not queried the exact rendered chart position through API. +- On axis labels sometimes missed a space character between value and unit. +- Rendered label units are suddenly disappeared when target plot does not contain a unit. + +### Added + +- Units on legend. + ## [0.9.2] - 2023-11-22 ### Fixed diff --git a/src/base/anim/interpolated.h b/src/base/anim/interpolated.h index dc303b0b2..2940a1dac 100644 --- a/src/base/anim/interpolated.h +++ b/src/base/anim/interpolated.h @@ -207,7 +207,7 @@ template class Interpolated return T(); } - template [[nodiscard]] Type min() const + template [[nodiscard]] T min() const { return (this->count == 1) ? this->values[0].value : (this->count == 2) ? std::min(this->values[0].value, @@ -215,7 +215,7 @@ template class Interpolated : INFINITY; } - template [[nodiscard]] Type max() const + template [[nodiscard]] T max() const { return (this->count == 1) ? this->values[0].value : (this->count == 2) ? std::max(this->values[0].value, diff --git a/src/base/text/smartstring.cpp b/src/base/text/smartstring.cpp index e6ed91346..7ff3bb168 100644 --- a/src/base/text/smartstring.cpp +++ b/src/base/text/smartstring.cpp @@ -68,8 +68,8 @@ std::string SmartString::fromNumber(double value, auto prefix = numberScale.at(num.exponent); return converter(num.signedCoef()) - + (prefix.empty() && unit.empty() - ? "" + + (prefix.empty() && (unit.empty() || unit == "%") + ? unit : " " + prefix + unit); } break; @@ -80,7 +80,8 @@ std::string SmartString::fromNumber(double value, case NumberFormat::none: default: break; } - return converter(value) + (unit.empty() ? "" : " " + unit); + return converter(value) + + (unit.empty() || unit == "%" ? unit : " " + unit); } std::string SmartString::escape(const std::string &str) diff --git a/src/chart/generator/axis.cpp b/src/chart/generator/axis.cpp index fd78bde5a..f518a0956 100644 --- a/src/chart/generator/axis.cpp +++ b/src/chart/generator/axis.cpp @@ -49,18 +49,19 @@ MeasureAxis interpolate(const MeasureAxis &op0, if (op0.enabled.get() && op1.enabled.get()) { res.range = Math::interpolate(op0.range, op1.range, factor); res.step = interpolate(op0.step, op1.step, factor); + res.unit = interpolate(op0.unit, op1.unit, factor); } else if (op0.enabled.get()) { res.range = op0.range; res.step = op0.step; + res.unit = op0.unit; } else if (op1.enabled.get()) { res.range = op1.range; res.step = op1.step; + res.unit = op1.unit; } - res.unit = op1.unit; - return res; } bool DimensionAxis::add(const Data::MultiDim::SliceIndex &index, diff --git a/src/chart/generator/axis.h b/src/chart/generator/axis.h index d1471f870..b0867cbe6 100644 --- a/src/chart/generator/axis.h +++ b/src/chart/generator/axis.h @@ -65,7 +65,7 @@ struct MeasureAxis { ::Anim::Interpolated enabled{false}; Math::Range range = Math::Range(0, 1); - std::string unit; + ::Anim::Interpolated unit; ::Anim::Interpolated step{1.0}; MeasureAxis() = default; MeasureAxis(Math::Range interval, diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index 49e8d5b87..c29d0f70f 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -228,19 +228,13 @@ void DrawInterlacing::drawDataLabel( bool horizontal, const Geom::Point &tickPos, double value, - const std::string &unit, + const ::Anim::Interpolated &unit, const Gfx::Color &textColor) { auto axisIndex = horizontal ? Gen::ChannelId::y : Gen::ChannelId::x; const auto &labelStyle = rootStyle.plot.getAxis(axisIndex).label; - auto str = Text::SmartString::fromNumber(value, - *labelStyle.numberFormat, - static_cast(*labelStyle.maxFractionDigits), - *labelStyle.numberScale, - unit); - labelStyle.position->visit( [this, &labelStyle, @@ -248,11 +242,15 @@ void DrawInterlacing::drawDataLabel( &tickPos, &horizontal, normal = Geom::Point::Ident(horizontal), - &str, + &unit, + &value, &textColor](int index, const auto &position) { if (labelStyle.position->interpolates() - && !axisEnabled.get(index).value) + && !axisEnabled + .get(std::min(axisEnabled.count - 1, + index)) + .value) return; Geom::Point refPos = tickPos; @@ -269,26 +267,49 @@ void DrawInterlacing::drawDataLabel( } auto under = labelStyle.position->interpolates() - ? labelStyle.side->get(index).value + ? labelStyle.side + ->get(std::min( + labelStyle.side->count - 1, + index)) + .value == Styles::AxisLabel::Side::negative : labelStyle.side->factor( Styles::AxisLabel::Side::negative); - - auto sign = 1 - 2 * under; - - auto posDir = coordSys.convertDirectionAt( - {refPos, refPos + normal}); - - posDir = posDir.extend(sign); - - OrientedLabelRenderer labelRenderer(*this); - auto label = - labelRenderer.create(str, posDir, labelStyle, 0); - labelRenderer.render(label, - textColor * position.weight, - *labelStyle.backgroundColor, - rootEvents.draw.plot.axis.label, - Events::Targets::axisLabel(str, !horizontal)); + unit.visit( + [this, + &unit, + &labelStyle, + &index, + &value, + posDir = coordSys + .convertDirectionAt( + {refPos, refPos + normal}) + .extend(1 - 2 * under), + &textColor, + &position, + &horizontal](int index2, const auto &wUnit) + { + if (labelStyle.position->interpolates() + && unit.interpolates() && index != index2) + return; + auto unitStr = wUnit.value; + auto str = Text::SmartString::fromNumber(value, + *labelStyle.numberFormat, + static_cast( + *labelStyle.maxFractionDigits), + *labelStyle.numberScale, + unitStr); + OrientedLabelRenderer labelRenderer(*this); + auto label = labelRenderer.create(str, + posDir, + labelStyle, + 0); + labelRenderer.render(label, + textColor * position.weight * wUnit.weight, + *labelStyle.backgroundColor * wUnit.weight, + rootEvents.draw.plot.axis.label, + Events::Targets::axisLabel(str, !horizontal)); + }); }); } diff --git a/src/chart/rendering/drawinterlacing.h b/src/chart/rendering/drawinterlacing.h index 708c717b8..a0bbb8f92 100644 --- a/src/chart/rendering/drawinterlacing.h +++ b/src/chart/rendering/drawinterlacing.h @@ -28,7 +28,7 @@ class DrawInterlacing : private DrawingContext bool horizontal, const Geom::Point &tickPos, double value, - const std::string &unit, + const ::Anim::Interpolated &unit, const Gfx::Color &textColor); void drawSticks(double tickIntensity, diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index ab38d059c..2a2698d44 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -158,8 +158,18 @@ void DrawLegend::drawMeasure(const Gen::MeasureAxis &axis) { enabled = axis.enabled.calculate(); - extremaLabel(axis.range.getMax(), axis.unit, 0); - extremaLabel(axis.range.getMin(), axis.unit, 5); + axis.unit.visit( + [this, &axis](int, const auto &unit) + { + extremaLabel(axis.range.getMax(), + unit.value, + 0, + unit.weight); + extremaLabel(axis.range.getMin(), + unit.value, + 5, + unit.weight); + }); auto bar = getBarRect(); @@ -174,7 +184,8 @@ void DrawLegend::drawMeasure(const Gen::MeasureAxis &axis) void DrawLegend::extremaLabel(double value, const std::string &unit, - int pos) + int pos, + double plusWeight) { auto text = Text::SmartString::fromNumber(value, *style.label.numberFormat, @@ -189,7 +200,7 @@ void DrawLegend::extremaLabel(double value, style.label, events.label, Events::Targets::legendLabel(text, type), - DrawLabel::Options(true, weight * enabled)); + DrawLabel::Options(true, weight * enabled * plusWeight)); } void DrawLegend::colorBar(const Geom::Rect &rect) diff --git a/src/chart/rendering/drawlegend.h b/src/chart/rendering/drawlegend.h index 2939aab65..fa36b1345 100644 --- a/src/chart/rendering/drawlegend.h +++ b/src/chart/rendering/drawlegend.h @@ -37,7 +37,10 @@ class DrawLegend : public DrawingContext void drawTitle(const ::Anim::String &title, double mul); - void extremaLabel(double value, const std::string &unit, int pos); + void extremaLabel(double value, + const std::string &unit, + int pos, + double plusWeight); void colorBar(const Geom::Rect &rect); void lightnessBar(const Geom::Rect &rect); void sizeBar(const Geom::Rect &rect); diff --git a/test/integration/test_cases/test_cases.json b/test/integration/test_cases/test_cases.json index 733c910ad..260021d82 100644 --- a/test/integration/test_cases/test_cases.json +++ b/test/integration/test_cases/test_cases.json @@ -113,7 +113,7 @@ "refs": ["b51fba3"] }, "basic_animations/someOtherTests/merge_split_area_stream_2dis_1con": { - "refs": ["530a2ba"] + "refs": ["940d210"] }, "basic_animations/someOtherTests/total_time_area_bar": { "refs": ["4503ca5"] @@ -221,10 +221,10 @@ "refs": ["138491d"] }, "operations/all_operations": { - "refs": ["e278744"] + "refs": ["4263129"] }, "operations/all_operations_sizeing": { - "refs": ["b30b5a4"] + "refs": ["95d6654"] }, "operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate": { "refs": ["8f3c3b6"] @@ -317,7 +317,7 @@ "refs": ["ab5615c"] }, "shorthands/column_shorthands": { - "refs": ["002a104"] + "refs": ["00fe9df"] }, "static_chart_types/cartesian_coo_sys/area_1dis_1con": { "refs": ["4454f52"] @@ -458,7 +458,7 @@ "refs": ["9003b50"] }, "web_content/analytical_operations/compare/area_100percent_stacked": { - "refs": ["1b95b28"] + "refs": ["ae1efbc"] }, "web_content/analytical_operations/compare/area_polar_split": { "refs": ["3ed985a"] @@ -473,7 +473,7 @@ "refs": ["3264c93"] }, "web_content/analytical_operations/compare/column_100percent_stacked": { - "refs": ["0ade9be"] + "refs": ["b887eaa"] }, "web_content/analytical_operations/compare/column_groupped_1": { "refs": ["1a662ea"] @@ -629,7 +629,7 @@ "refs": ["0c8aacf"] }, "web_content/analytical_operations/misc/orientation_marimekko": { - "refs": ["6870008"] + "refs": ["03cf1fb"] }, "web_content/analytical_operations/misc/pie_to_donut": { "refs": ["f20e8be"] @@ -644,7 +644,7 @@ "refs": ["fb84b42"] }, "web_content/analytical_operations/split/column_100percent_stacked": { - "refs": ["1a0b996"] + "refs": ["787bdff"] }, "web_content/analytical_operations/split/column_stacked": { "refs": ["1e004a2"] @@ -662,22 +662,22 @@ "refs": ["12bf6f0"] }, "web_content/analytical_operations/stretch_to_proportion/area_stacked": { - "refs": ["77a21e5"] + "refs": ["c1c8d86"] }, "web_content/analytical_operations/stretch_to_proportion/column_groupped": { - "refs": ["2f45be9"] + "refs": ["96b9af3"] }, "web_content/analytical_operations/stretch_to_proportion/column_split_stacked": { - "refs": ["57b8c77"] + "refs": ["c4722ca"] }, "web_content/analytical_operations/stretch_to_proportion/column_stacked": { - "refs": ["6870954"] + "refs": ["3079652"] }, "web_content/analytical_operations/stretch_to_proportion/line": { - "refs": ["15011f0"] + "refs": ["3ced485"] }, "web_content/analytical_operations/sum/area_100percent_stacked": { - "refs": ["affab50"] + "refs": ["4fe46e1"] }, "web_content/analytical_operations/sum/area_polar_split": { "refs": ["e04e94d"] @@ -713,7 +713,7 @@ "refs": ["1547dae"] }, "web_content/analytical_operations/sum/column_100percent_stacked": { - "refs": ["b104842"] + "refs": ["8584e94"] }, "web_content/analytical_operations/sum/column_1": { "refs": ["d8122ee"] @@ -782,13 +782,13 @@ "refs": ["3a1a33b"] }, "web_content_removed/animated/composition_percentage_area_stream_3dis_1con": { - "refs": ["12b6329"] + "refs": ["9e0b9a3"] }, "web_content_removed/animated/composition_percentage_column_3dis_1con": { - "refs": ["3193b10"] + "refs": ["a1eb52f"] }, "web_content_removed/animated/composition_percentage_column_stream_3dis_1con": { - "refs": ["83f6b00"] + "refs": ["0a4f1a3"] }, "web_content_removed/animated/distribution_relationship_dotplot_dotplot": { "refs": ["9bf8509"] @@ -815,7 +815,7 @@ "refs": ["f1f3f7b"] }, "web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con": { - "refs": ["ba4645a"] + "refs": ["176fbdc"] }, "web_content_removed/animated/orientation_rectangle": { "refs": ["24c160b"] @@ -1754,13 +1754,13 @@ "refs": ["8d0e8af"] }, "ww_next_steps/next_steps/03_C_R": { - "refs": ["41f6972"] + "refs": ["353b20e"] }, "ww_next_steps/next_steps/04_C_R": { - "refs": ["435485e"] + "refs": ["23de11d"] }, "ww_next_steps/next_steps/05_C_R": { - "refs": ["e45ae71"] + "refs": ["705aa0e"] }, "ww_next_steps/next_steps/21_C_C_dotplot": { "refs": ["c991435"] @@ -1769,13 +1769,13 @@ "refs": ["ec4da6c"] }, "ww_next_steps/next_steps/28_C_A": { - "refs": ["4eee5e4"] + "refs": ["f396191"] }, "ww_next_steps/next_steps/35_C_A_violin": { - "refs": ["1c9eb42"] + "refs": ["bdce840"] }, "ww_next_steps/next_steps/38_C_L_line": { - "refs": ["dff833c"] + "refs": ["a08c7c4"] }, "ww_next_steps/next_steps_Tests/02_C_R": { "refs": ["f13c899"] @@ -1784,13 +1784,13 @@ "refs": ["81c6c1e"] }, "ww_next_steps/next_steps_Tests/03_C_R": { - "refs": ["2051e28"] + "refs": ["4bbe3d5"] }, "ww_next_steps/next_steps_Tests/04_C_R": { - "refs": ["89ffa3f"] + "refs": ["9ccb70a"] }, "ww_next_steps/next_steps_Tests/05_C_R": { - "refs": ["1aed6dc"] + "refs": ["80c5969"] }, "ww_next_steps/next_steps_Tests/21_C_C_dotplot": { "refs": ["3551f7a"] @@ -1799,10 +1799,10 @@ "refs": ["81fcf00"] }, "ww_next_steps/next_steps_Tests/28_C_A": { - "refs": ["61568c8"] + "refs": ["f952e2d"] }, "ww_next_steps/next_steps_Tests/38_C_L_line": { - "refs": ["9d70693"] + "refs": ["3114075"] }, "ww_next_steps/next_steps_Tests/axisLabel_problem": { "refs": ["d33f180"] @@ -1817,7 +1817,7 @@ "refs": ["08d01ca"] }, "ww_next_steps/next_steps_byOperations/compare/comparison_04": { - "refs": ["028c1bb"] + "refs": ["ff004d8"] }, "ww_next_steps/next_steps_byOperations/compare/comparison_05": { "refs": ["e6258dc"] @@ -1832,7 +1832,7 @@ "refs": ["981e41c"] }, "ww_next_steps/next_steps_byOperations/compare/comparison_11": { - "refs": ["36ef72f"] + "refs": ["a6fd567"] }, "ww_next_steps/next_steps_byOperations/components/components_01": { "refs": ["342d170"] @@ -1844,7 +1844,7 @@ "refs": ["921ed62"] }, "ww_next_steps/next_steps_byOperations/components/components_04": { - "refs": ["8efbdf0"] + "refs": ["02aa8c5"] }, "ww_next_steps/next_steps_byOperations/components/components_05": { "refs": ["e2fbaa1"] @@ -1916,19 +1916,19 @@ "refs": ["483158f"] }, "ww_next_steps/next_steps_byOperations/ratio/ratio_01": { - "refs": ["09d6a24"] + "refs": ["0537644"] }, "ww_next_steps/next_steps_byOperations/ratio/ratio_02": { - "refs": ["5e2b423"] + "refs": ["6722052"] }, "ww_next_steps/next_steps_byOperations/ratio/ratio_03": { - "refs": ["0ea3ab4"] + "refs": ["935af47"] }, "ww_next_steps/next_steps_byOperations/ratio/ratio_04": { - "refs": ["d3895f8"] + "refs": ["42c1132"] }, "ww_next_steps/next_steps_byOperations/ratio/ratio_05": { - "refs": ["3a77b73"] + "refs": ["dd91874"] }, "ww_next_steps/next_steps_byOperations/remove/remove_01": { "refs": ["3311ca6"] @@ -1973,7 +1973,7 @@ "refs": ["816f652"] }, "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09": { - "refs": ["7a84826"] + "refs": ["dd25757"] }, "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10": { "refs": ["e13a025"] @@ -2000,7 +2000,7 @@ "refs": ["45eaabf"] }, "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19": { - "refs": ["a70c649"] + "refs": ["ecd3bbd"] }, "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20": { "refs": ["bc77498"] @@ -2042,7 +2042,7 @@ "refs": ["658a4b8"] }, "ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con": { - "refs": ["4b8b05c"] + "refs": ["a4fcf7c"] }, "ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02": { "refs": ["7cf90ec"] @@ -2615,7 +2615,7 @@ "refs": ["ea87d05"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution": { - "refs": ["f407364"] + "refs": ["b1dc7f4"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1": { "refs": ["181a9c4"] @@ -2627,22 +2627,22 @@ "refs": ["aa58cd6"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c": { - "refs": ["114c191"] + "refs": ["40b7f79"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c": { - "refs": ["413a0b6"] + "refs": ["819fdce"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c": { "refs": ["21ba8df"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c": { - "refs": ["36aaf0c"] + "refs": ["b20c0ec"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c": { - "refs": ["d98adfd"] + "refs": ["cf72829"] }, "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c": { - "refs": ["491e4c5"] + "refs": ["9a78f8b"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are": { "refs": ["607e9b6"] @@ -2891,7 +2891,7 @@ "refs": ["bade63b"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1": { - "refs": ["709d8aa"] + "refs": ["e492a5a"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1": { "refs": ["a860d9f"] @@ -2903,43 +2903,43 @@ "refs": ["eabfaf1"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1": { - "refs": ["0340d7d"] + "refs": ["a94f66c"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1": { - "refs": ["b5805a4"] + "refs": ["44c90e9"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c": { "refs": ["7b2811b"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c": { - "refs": ["b86b85e"] + "refs": ["efcf893"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c": { - "refs": ["4e3685b"] + "refs": ["990dc60"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c": { "refs": ["a685430"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c": { - "refs": ["7e15de2"] + "refs": ["ac1ed71"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c": { - "refs": ["069824c"] + "refs": ["deace7c"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter": { - "refs": ["4fc1907"] + "refs": ["4f88b89"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c": { "refs": ["fba58e2"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c": { - "refs": ["7d928e8"] + "refs": ["41884bc"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c": { - "refs": ["2cae541"] + "refs": ["3c6fe6f"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c": { - "refs": ["cf2546b"] + "refs": ["39b0f95"] }, "ww_noFade/wNoFade_wPromotion/0_01_reorder": { "refs": ["c43fb1d"] @@ -3146,7 +3146,7 @@ "refs": ["dfa1f88"] }, "ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3": { - "refs": ["3ce0005"] + "refs": ["4905e0d"] }, "ww_samples_for_presets/without_coo_sys/60_W_R_heatmap": { "refs": ["4d4090e"] From 5eebf7398b50eda04bf9790312d120a73daa7dfd Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Wed, 6 Dec 2023 13:55:17 +0100 Subject: [PATCH 095/180] fix returns --- src/chart/rendering/markerrenderer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index f2b129c2e..935a5b769 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -27,7 +27,7 @@ void MarkerRenderer::drawLines() const auto origo = plot->measureAxises.origo(); for (auto &marker : plot->getMarkers()) { - if (static_cast(marker.enabled) == 0) return; + if (static_cast(marker.enabled) == 0) continue; auto blended = AbstractMarker::createInterpolated(marker, getOptions(), @@ -92,7 +92,7 @@ void MarkerRenderer::drawLines() const void MarkerRenderer::drawMarkers() const { for (auto &marker : plot->getMarkers()) { - if (!shouldDrawMarkerBody(marker)) return; + if (!shouldDrawMarkerBody(marker)) continue; if (getOptions().geometry.contains(Gen::ShapeType::line) && getOptions().geometry.contains( @@ -174,7 +174,7 @@ void MarkerRenderer::drawMarkers() const void MarkerRenderer::drawLabels() const { for (auto &marker : plot->getMarkers()) { - if (static_cast(marker.enabled) == 0) return; + if (static_cast(marker.enabled) == 0) continue; auto blended = AbstractMarker::createInterpolated(marker, getOptions(), From cac6ec1fa17fc958abffcb8649697feef37990ce Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Wed, 6 Dec 2023 15:48:34 +0100 Subject: [PATCH 096/180] Review --- src/base/text/smartstring.cpp | 4 ++-- src/base/text/smartstring.h | 2 +- src/chart/rendering/drawinterlacing.cpp | 13 +++++++------ src/chart/rendering/drawlegend.cpp | 2 +- src/chart/rendering/markerrenderer.cpp | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/base/text/smartstring.cpp b/src/base/text/smartstring.cpp index 7ff3bb168..b13a85afc 100644 --- a/src/base/text/smartstring.cpp +++ b/src/base/text/smartstring.cpp @@ -48,7 +48,7 @@ std::vector SmartString::split(const std::string &str, return result; } -std::string SmartString::fromNumber(double value, +std::string SmartString::fromPhysicalValue(double value, NumberFormat format, size_t maxFractionDigits, const NumberScale &numberScale, @@ -88,7 +88,7 @@ std::string SmartString::escape(const std::string &str) { std::string result; for (const auto &ch : str) { - if ((ch == '\\') || '"' == ch) result.push_back('\\'); + if ((ch == '\\') || ch == '"') result.push_back('\\'); result.push_back(ch); } return result; diff --git a/src/base/text/smartstring.h b/src/base/text/smartstring.h index bbdfaa0aa..a4d69245d 100644 --- a/src/base/text/smartstring.h +++ b/src/base/text/smartstring.h @@ -26,7 +26,7 @@ class SmartString static void trim(std::string &string, int (*ignore)(int) = &isspace); - static std::string fromNumber(double value, + static std::string fromPhysicalValue(double value, NumberFormat format = NumberFormat::none, size_t maxFractionDigits = 2, const NumberScale &numberScale = NumberScale{}, diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index c29d0f70f..5d70c9455 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -293,12 +293,13 @@ void DrawInterlacing::drawDataLabel( && unit.interpolates() && index != index2) return; auto unitStr = wUnit.value; - auto str = Text::SmartString::fromNumber(value, - *labelStyle.numberFormat, - static_cast( - *labelStyle.maxFractionDigits), - *labelStyle.numberScale, - unitStr); + auto str = + Text::SmartString::fromPhysicalValue(value, + *labelStyle.numberFormat, + static_cast( + *labelStyle.maxFractionDigits), + *labelStyle.numberScale, + unitStr); OrientedLabelRenderer labelRenderer(*this); auto label = labelRenderer.create(str, posDir, diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index 2a2698d44..5e385e495 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -187,7 +187,7 @@ void DrawLegend::extremaLabel(double value, int pos, double plusWeight) { - auto text = Text::SmartString::fromNumber(value, + auto text = Text::SmartString::fromPhysicalValue(value, *style.label.numberFormat, static_cast(*style.label.maxFractionDigits), *style.label.numberScale, diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index 2b20fb1ed..ac259736d 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -306,7 +306,7 @@ std::string MarkerRenderer::getLabelText(size_t index) const return value.value.value_or(0); }) : values[index].value.value.value(); - valueStr = Text::SmartString::fromNumber(value, + valueStr = Text::SmartString::fromPhysicalValue(value, *labelStyle.numberFormat, static_cast(*labelStyle.maxFractionDigits), *labelStyle.numberScale, From 0ee9f3f1fd2e101d21a38f5839fa63199be5f33d Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Wed, 6 Dec 2023 16:22:26 +0100 Subject: [PATCH 097/180] compile fix after merge --- src/chart/rendering/drawlegend.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index 2df6ddc5d..408dd17b2 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -159,8 +159,8 @@ void DrawLegend::drawMeasure(const Info &info) const { if (info.measureEnabled <= 0) return; - axis.unit.visit( - [this, &axis](int, const auto &unit) + info.measure.unit.visit( + [this, &info](int, const auto &unit) { extremaLabel(info, info.measure.range.getMax(), From c151f21634d56edce29c95ba470bedd1e4c63b02 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 11 Dec 2023 14:55:52 +0100 Subject: [PATCH 098/180] rename guides to axis/marker guides. Move Marker bounds to rendered Marker --- src/chart/generator/guides.cpp | 22 +++--- src/chart/generator/guides.h | 4 +- src/chart/rendering/drawguides.cpp | 5 +- src/chart/rendering/drawmarkerinfo.cpp | 7 +- src/chart/rendering/markerrenderer.cpp | 68 ++++++++--------- .../rendering/markers/abstractmarker.cpp | 74 ++++--------------- src/chart/rendering/markers/abstractmarker.h | 14 +--- src/chart/rendering/markers/circlemarker.cpp | 5 +- .../rendering/markers/connectingmarker.cpp | 2 +- .../rendering/markers/rectanglemarker.cpp | 6 +- src/chart/rendering/markers/rectanglemarker.h | 1 - src/chart/rendering/renderedchart.cpp | 64 ++++++++++++---- src/chart/rendering/renderedchart.h | 15 +++- 13 files changed, 130 insertions(+), 157 deletions(-) diff --git a/src/chart/generator/guides.cpp b/src/chart/generator/guides.cpp index 925a66453..6668a53ad 100644 --- a/src/chart/generator/guides.cpp +++ b/src/chart/generator/guides.cpp @@ -12,10 +12,10 @@ GuidesByAxis interpolate(const GuidesByAxis &op0, res.labels = interpolate(op0.labels, op1.labels, factor); res.axisSticks = interpolate(op0.axisSticks, op1.axisSticks, factor); - res.dimensionGuides = - interpolate(op0.dimensionGuides, op1.dimensionGuides, factor); - res.guidelines = - interpolate(op0.guidelines, op1.guidelines, factor); + res.axisGuides = + interpolate(op0.axisGuides, op1.axisGuides, factor); + res.markerGuides = + interpolate(op0.markerGuides, op1.markerGuides, factor); res.interlacings = interpolate(op0.interlacings, op1.interlacings, factor); return res; @@ -24,9 +24,9 @@ GuidesByAxis interpolate(const GuidesByAxis &op0, bool GuidesByAxis::operator==(const GuidesByAxis &other) const { return axis == other.axis && labels == other.labels - && dimensionGuides == other.dimensionGuides + && axisGuides == other.axisGuides && axisSticks == other.axisSticks - && guidelines == other.guidelines + && markerGuides == other.markerGuides && interlacings == other.interlacings; } @@ -47,14 +47,14 @@ void Guides::init(const Options &options) x.axis = xOpt.axisLine.getValue(yIsMeasure); y.axis = yOpt.axisLine.getValue(xIsMeasure && !isPolar); - x.guidelines = xOpt.markerGuides.getValue( + x.markerGuides = xOpt.markerGuides.getValue( isCircle && yIsMeasure && !isPolar); - y.guidelines = yOpt.markerGuides.getValue( + y.markerGuides = yOpt.markerGuides.getValue( isCircle && xIsMeasure && !isPolar); - x.dimensionGuides = xOpt.guides.getValue(isLine && xIsMeasure); - y.dimensionGuides = yOpt.guides.getValue(isLine && yIsMeasure); + x.axisGuides = xOpt.guides.getValue(isLine && xIsMeasure); + y.axisGuides = yOpt.guides.getValue(isLine && yIsMeasure); x.interlacings = xOpt.interlacing.getValue( xIsMeasure && !isPolar && (!isHorizontal || !yIsMeasure)); @@ -100,7 +100,7 @@ const GuidesByAxis &Guides::at(ChannelId channel) const bool Guides::hasAnyGuides() const { - return y.guidelines != false || x.guidelines != false; + return y.markerGuides != false || x.markerGuides != false; } } \ No newline at end of file diff --git a/src/chart/generator/guides.h b/src/chart/generator/guides.h index c71f85236..f00bc8c43 100644 --- a/src/chart/generator/guides.h +++ b/src/chart/generator/guides.h @@ -16,9 +16,9 @@ struct GuidesByAxis Math::FuzzyBool axis; Math::FuzzyBool labels; Math::FuzzyBool axisSticks; - Math::FuzzyBool guidelines; + Math::FuzzyBool markerGuides; Math::FuzzyBool interlacings; - Math::FuzzyBool dimensionGuides; + Math::FuzzyBool axisGuides; bool operator==(const GuidesByAxis &other) const; }; diff --git a/src/chart/rendering/drawguides.cpp b/src/chart/rendering/drawguides.cpp index 1c51dd3b3..8a0180281 100644 --- a/src/chart/rendering/drawguides.cpp +++ b/src/chart/rendering/drawguides.cpp @@ -22,15 +22,14 @@ void DrawGuides::draw(bool horizontal) const auto &axis = axises.at(axisId); if (axis.enabled && *guideStyle.lineWidth > 0 - && (static_cast( - plot->guides.at(axisId).dimensionGuides) + && (static_cast(plot->guides.at(axisId).axisGuides) > 0)) { canvas.setLineWidth(*guideStyle.lineWidth); for (auto it = axis.begin(); it != axis.end(); ++it) { auto weight = it->second.weight; weight *= static_cast( - plot->guides.at(axisId).dimensionGuides); + plot->guides.at(axisId).axisGuides); if (weight == 0) continue; auto next = std::next(it); diff --git a/src/chart/rendering/drawmarkerinfo.cpp b/src/chart/rendering/drawmarkerinfo.cpp index 31f462185..4ccf29e93 100644 --- a/src/chart/rendering/drawmarkerinfo.cpp +++ b/src/chart/rendering/drawmarkerinfo.cpp @@ -76,11 +76,8 @@ void DrawMarkerInfo::MarkerDC::loadMarker(Content &cnt) parent.plot->getMarkers()[cnt.markerId.value()]; auto blendedMarker = - Draw::AbstractMarker::createInterpolated(marker, - parent.getOptions(), - parent.rootStyle, - parent.coordSys, - parent.plot->getMarkers(), + Draw::AbstractMarker::createInterpolated(parent.ctx(), + marker, 0); auto line = diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index 590db7c21..a3bf5f59b 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -26,25 +26,23 @@ void MarkerRenderer::drawLines() const auto origo = plot->measureAxises.origo(); + auto baseColor = + *style.color * static_cast(plot->anyAxisSet); + + auto xMarkerGuides = double{plot->guides.x.markerGuides}; + auto yMarkerGuides = double{plot->guides.y.markerGuides}; + auto xLineColor = baseColor * xMarkerGuides; + auto yLineColor = baseColor * yMarkerGuides; + for (auto &marker : plot->getMarkers()) { if (static_cast(marker.enabled) == 0) continue; - auto blended = AbstractMarker::createInterpolated(marker, - getOptions(), - rootStyle, - coordSys, - plot->getMarkers(), - 0); - - auto baseColor = - *style.color * static_cast(plot->anyAxisSet); + auto blended = + AbstractMarker::createInterpolated(ctx(), marker, 0); if (static_cast(blended.enabled) > 0) { - if (static_cast(plot->guides.x.guidelines) > 0) { - auto lineColor = - baseColor - * static_cast(plot->guides.x.guidelines); - canvas.setLineColor(lineColor); + if (xMarkerGuides > 0) { + canvas.setLineColor(xLineColor); auto axisPoint = blended.center.xComp() + origo.yComp(); const Geom::Line line(axisPoint, blended.center); @@ -60,18 +58,15 @@ void MarkerRenderer::drawLines() const std::move(guideElement)); } } - if (static_cast(plot->guides.y.guidelines) > 0) { - blended.center.x = Math::interpolate(blended.center.x, + if (yMarkerGuides > 0) { + auto center = Geom::Point{blended.center}; + center.x = Math::interpolate(center.x, 1.0, getOptions().coordSystem.factor( Gen::CoordSystem::polar)); - auto lineColor = - baseColor - * static_cast(plot->guides.y.guidelines); - canvas.setLineColor(lineColor); - auto axisPoint = - blended.center.yComp() + origo.xComp(); - const Geom::Line line(blended.center, axisPoint); + canvas.setLineColor(yLineColor); + auto axisPoint = center.yComp() + origo.xComp(); + const Geom::Line line(center, axisPoint); auto guideElement = Events::Targets::markerGuide(marker, true); @@ -123,11 +118,8 @@ void MarkerRenderer::drawMarkers() const ::Anim::Weighted value) { auto blended0 = - AbstractMarker::createInterpolated(marker, - getOptions(), - rootStyle, - coordSys, - plot->getMarkers(), + AbstractMarker::createInterpolated(ctx(), + marker, index); auto lineFactor = @@ -176,12 +168,8 @@ void MarkerRenderer::drawLabels() const for (auto &marker : plot->getMarkers()) { if (static_cast(marker.enabled) == 0) continue; - auto blended = AbstractMarker::createInterpolated(marker, - getOptions(), - rootStyle, - coordSys, - plot->getMarkers(), - 0); + auto blended = + AbstractMarker::createInterpolated(ctx(), marker, 0); drawLabel(blended, 0); drawLabel(blended, 1); @@ -255,7 +243,11 @@ void MarkerRenderer::draw(const AbstractMarker &abstractMarker, colors.second * static_cast(abstractMarker.connected)); - renderedChart.emplace(Draw::Marker{abstractMarker.marker}, + renderedChart.emplace( + Draw::Marker{abstractMarker.marker.enabled != false, + abstractMarker.shapeType, + abstractMarker.points, + abstractMarker.lineWidth}, std::move(markerElement)); } } @@ -264,7 +256,11 @@ void MarkerRenderer::draw(const AbstractMarker &abstractMarker, Events::OnRectDrawEvent(*markerElement, {boundary, true}))) { painter.drawPolygon(abstractMarker.points); - renderedChart.emplace(Draw::Marker{abstractMarker.marker}, + renderedChart.emplace( + Draw::Marker{abstractMarker.marker.enabled != false, + abstractMarker.shapeType, + abstractMarker.points, + abstractMarker.lineWidth}, std::move(markerElement)); } } diff --git a/src/chart/rendering/markers/abstractmarker.cpp b/src/chart/rendering/markers/abstractmarker.cpp index 97bc98a60..96e5277e7 100644 --- a/src/chart/rendering/markers/abstractmarker.cpp +++ b/src/chart/rendering/markers/abstractmarker.cpp @@ -21,7 +21,7 @@ AbstractMarker AbstractMarker::create(const Gen::Marker &marker, { switch (shapeType) { case Gen::ShapeType::rectangle: - return RectangleMarker(marker, coordSys, options, style); + return RectangleMarker(marker, options, style); case Gen::ShapeType::circle: return CircleMarker(marker, coordSys, options, style); case Gen::ShapeType::area: @@ -33,26 +33,25 @@ AbstractMarker AbstractMarker::create(const Gen::Marker &marker, markers, lineIndex, shapeType); - default: return {marker, coordSys, options}; + default: return {marker, options}; } } AbstractMarker AbstractMarker::createInterpolated( + const DrawingContext &ctx, const Gen::Marker &marker, - const Gen::Options &options, - const Styles::Chart &style, - const CoordinateSystem &coordSys, - const Gen::Plot::Markers &markers, size_t lineIndex) { + auto &options = ctx.getOptions(); + auto fromShapeType = options.geometry.get(0).value; auto fromMarker = create(marker, options, fromShapeType, - style, - coordSys, - markers, + ctx.rootStyle, + ctx.coordSys, + ctx.plot->getMarkers(), lineIndex); auto toShapeType = options.geometry.get(1).value; @@ -62,12 +61,12 @@ AbstractMarker AbstractMarker::createInterpolated( auto toMarker = create(marker, options, toShapeType, - style, - coordSys, - markers, + ctx.rootStyle, + ctx.coordSys, + ctx.plot->getMarkers(), lineIndex); - AbstractMarker aMarker(marker, coordSys, options); + AbstractMarker aMarker(marker, options); aMarker.enabled = fromMarker.enabled + toMarker.enabled; aMarker.labelEnabled = fromMarker.labelEnabled + toMarker.labelEnabled; @@ -168,65 +167,18 @@ Geom::Line AbstractMarker::getLabelPos( return res; } -bool AbstractMarker::bounds(const Geom::Point &point) -{ - if (static_cast(enabled) == 0) return false; - - /** Approximated solution */ - auto isInside = shapeType.combine( - [this, &point](int, const Gen::ShapeType &shapeType) - { - switch (shapeType) { - case Gen::ShapeType::rectangle: - case Gen::ShapeType::area: - return Math::FuzzyBool{ - Geom::ConvexQuad(points).contains(point, 0.01)}; - case Gen::ShapeType::circle: - return Math::FuzzyBool{ - Geom::Circle(Geom::Rect::Boundary(points), - Geom::Circle::FromRect::sameWidth) - .overlaps(Geom::Circle(point, 0.01), 0.1)}; - case Gen::ShapeType::line: - return Math::FuzzyBool{ - lineToQuad(10.0).contains(coordSys.convert(point), - 0.1)}; - } - return Math::FuzzyBool{false}; - }); - - return isInside != false; -} - -Geom::ConvexQuad AbstractMarker::lineToQuad(double atLeastWidth) const -{ - auto line = getLine(); - - auto pBeg = coordSys.convert(line.begin); - auto pEnd = coordSys.convert(line.end); - - auto wBeg = lineWidth[0] * coordSys.getRect().size.minSize(); - auto wEnd = lineWidth[1] * coordSys.getRect().size.minSize(); - return Geom::ConvexQuad::Isosceles(pBeg, - pEnd, - std::max(atLeastWidth, wBeg * 2), - std::max(atLeastWidth, wEnd * 2)); -} - AbstractMarker::AbstractMarker(const Gen::Marker &marker, - const CoordinateSystem &coordSys, const Gen::Options &options) : marker(marker), - coordSys(coordSys), shapeType(options.geometry), enabled(false), labelEnabled(false) {} SingleDrawMarker::SingleDrawMarker(const Gen::Marker &marker, - const CoordinateSystem &coordSys, const Gen::Options &options, Gen::ShapeType type) : - AbstractMarker(marker, coordSys, options) + AbstractMarker(marker, options) { enabled = options.geometry.factor(type) && marker.enabled; diff --git a/src/chart/rendering/markers/abstractmarker.h b/src/chart/rendering/markers/abstractmarker.h index 6006a8153..b673f2113 100644 --- a/src/chart/rendering/markers/abstractmarker.h +++ b/src/chart/rendering/markers/abstractmarker.h @@ -10,6 +10,7 @@ #include "chart/generator/marker.h" #include "chart/generator/plot.h" #include "chart/main/style.h" +#include "chart/rendering/drawingcontext.h" #include "chart/rendering/painter/coordinatesystem.h" namespace Vizzu::Draw @@ -19,15 +20,11 @@ class AbstractMarker { public: static AbstractMarker createInterpolated( + const DrawingContext &ctx, const Gen::Marker &marker, - const Gen::Options &options, - const Styles::Chart &style, - const CoordinateSystem &coordSys, - const Gen::Plot::Markers &markers, size_t lineIndex); const Gen::Marker ▮ - const CoordinateSystem &coordSys; ::Anim::Interpolated shapeType; Math::FuzzyBool enabled; Math::FuzzyBool labelEnabled; @@ -41,7 +38,6 @@ class AbstractMarker Geom::Rect dataRect; double radius{}; - bool bounds(const Geom::Point &); [[nodiscard]] Geom::Rect getBoundary() const; [[nodiscard]] Geom::Line getLine() const; [[nodiscard]] Geom::Line getStick() const; @@ -51,7 +47,6 @@ class AbstractMarker protected: AbstractMarker(const Gen::Marker &marker, - const CoordinateSystem &coordSys, const Gen::Options &options); static AbstractMarker create(const Gen::Marker &marker, @@ -61,17 +56,12 @@ class AbstractMarker const CoordinateSystem &coordSys, const Gen::Plot::Markers &markers, size_t lineIndex); - -private: - [[nodiscard]] Geom::ConvexQuad lineToQuad( - double atLeastWidth = 0.0) const; }; class SingleDrawMarker : public AbstractMarker { public: SingleDrawMarker(const Gen::Marker &marker, - const CoordinateSystem &coordSys, const Gen::Options &options, Gen::ShapeType type); }; diff --git a/src/chart/rendering/markers/circlemarker.cpp b/src/chart/rendering/markers/circlemarker.cpp index 084bfadfb..ed938668d 100644 --- a/src/chart/rendering/markers/circlemarker.cpp +++ b/src/chart/rendering/markers/circlemarker.cpp @@ -7,10 +7,7 @@ CircleMarker::CircleMarker(const Gen::Marker &marker, const CoordinateSystem &coordSys, const Gen::Options &options, const Styles::Chart &style) : - SingleDrawMarker(marker, - coordSys, - options, - Gen::ShapeType::circle) + SingleDrawMarker(marker, options, Gen::ShapeType::circle) { morphToCircle = true; border = false; diff --git a/src/chart/rendering/markers/connectingmarker.cpp b/src/chart/rendering/markers/connectingmarker.cpp index db63ac12a..4d5a7a80b 100644 --- a/src/chart/rendering/markers/connectingmarker.cpp +++ b/src/chart/rendering/markers/connectingmarker.cpp @@ -12,7 +12,7 @@ ConnectingMarker::ConnectingMarker(const Gen::Marker &marker, const Gen::Plot::Markers &markers, size_t lineIndex, Gen::ShapeType type) : - AbstractMarker(marker, coordSys, options) + AbstractMarker(marker, options) { auto isLine = type == Gen::ShapeType::line; auto isArea = type == Gen::ShapeType::area; diff --git a/src/chart/rendering/markers/rectanglemarker.cpp b/src/chart/rendering/markers/rectanglemarker.cpp index ef274ee35..1c72f4b61 100644 --- a/src/chart/rendering/markers/rectanglemarker.cpp +++ b/src/chart/rendering/markers/rectanglemarker.cpp @@ -4,13 +4,9 @@ namespace Vizzu::Draw { RectangleMarker::RectangleMarker(const Gen::Marker &marker, - const CoordinateSystem &coordSystem, const Gen::Options &options, const Styles::Chart &style) : - SingleDrawMarker(marker, - coordSystem, - options, - Gen::ShapeType::rectangle) + SingleDrawMarker(marker, options, Gen::ShapeType::rectangle) { linear = options.coordSystem.factor(Gen::CoordSystem::polar) diff --git a/src/chart/rendering/markers/rectanglemarker.h b/src/chart/rendering/markers/rectanglemarker.h index 9f2a67cbc..f83bb919b 100644 --- a/src/chart/rendering/markers/rectanglemarker.h +++ b/src/chart/rendering/markers/rectanglemarker.h @@ -10,7 +10,6 @@ class RectangleMarker : public SingleDrawMarker { public: RectangleMarker(const Gen::Marker &marker, - const CoordinateSystem &coordSys, const Gen::Options &options, const Styles::Chart &style); }; diff --git a/src/chart/rendering/renderedchart.cpp b/src/chart/rendering/renderedchart.cpp index b3e9ff559..6cda0143a 100644 --- a/src/chart/rendering/renderedchart.cpp +++ b/src/chart/rendering/renderedchart.cpp @@ -31,24 +31,58 @@ const Util::EventTarget *RenderedChart::find( } else if (const auto *marker = std::get_if(&element.geometry)) { - if (plot) { - const auto &options = *plot->getOptions(); - - auto drawItem = - Draw::AbstractMarker::createInterpolated( - marker->marker, - options, - plot->getStyle(), - coordinateSystem, - plot->getMarkers(), - 0); - - if (drawItem.bounds(original)) - return element.target.get(); - } + if (marker->bounds(coordinateSystem, original)) + return element.target.get(); } } return nullptr; } +bool Marker::bounds(const CoordinateSystem &coordSys, + const Geom::Point &point) const +{ + if (!enabled) return false; + + /** Approximated solution */ + auto isInside = shapeType.combine( + [this, &point, &coordSys](int, + const Gen::ShapeType &shapeType) + { + switch (shapeType) { + case Gen::ShapeType::rectangle: + case Gen::ShapeType::area: + return Math::FuzzyBool{ + Geom::ConvexQuad(points).contains(point, 0.01)}; + case Gen::ShapeType::circle: + return Math::FuzzyBool{ + Geom::Circle(Geom::Rect::Boundary(points), + Geom::Circle::FromRect::sameWidth) + .overlaps(Geom::Circle(point, 0.01), 0.1)}; + case Gen::ShapeType::line: + return Math::FuzzyBool{ + lineToQuad(coordSys, 10.0) + .contains(coordSys.convert(point), 0.1)}; + } + return Math::FuzzyBool{false}; + }); + + return isInside != false; +} + +Geom::ConvexQuad Marker::lineToQuad(const CoordinateSystem &coordSys, + double atLeastWidth) const +{ + auto line = getLine(); + + auto pBeg = coordSys.convert(line.begin); + auto pEnd = coordSys.convert(line.end); + + auto wBeg = lineWidth[0] * coordSys.getRect().size.minSize(); + auto wEnd = lineWidth[1] * coordSys.getRect().size.minSize(); + return Geom::ConvexQuad::Isosceles(pBeg, + pEnd, + std::max(atLeastWidth, wBeg * 2), + std::max(atLeastWidth, wEnd * 2)); +} +Geom::Line Marker::getLine() const { return {points[3], points[2]}; } } \ No newline at end of file diff --git a/src/chart/rendering/renderedchart.h b/src/chart/rendering/renderedchart.h index ed111c04f..bfbb841d4 100644 --- a/src/chart/rendering/renderedchart.h +++ b/src/chart/rendering/renderedchart.h @@ -34,7 +34,20 @@ class Rect class Marker { public: - const Gen::Marker ▮ + bool enabled; + ::Anim::Interpolated shapeType; + std::array points; + std::array lineWidth; + + [[nodiscard]] bool bounds(const CoordinateSystem &coordSys, + const Geom::Point &point) const; + +private: + [[nodiscard]] Geom::ConvexQuad lineToQuad( + const CoordinateSystem &coordSys, + double atLeastWidth) const; + + [[nodiscard]] Geom::Line getLine() const; }; class DrawingElement From 1d596bb11aea40142c2e438720f2473f1c8b379a Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 11 Dec 2023 15:23:07 +0100 Subject: [PATCH 099/180] Refactor OrientedLabel --- src/chart/rendering/drawaxes.cpp | 17 ++++----- src/chart/rendering/drawinterlacing.cpp | 22 ++++++----- src/chart/rendering/markerrenderer.cpp | 19 ++++++---- .../rendering/markers/abstractmarker.cpp | 2 +- src/chart/rendering/orientedlabel.cpp | 37 ++++++++----------- src/chart/rendering/orientedlabel.h | 23 ++++-------- 6 files changed, 55 insertions(+), 65 deletions(-) diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index 0ed64e750..7f48f2ff8 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -324,16 +324,13 @@ void DrawAxes::drawDimensionLabel(bool horizontal, posDir = posDir.extend(sign); - OrientedLabelRenderer labelRenderer{{ctx()}, - canvas, - painter}; - auto label = - labelRenderer.create(text, posDir, labelStyle, 0); - labelRenderer.render(label, - textColor * weight * position.weight, - *labelStyle.backgroundColor, - *rootEvents.draw.plot.axis.label, - Events::Targets::axisLabel(text, horizontal)); + OrientedLabel::create(canvas, text, posDir, labelStyle, 0) + .draw(canvas, + renderedChart, + textColor * weight * position.weight, + *labelStyle.backgroundColor, + *rootEvents.draw.plot.axis.label, + Events::Targets::axisLabel(text, horizontal)); }); } diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index 4fc1f96e2..c221e19e3 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -296,18 +296,20 @@ void DrawInterlacing::drawDataLabel( *labelStyle.maxFractionDigits), *labelStyle.numberScale, unitStr); - OrientedLabelRenderer labelRenderer{{ctx()}, - canvas, - painter}; - auto label = labelRenderer.create(str, + OrientedLabel::create(canvas, + str, posDir, labelStyle, - 0); - labelRenderer.render(label, - textColor * position.weight * wUnit.weight, - *labelStyle.backgroundColor * wUnit.weight, - *rootEvents.draw.plot.axis.label, - Events::Targets::axisLabel(str, !horizontal)); + 0) + .draw(canvas, + renderedChart, + textColor * position.weight + * wUnit.weight, + *labelStyle.backgroundColor + * wUnit.weight, + *rootEvents.draw.plot.axis.label, + Events::Targets::axisLabel(str, + !horizontal)); }); }); } diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index a3bf5f59b..9942dddaf 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -297,14 +297,17 @@ void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, auto centered = labelStyle.position->factor( Styles::MarkerLabel::Position::center); - OrientedLabelRenderer labelRenderer{{ctx()}, canvas, painter}; - - labelRenderer.render( - labelRenderer.create(text, labelPos, labelStyle, centered), - textColor, - bgColor, - *rootEvents.draw.plot.marker.label, - Events::Targets::markerLabel(text, marker)); + OrientedLabel::create(canvas, + text, + labelPos, + labelStyle, + centered) + .draw(canvas, + renderedChart, + textColor, + bgColor, + *rootEvents.draw.plot.marker.label, + Events::Targets::markerLabel(text, marker)); } std::string MarkerRenderer::getLabelText( diff --git a/src/chart/rendering/markers/abstractmarker.cpp b/src/chart/rendering/markers/abstractmarker.cpp index 96e5277e7..677b0478b 100644 --- a/src/chart/rendering/markers/abstractmarker.cpp +++ b/src/chart/rendering/markers/abstractmarker.cpp @@ -42,7 +42,7 @@ AbstractMarker AbstractMarker::createInterpolated( const Gen::Marker &marker, size_t lineIndex) { - auto &options = ctx.getOptions(); + const auto &options = ctx.getOptions(); auto fromShapeType = options.geometry.get(0).value; diff --git a/src/chart/rendering/orientedlabel.cpp b/src/chart/rendering/orientedlabel.cpp index 571094799..61d211a24 100644 --- a/src/chart/rendering/orientedlabel.cpp +++ b/src/chart/rendering/orientedlabel.cpp @@ -5,14 +5,13 @@ namespace Vizzu::Draw { -OrientedLabel OrientedLabelRenderer::create(const std::string &text, +OrientedLabel OrientedLabel::create(Gfx::ICanvas &canvas, + const std::string &text, const Geom::Line &labelPos, const Styles::OrientedLabel &labelStyle, - double centered) const + double centered) { - OrientedLabel res(text); - - if (text.empty()) return res; + if (text.empty()) return {text}; const Gfx::Font font(labelStyle); canvas.setFont(font); @@ -67,26 +66,24 @@ OrientedLabel OrientedLabelRenderer::create(const std::string &text, transform = transform * Geom::AffineTransform(paddedSize, 1.0, -M_PI); - res.rect.transform = transform; - res.rect.size = Geom::Size{paddedSize}; - - res.contentRect = Geom::Rect(margin.topLeft(), neededSize); - - return res; + return {text, + {transform, {paddedSize}}, + {margin.topLeft(), neededSize}}; } -void OrientedLabelRenderer::render(const OrientedLabel &label, +void OrientedLabel::draw(Gfx::ICanvas &canvas, + RenderedChart &renderedChart, const Gfx::Color &textColor, const Gfx::Color &bgColor, Util::EventDispatcher::Event &event, - std::unique_ptr eventTarget) + std::unique_ptr eventTarget) const { if (!bgColor.isTransparent()) { canvas.save(); canvas.setBrushColor(bgColor); canvas.setLineColor(bgColor); - canvas.transform(label.rect.transform); - canvas.rectangle(Geom::Rect(Geom::Point(), label.rect.size)); + canvas.transform(rect.transform); + canvas.rectangle(Geom::Rect(Geom::Point(), rect.size)); canvas.restore(); } @@ -94,14 +91,12 @@ void OrientedLabelRenderer::render(const OrientedLabel &label, canvas.save(); canvas.setTextColor(textColor); - Events::OnTextDrawEvent eventObj(*eventTarget, - label.rect, - label.text); + Events::OnTextDrawEvent eventObj(*eventTarget, rect, text); if (event.invoke(std::move(eventObj))) { - canvas.transform(label.rect.transform); - canvas.text(label.contentRect, label.text); - renderedChart.emplace(label.rect, std::move(eventTarget)); + canvas.transform(rect.transform); + canvas.text(contentRect, text); + renderedChart.emplace(rect, std::move(eventTarget)); } canvas.restore(); } diff --git a/src/chart/rendering/orientedlabel.h b/src/chart/rendering/orientedlabel.h index eed6a9b02..d92e3e326 100644 --- a/src/chart/rendering/orientedlabel.h +++ b/src/chart/rendering/orientedlabel.h @@ -12,30 +12,23 @@ namespace Vizzu::Draw class OrientedLabel { public: - explicit OrientedLabel(const std::string &text) : text(text) {} - Geom::TransformedRect rect; - Geom::Rect contentRect; const std::string &text; -}; + Geom::TransformedRect rect{}; + Geom::Rect contentRect{}; -class OrientedLabelRenderer : public DrawingContext -{ -public: - Gfx::ICanvas &canvas; - Painter &painter; - - [[nodiscard]] OrientedLabel create(const std::string &text, + [[nodiscard]] static OrientedLabel create(Gfx::ICanvas &canvas, + const std::string &text, const Geom::Line &labelPos, const Styles::OrientedLabel &labelStyle, - double centered) const; + double centered); - void render(const OrientedLabel &label, + void draw(Gfx::ICanvas &canvas, + RenderedChart &renderedChart, const Gfx::Color &textColor, const Gfx::Color &bgColor, Util::EventDispatcher::Event &event, - std::unique_ptr eventTarget); + std::unique_ptr eventTarget) const; }; - } #endif From 53a5ddd1b401df4e15a9563e51c3009ef57e6593 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 11 Dec 2023 16:30:50 +0100 Subject: [PATCH 100/180] MarkerRenderer refactor --- src/chart/rendering/drawplot.cpp | 8 +- src/chart/rendering/markerrenderer.cpp | 229 ++++++++++-------- src/chart/rendering/markerrenderer.h | 20 +- .../rendering/markers/abstractmarker.cpp | 42 +--- src/chart/rendering/markers/abstractmarker.h | 7 +- .../rendering/markers/connectingmarker.cpp | 32 +-- .../rendering/markers/connectingmarker.h | 7 +- 7 files changed, 173 insertions(+), 172 deletions(-) diff --git a/src/chart/rendering/drawplot.cpp b/src/chart/rendering/drawplot.cpp index f6468f439..a94be947e 100644 --- a/src/chart/rendering/drawplot.cpp +++ b/src/chart/rendering/drawplot.cpp @@ -34,14 +34,14 @@ void DrawPlot::draw(Gfx::ICanvas &canvas, drawPlotArea(canvas, painter, true); } - auto markerRenderer = MarkerRenderer{{ctx()}, canvas, painter}; - markerRenderer.drawLines(); + auto &&markerRenderer = MarkerRenderer::create(ctx()); + markerRenderer.drawLines(canvas, painter); - markerRenderer.drawMarkers(); + markerRenderer.drawMarkers(canvas, painter); if (clip) canvas.restore(); - markerRenderer.drawLabels(); + markerRenderer.drawLabels(canvas); axes.drawLabels(); } diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index 9942dddaf..09785a397 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -13,124 +13,129 @@ namespace Vizzu::Draw { -void MarkerRenderer::drawLines() const +void MarkerRenderer::drawLines(Gfx::ICanvas &canvas, + Painter &painter) const { const auto &style = rootStyle.plot.marker.guides; if (style.color->isTransparent() || *style.lineWidth <= 0 - || static_cast(plot->anyAxisSet) <= 0 - || !plot->guides.hasAnyGuides()) + || plot->anyAxisSet == false || !plot->guides.hasAnyGuides()) return; canvas.setLineWidth(*style.lineWidth); auto origo = plot->measureAxises.origo(); - auto baseColor = - *style.color * static_cast(plot->anyAxisSet); + auto baseColor = *style.color * double{plot->anyAxisSet}; auto xMarkerGuides = double{plot->guides.x.markerGuides}; auto yMarkerGuides = double{plot->guides.y.markerGuides}; auto xLineColor = baseColor * xMarkerGuides; auto yLineColor = baseColor * yMarkerGuides; - for (auto &marker : plot->getMarkers()) { - if (static_cast(marker.enabled) == 0) continue; - - auto blended = - AbstractMarker::createInterpolated(ctx(), marker, 0); - - if (static_cast(blended.enabled) > 0) { - if (xMarkerGuides > 0) { - canvas.setLineColor(xLineColor); - auto axisPoint = - blended.center.xComp() + origo.yComp(); - const Geom::Line line(axisPoint, blended.center); - - auto guideElement = - Events::Targets::markerGuide(marker, false); - - if (rootEvents.draw.plot.marker.guide->invoke( - Events::OnLineDrawEvent(*guideElement, - {line, true}))) { - painter.drawLine(line); - renderedChart.emplace(Draw::Line{line, true}, - std::move(guideElement)); - } + for (const auto &blended : markers) { + if (blended.marker.enabled == false + || blended.enabled == false) + continue; + + if (xMarkerGuides > 0) { + canvas.setLineColor(xLineColor); + auto axisPoint = blended.center.xComp() + origo.yComp(); + const Geom::Line line(axisPoint, blended.center); + + auto guideElement = + Events::Targets::markerGuide(blended.marker, false); + + if (rootEvents.draw.plot.marker.guide->invoke( + Events::OnLineDrawEvent(*guideElement, + {line, true}))) { + painter.drawLine(line); + renderedChart.emplace(Draw::Line{line, true}, + std::move(guideElement)); } - if (yMarkerGuides > 0) { - auto center = Geom::Point{blended.center}; - center.x = Math::interpolate(center.x, - 1.0, - getOptions().coordSystem.factor( - Gen::CoordSystem::polar)); - canvas.setLineColor(yLineColor); - auto axisPoint = center.yComp() + origo.xComp(); - const Geom::Line line(center, axisPoint); - - auto guideElement = - Events::Targets::markerGuide(marker, true); - - if (rootEvents.draw.plot.marker.guide->invoke( - Events::OnLineDrawEvent(*guideElement, - {line, true}))) { - painter.drawLine(line); - renderedChart.emplace(Draw::Line{line, true}, - std::move(guideElement)); - } + } + if (yMarkerGuides > 0) { + auto center = Geom::Point{blended.center}; + center.x = Math::interpolate(center.x, + 1.0, + getOptions().coordSystem.factor( + Gen::CoordSystem::polar)); + canvas.setLineColor(yLineColor); + auto axisPoint = center.yComp() + origo.xComp(); + const Geom::Line line(center, axisPoint); + + auto guideElement = + Events::Targets::markerGuide(blended.marker, true); + + if (rootEvents.draw.plot.marker.guide->invoke( + Events::OnLineDrawEvent(*guideElement, + {line, true}))) { + painter.drawLine(line); + renderedChart.emplace(Draw::Line{line, true}, + std::move(guideElement)); } } } canvas.setLineWidth(0); } -void MarkerRenderer::drawMarkers() const +void MarkerRenderer::drawMarkers(Gfx::ICanvas &canvas, + Painter &painter) const { - for (auto &marker : plot->getMarkers()) { - if (!shouldDrawMarkerBody(marker)) continue; - + for (const auto &blended : markers) { if (getOptions().geometry.contains(Gen::ShapeType::line) && getOptions().geometry.contains( Gen::ShapeType::circle)) { - const CircleMarker circle(marker, + const CircleMarker circle(blended.marker, coordSys, getOptions(), rootStyle); - draw(circle, 1, false); + draw(canvas, painter, circle, 1, false); - marker.prevMainMarkerIdx.visit( - [this, &marker](int index, auto value) + blended.marker.prevMainMarkerIdx.visit( + [this, &blended, &canvas, &painter](int index, + auto value) { - const ConnectingMarker line(marker, - coordSys, - getOptions(), - rootStyle, - plot->getMarkers(), - index, - Gen::ShapeType::line); - - draw(line, value.weight, true); + draw(canvas, + painter, + ConnectingMarker{ctx(), + blended.marker, + static_cast(index), + Gen::ShapeType::line}, + value.weight, + true); }); } else { - auto drawMarker = [this, &marker](int index, - ::Anim::Weighted value) + std::optional other; + auto drawMarker = + [this, &blended, &other, &canvas, &painter](int index, + ::Anim::Weighted value) { - auto blended0 = - AbstractMarker::createInterpolated(ctx(), - marker, - index); + if (index == 1 && !other) { + other.emplace( + AbstractMarker::createInterpolated(ctx(), + blended.marker, + 1)); + } + const auto &blended0 = index == 0 ? blended : *other; auto lineFactor = getOptions().geometry.factor( Gen::ShapeType::line); - draw(blended0, + draw(canvas, + painter, + blended0, value.weight * (1 - lineFactor) * (1 - lineFactor), false); - draw(blended0, value.weight * sqrt(lineFactor), true); + draw(canvas, + painter, + blended0, + value.weight * sqrt(lineFactor), + true); }; auto containsConnected = @@ -155,7 +160,8 @@ void MarkerRenderer::drawMarkers() const ::Anim::Weighted(0)); } else - marker.prevMainMarkerIdx.visit(drawMarker); + blended.marker.prevMainMarkerIdx.visit( + drawMarker); } else drawMarker(0, ::Anim::Weighted(0)); @@ -163,49 +169,47 @@ void MarkerRenderer::drawMarkers() const } } -void MarkerRenderer::drawLabels() const +void MarkerRenderer::drawLabels(Gfx::ICanvas &canvas) const { - for (auto &marker : plot->getMarkers()) { - if (static_cast(marker.enabled) == 0) continue; - - auto blended = - AbstractMarker::createInterpolated(ctx(), marker, 0); - - drawLabel(blended, 0); - drawLabel(blended, 1); + for (const auto &blended : markers) { + if (blended.marker.enabled == false) continue; + drawLabel(canvas, blended, 0); + drawLabel(canvas, blended, 1); } } bool MarkerRenderer::shouldDrawMarkerBody( const Gen::Marker &marker) const { - bool enabled = static_cast(marker.enabled) > 0; - if (getOptions().geometry.factor( - Gen::ShapeType::area) - != false) { - const auto *prev0 = - ConnectingMarker::getPrev(marker, plot->getMarkers(), 0); - - const auto *prev1 = - ConnectingMarker::getPrev(marker, plot->getMarkers(), 1); - - if (prev0) enabled |= static_cast(prev0->enabled) > 0; - if (prev1) enabled |= static_cast(prev1->enabled) > 0; + bool enabled = marker.enabled != false; + if (!enabled + && getOptions().geometry.factor( + Gen::ShapeType::area) + != false) { + + if (const auto *prev0 = ConnectingMarker::getPrev(marker, + plot->getMarkers(), + 0)) + enabled |= prev0->enabled != false; + if (const auto *prev1 = ConnectingMarker::getPrev(marker, + plot->getMarkers(), + 1)) + enabled |= prev1->enabled != false; } return enabled; } -void MarkerRenderer::draw(const AbstractMarker &abstractMarker, +void MarkerRenderer::draw(Gfx::ICanvas &canvas, + Painter &painter, + const AbstractMarker &abstractMarker, double factor, - bool line) const + bool isLine) const { - if (static_cast(abstractMarker.enabled) == 0 - || factor == 0) - return; + if (abstractMarker.enabled == false || factor == 0) return; painter.setPolygonToCircleFactor( - line ? 0.0 - : static_cast(abstractMarker.morphToCircle)); + isLine ? 0.0 + : static_cast(abstractMarker.morphToCircle)); painter.setPolygonStraightFactor( static_cast(abstractMarker.linear)); painter.setResMode(ResolutionMode::High); @@ -223,7 +227,7 @@ void MarkerRenderer::draw(const AbstractMarker &abstractMarker, auto markerElement = Events::Targets::marker(abstractMarker.marker); - if (line) { + if (isLine) { auto line = abstractMarker.getLine(); auto p0 = coordSys.convert(line.begin); @@ -269,10 +273,11 @@ void MarkerRenderer::draw(const AbstractMarker &abstractMarker, canvas.restore(); } -void MarkerRenderer::drawLabel(const AbstractMarker &abstractMarker, +void MarkerRenderer::drawLabel(Gfx::ICanvas &canvas, + const AbstractMarker &abstractMarker, size_t index) const { - if (static_cast(abstractMarker.labelEnabled) == 0) return; + if (abstractMarker.labelEnabled == false) return; const auto &marker = abstractMarker.marker; auto weight = marker.label.values[index].weight; @@ -340,7 +345,7 @@ std::string MarkerRenderer::getLabelText( auto indexStr = values[index].value.indexStr; typedef Styles::MarkerLabel::Format Format; - switch (static_cast(*labelStyle.format)) { + switch (*labelStyle.format) { default: case Format::measureFirst: { auto text = valueStr; @@ -452,4 +457,16 @@ Gfx::Color MarkerRenderer::getSelectedColor(const Gen::Marker &marker, static_cast(plot->anySelected)); } +MarkerRenderer MarkerRenderer::create(const DrawingContext &ctx) +{ + MarkerRenderer res{{ctx}, {}}; + for (auto &marker : res.plot->getMarkers()) { + if (!res.shouldDrawMarkerBody(marker)) continue; + + res.markers.push_back( + AbstractMarker::createInterpolated(ctx, marker, 0)); + } + return res; +} + } \ No newline at end of file diff --git a/src/chart/rendering/markerrenderer.h b/src/chart/rendering/markerrenderer.h index 5e1f24c25..4f17e1c08 100644 --- a/src/chart/rendering/markerrenderer.h +++ b/src/chart/rendering/markerrenderer.h @@ -11,12 +11,13 @@ namespace Vizzu::Draw class MarkerRenderer : public DrawingContext { public: - void drawLines() const; - void drawMarkers() const; - void drawLabels() const; + static MarkerRenderer create(const DrawingContext &ctx); - Gfx::ICanvas &canvas; - Painter &painter; + void drawLines(Gfx::ICanvas &canvas, Painter &painter) const; + void drawMarkers(Gfx::ICanvas &canvas, Painter &painter) const; + void drawLabels(Gfx::ICanvas &canvas) const; + + std::vector markers; private: [[nodiscard]] bool shouldDrawMarkerBody( @@ -25,10 +26,13 @@ class MarkerRenderer : public DrawingContext const AbstractMarker &abstractMarker, double factor, bool label = false) const; - void draw(const AbstractMarker &abstractMarker, + void draw(Gfx::ICanvas &canvas, + Painter &painter, + const AbstractMarker &abstractMarker, double factor, - bool line) const; - void drawLabel(const AbstractMarker &abstractMarker, + bool isLine) const; + void drawLabel(Gfx::ICanvas &canvas, + const AbstractMarker &abstractMarker, size_t index) const; [[nodiscard]] Gfx::Color diff --git a/src/chart/rendering/markers/abstractmarker.cpp b/src/chart/rendering/markers/abstractmarker.cpp index 677b0478b..96e5d1cba 100644 --- a/src/chart/rendering/markers/abstractmarker.cpp +++ b/src/chart/rendering/markers/abstractmarker.cpp @@ -11,29 +11,25 @@ namespace Vizzu::Draw { -AbstractMarker AbstractMarker::create(const Gen::Marker &marker, - const Gen::Options &options, +AbstractMarker AbstractMarker::create(const DrawingContext &ctx, + const Gen::Marker &marker, const Gen::ShapeType &shapeType, - const Styles::Chart &style, - const CoordinateSystem &coordSys, - const Gen::Plot::Markers &markers, size_t lineIndex) { switch (shapeType) { case Gen::ShapeType::rectangle: - return RectangleMarker(marker, options, style); + return RectangleMarker(marker, + ctx.getOptions(), + ctx.rootStyle); case Gen::ShapeType::circle: - return CircleMarker(marker, coordSys, options, style); + return CircleMarker(marker, + ctx.coordSys, + ctx.getOptions(), + ctx.rootStyle); case Gen::ShapeType::area: case Gen::ShapeType::line: - return ConnectingMarker(marker, - coordSys, - options, - style, - markers, - lineIndex, - shapeType); - default: return {marker, options}; + return ConnectingMarker(ctx, marker, lineIndex, shapeType); + default: return {marker, ctx.getOptions()}; } } @@ -46,25 +42,13 @@ AbstractMarker AbstractMarker::createInterpolated( auto fromShapeType = options.geometry.get(0).value; - auto fromMarker = create(marker, - options, - fromShapeType, - ctx.rootStyle, - ctx.coordSys, - ctx.plot->getMarkers(), - lineIndex); + auto fromMarker = create(ctx, marker, fromShapeType, lineIndex); auto toShapeType = options.geometry.get(1).value; if (fromShapeType == toShapeType) return fromMarker; - auto toMarker = create(marker, - options, - toShapeType, - ctx.rootStyle, - ctx.coordSys, - ctx.plot->getMarkers(), - lineIndex); + auto toMarker = create(ctx, marker, toShapeType, lineIndex); AbstractMarker aMarker(marker, options); aMarker.enabled = fromMarker.enabled + toMarker.enabled; diff --git a/src/chart/rendering/markers/abstractmarker.h b/src/chart/rendering/markers/abstractmarker.h index b673f2113..80fb0026d 100644 --- a/src/chart/rendering/markers/abstractmarker.h +++ b/src/chart/rendering/markers/abstractmarker.h @@ -49,12 +49,9 @@ class AbstractMarker AbstractMarker(const Gen::Marker &marker, const Gen::Options &options); - static AbstractMarker create(const Gen::Marker &marker, - const Gen::Options &options, + static AbstractMarker create(const DrawingContext &ctx, + const Gen::Marker &marker, const Gen::ShapeType &shapeType, - const Styles::Chart &style, - const CoordinateSystem &coordSys, - const Gen::Plot::Markers &markers, size_t lineIndex); }; diff --git a/src/chart/rendering/markers/connectingmarker.cpp b/src/chart/rendering/markers/connectingmarker.cpp index 4d5a7a80b..28c5a8b22 100644 --- a/src/chart/rendering/markers/connectingmarker.cpp +++ b/src/chart/rendering/markers/connectingmarker.cpp @@ -5,28 +5,26 @@ namespace Vizzu::Draw { -ConnectingMarker::ConnectingMarker(const Gen::Marker &marker, - const CoordinateSystem &coordSys, - const Gen::Options &options, - const Styles::Chart &style, - const Gen::Plot::Markers &markers, +ConnectingMarker::ConnectingMarker(const DrawingContext &ctx, + const Gen::Marker &marker, size_t lineIndex, Gen::ShapeType type) : - AbstractMarker(marker, options) + AbstractMarker(marker, ctx.getOptions()) { auto isLine = type == Gen::ShapeType::line; auto isArea = type == Gen::ShapeType::area; - auto polar = options.coordSystem.factor( + auto polar = ctx.getOptions().coordSystem.factor( Gen::CoordSystem::polar); - auto horizontal = options.orientation.factor( - Gen::Orientation::horizontal); + auto horizontal = + ctx.getOptions().orientation.factor( + Gen::Orientation::horizontal); linear = !polar || horizontal; lineWidth[0] = lineWidth[1] = 0; - enabled = options.geometry.factor(type); + enabled = ctx.getOptions().geometry.factor(type); labelEnabled = enabled && marker.enabled; @@ -35,7 +33,8 @@ ConnectingMarker::ConnectingMarker(const Gen::Marker &marker, connected = enabled && Math::FuzzyBool(weight); if (weight > 0.0) { - const auto *prev = getPrev(marker, markers, lineIndex); + const auto *prev = + getPrev(marker, ctx.plot->getMarkers(), lineIndex); if (prev) { labelEnabled = enabled && (marker.enabled || prev->enabled); @@ -60,8 +59,10 @@ ConnectingMarker::ConnectingMarker(const Gen::Marker &marker, if (labelEnabled != false) { - auto minWidth = isLine ? *style.plot.marker.lineMinWidth : 0; - auto maxWidth = isLine ? *style.plot.marker.lineMaxWidth : 0; + auto minWidth = + isLine ? *ctx.rootStyle.plot.marker.lineMinWidth : 0; + auto maxWidth = + isLine ? *ctx.rootStyle.plot.marker.lineMaxWidth : 0; lineWidth[1] = std::max(maxWidth * marker.sizeFactor, minWidth); @@ -76,7 +77,8 @@ ConnectingMarker::ConnectingMarker(const Gen::Marker &marker, ? marker.size.yComp() * horizontalFactor : marker.size.xComp() * horizontalFactor); - const auto *prev = getPrev(marker, markers, lineIndex); + const auto *prev = + getPrev(marker, ctx.plot->getMarkers(), lineIndex); if (prev) { auto prevSpacing = prev->spacing * prev->size / 2; @@ -113,7 +115,7 @@ ConnectingMarker::ConnectingMarker(const Gen::Marker &marker, center = Geom::Point{pos.x, 0}; } - radius = lineWidth[1] * coordSys.getRect().size.minSize(); + radius = lineWidth[1] * ctx.coordSys.getRect().size.minSize(); dataRect.pos = isLine ? points[2] : points[1]; dataRect.size = Geom::Size{points[2] - dataRect.pos}; diff --git a/src/chart/rendering/markers/connectingmarker.h b/src/chart/rendering/markers/connectingmarker.h index 49ee15739..713b04725 100644 --- a/src/chart/rendering/markers/connectingmarker.h +++ b/src/chart/rendering/markers/connectingmarker.h @@ -9,11 +9,8 @@ namespace Vizzu::Draw class ConnectingMarker : public AbstractMarker { public: - ConnectingMarker(const Gen::Marker &marker, - const CoordinateSystem &coordSys, - const Gen::Options &options, - const Styles::Chart &style, - const Gen::Plot::Markers &markers, + ConnectingMarker(const DrawingContext &ctx, + const Gen::Marker &marker, size_t lineIndex, Gen::ShapeType type); From 24356faba720794ae6c4c846cb423469031b6c2f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 12 Dec 2023 11:54:43 +0100 Subject: [PATCH 101/180] Set xAxisLabel autorotate --- src/base/math/range.h | 5 ++ src/base/style/sheet.h | 36 ----------- src/chart/generator/channelstats.cpp | 9 --- src/chart/generator/channelstats.h | 2 - src/chart/generator/marker.cpp | 5 +- src/chart/main/chart.cpp | 6 +- src/chart/main/layout.h | 2 - src/chart/main/stylesheet.cpp | 64 ++++++++++++++++++- src/chart/main/stylesheet.h | 11 ++++ test/integration/test_cases/test_cases.json | 6 +- .../compare/stream_stacked.mjs | 14 ++++ .../analytical_operations/filter/stream_1.mjs | 5 ++ .../analytical_operations/filter/stream_2.mjs | 5 ++ .../sum/stream_stacked.mjs | 5 ++ .../cookbook/rendering/sparse_axis_labels.mjs | 9 +++ .../cartesian_coo_sys/32_C_A_stream_graph.mjs | 5 ++ .../cartesian_coo_sys/34_C_A_violin_graph.mjs | 5 ++ .../36_C_A_range_area_chart.mjs | 5 ++ .../without_coo_sys/602_W_R_heatmap3.mjs | 9 +++ 19 files changed, 150 insertions(+), 58 deletions(-) diff --git a/src/base/math/range.h b/src/base/math/range.h index 7a15908ef..9b122bccb 100644 --- a/src/base/math/range.h +++ b/src/base/math/range.h @@ -63,6 +63,11 @@ template struct Range return value >= min && value <= max; } + [[nodiscard]] bool includes(const Range &range) const + { + return range.max >= min && range.min <= max; + } + [[nodiscard]] T rescale(const T &value) const { return max == min ? 0.5 : (value - min) / size(); diff --git a/src/base/style/sheet.h b/src/base/style/sheet.h index da718e3b3..c60393634 100644 --- a/src/base/style/sheet.h +++ b/src/base/style/sheet.h @@ -32,20 +32,6 @@ template class Sheet return Style::ParamRegistry::instance().listParams(); } - void setParamDefault(const std::string &path, - const std::string &value) - { - setParam(defaultParams, path, value); - } - - void setParam(const std::string &path, const std::string &value) - { - if (!activeParams) - throw std::logic_error("no active parameters set"); - - setParam(*activeParams, path, value); - } - void setParams(const std::string &path, const std::string &value) { if (!activeParams) @@ -54,28 +40,6 @@ template class Sheet setParams(*activeParams, path, value); } - static bool hasParam(const std::string &path) - { - return Style::ParamRegistry::instance().hasParam( - path); - } - - static void setParam(Params ¶ms, - const std::string &path, - const std::string &value) - { - if (!hasParam(path)) - throw std::logic_error( - path + "/" + value - + ": non-existent style parameter"); - - Style::ParamRegistry::instance().visit(path, - [&](auto &p) - { - p.fromString(params, value); - }); - } - static void setParams(Params ¶ms, const std::string &path, const std::string &value) diff --git a/src/chart/generator/channelstats.cpp b/src/chart/generator/channelstats.cpp index 13d19ed8c..6ae22d441 100644 --- a/src/chart/generator/channelstats.cpp +++ b/src/chart/generator/channelstats.cpp @@ -22,15 +22,6 @@ void ChannelStats::track(double value) range.include(value); } -void ChannelStats::trackSingle(double value) -{ - if (isDimension) - throw std::logic_error( - "internal error: invalid dimension channel tracking"); - - sum += value; -} - void ChannelStats::track(const Marker::Id &id) { if (isDimension) diff --git a/src/chart/generator/channelstats.h b/src/chart/generator/channelstats.h index 9e43c0dcd..8a5f98b38 100644 --- a/src/chart/generator/channelstats.h +++ b/src/chart/generator/channelstats.h @@ -17,14 +17,12 @@ class ChannelStats public: bool isDimension; Math::Range range; - double sum{0.0}; std::vector usedIndices; ChannelStats() : isDimension(true) {} ChannelStats(const Channel &channel, const Data::DataCube &cube); void track(double value); - void trackSingle(double value); void track(const Marker::Id &id); }; diff --git a/src/chart/generator/marker.cpp b/src/chart/generator/marker.cpp index 3c4f2d94f..27b8a3af4 100644 --- a/src/chart/generator/marker.cpp +++ b/src/chart/generator/marker.cpp @@ -220,10 +220,7 @@ double Marker::getValueForChannel(const Channels &channels, else value = singlevalue; - if (enabled) { - if (measure) stat.trackSingle(singlevalue); - stat.track(value); - } + if (enabled) { stat.track(value); } } return value; } diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index dc3f406f4..ab5ece9b1 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -123,10 +123,14 @@ Gen::PlotPtr Chart::plot(const Gen::PlotOptionsPtr &options) computedStyles = stylesheet.getFullParams(options, layout.boundary.size); - return std::make_shared(table, + auto res = std::make_shared(table, options, computedStyles, false); + + Styles::Sheet::setAfterStyles(*res, layout); + + return res; } } \ No newline at end of file diff --git a/src/chart/main/layout.h b/src/chart/main/layout.h index 56ccaa382..c4e31cc9a 100644 --- a/src/chart/main/layout.h +++ b/src/chart/main/layout.h @@ -20,8 +20,6 @@ class Layout Geom::Rect legend; Geom::Rect plot; Geom::Rect plotArea; - Geom::Rect xTitle; - Geom::Rect yTitle; Geom::Rect logo; void setBoundary(const Geom::Rect &boundary, diff --git a/src/chart/main/stylesheet.cpp b/src/chart/main/stylesheet.cpp index 912a3321a..7d200422b 100644 --- a/src/chart/main/stylesheet.cpp +++ b/src/chart/main/stylesheet.cpp @@ -3,6 +3,9 @@ #include #include "base/style/impl.tpp" +#include "chart/generator/plot.h" + +#include "layout.h" template Style::ParamRegistry::ParamRegistry(); @@ -81,11 +84,16 @@ void Sheet::setAxis() void Sheet::setAxisLabels() { + auto &def = defaultParams.plot.xAxis.label; if (options->coordSystem.get() == Gen::CoordSystem::polar) { - auto &def = defaultParams.plot.xAxis.label; def.position = AxisLabel::Position::max_edge; def.side = AxisLabel::Side::positive; } + else if (const auto &xAxis = + options->getChannels().at(Gen::ChannelId::x); + !xAxis.isEmpty() && xAxis.isDimension() + && options->angle == 0) + def.angle.reset(); } void Sheet::setAxisTitle() @@ -174,4 +182,58 @@ void Sheet::setData() : 0.006; } +void Sheet::setAfterStyles(Gen::Plot &plot, const Layout &layout) +{ + auto &style = plot.getStyle(); + style.setup(); + + if (auto &xLabel = style.plot.xAxis.label; !xLabel.angle) { + auto plotX = layout.plotArea.size.x; + if (plotX == 0.0) { + plotX = layout.boundary.size.x; + + auto em = style.calculatedSize(); + if (plot.getOptions()->legend.get()) + plotX -= + style.legend.computedWidth(layout.boundary.size.x, + em); + + plotX -= style.plot.toMargin({plotX, 0}, em).getSpace().x; + } + + auto fontRelativeHalfApproxWidth = + xLabel.calculatedSize() * 0.45 / 2.0 / plotX; + + std::vector> ranges; + bool has_collision = false; + for (const auto &pair : + plot.dimensionAxises.at(Gen::ChannelId::x)) { + + if (pair.second.weight == 0) continue; + + auto rangeCenter = pair.second.range.middle(); + auto textHalfApproxWidth = + static_cast(pair.second.label.size()) + * fontRelativeHalfApproxWidth; + + auto next_range = + Math::Range{rangeCenter - textHalfApproxWidth, + rangeCenter + textHalfApproxWidth}; + + if (std::any_of(ranges.begin(), + ranges.end(), + [&next_range](const Math::Range &other) + { + return other.includes(next_range); + })) { + has_collision = true; + break; + } + ranges.push_back(next_range); + } + + xLabel.angle.emplace(has_collision * 45); + } +} + } \ No newline at end of file diff --git a/src/chart/main/stylesheet.h b/src/chart/main/stylesheet.h index bae269c28..ebf57a956 100644 --- a/src/chart/main/stylesheet.h +++ b/src/chart/main/stylesheet.h @@ -6,6 +6,15 @@ #include "style.h" +namespace Vizzu +{ +class Layout; +namespace Gen +{ +class Plot; +} +} + namespace Vizzu::Styles { @@ -20,6 +29,8 @@ class Sheet : public Style::Sheet static double baseFontSize(const Geom::Size &size, bool rounded); + static void setAfterStyles(Gen::Plot &plot, const Layout &layout); + private: using Base::getFullParams; diff --git a/test/integration/test_cases/test_cases.json b/test/integration/test_cases/test_cases.json index 260021d82..3f409eb34 100644 --- a/test/integration/test_cases/test_cases.json +++ b/test/integration/test_cases/test_cases.json @@ -185,13 +185,13 @@ "refs": ["42fb179"] }, "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["db55dd3"] + "refs": ["f615ff9"] }, "data_fault_and_formats/column_rectangle_more_conti": { "refs": ["c2c2362"] }, "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["2d933e7"] + "refs": ["60f7596"] }, "data_fault_and_formats/rectangle_data_cube": { "refs": ["4b66407"] @@ -506,7 +506,7 @@ "refs": ["03a5cfe"] }, "web_content/analytical_operations/compare/stream_stacked": { - "refs": ["f7f0fde"] + "refs": ["8d74bbf"] }, "web_content/analytical_operations/compare/waterfall": { "refs": ["16a3b23"] diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs index 7b9cef818..13b38bd72 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs @@ -35,6 +35,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { label: { numberScale: 'K, M, B, T' @@ -61,6 +66,15 @@ const testSteps = [ }, split: false + }, + style: { + plot: { + xAxis: { + label: { + angle: null + } + } + } } }), (chart) => { diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs b/test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs index ffaad69c3..0a42cf1df 100755 --- a/test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs @@ -19,6 +19,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { label: { numberScale: 'K, M, B, T' diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs b/test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs index 7eca45a59..1e55bec79 100755 --- a/test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs @@ -28,6 +28,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { label: { numberScale: 'K, M, B, T' diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs index 819475143..36b5653c5 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs @@ -36,6 +36,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { label: { numberScale: 'K, M, B, T' diff --git a/test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs b/test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs index 55a5724df..3b575be84 100755 --- a/test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs @@ -15,6 +15,15 @@ const testSteps = [ y: 'Revenue', x: { set: 'Year', ticks: true }, title: 'Every 5th label shown on X' + }, + style: { + plot: { + xAxis: { + label: { + angle: 0.0 + } + } + } } }) } diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs index 28a1e46ff..accc53627 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs @@ -20,6 +20,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { interlacing: { color: '#ffffff00' }, label: { numberScale: 'K, M, B, T' } diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs index 35cc8d30e..847a2b83f 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs @@ -21,6 +21,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { interlacing: { color: '#ffffff00' }, label: { numberScale: 'K, M, B, T' } diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs index b55a4ab2b..50a89c231 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs @@ -21,6 +21,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { label: { numberScale: 'K, M, B, T' diff --git a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs b/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs index 906963bbb..e63b56699 100755 --- a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs @@ -15,6 +15,15 @@ const testSteps = [ lightness: 'Revenue' }, title: 'Heatmap2' + }, + style: { + plot: { + xAxis: { + label: { + angle: 0.0 + } + } + } } }) }, From 5ee2f2143b56c27340acf0ac17394c10e2cbe9e8 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 12 Dec 2023 12:25:22 +0100 Subject: [PATCH 102/180] fix hashes --- test/integration/test_cases/test_cases.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/integration/test_cases/test_cases.json b/test/integration/test_cases/test_cases.json index 3f409eb34..a670cf631 100644 --- a/test/integration/test_cases/test_cases.json +++ b/test/integration/test_cases/test_cases.json @@ -185,13 +185,13 @@ "refs": ["42fb179"] }, "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["f615ff9"] + "refs": ["89ac33c"] }, "data_fault_and_formats/column_rectangle_more_conti": { "refs": ["c2c2362"] }, "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["60f7596"] + "refs": ["3cb6eae"] }, "data_fault_and_formats/rectangle_data_cube": { "refs": ["4b66407"] @@ -506,7 +506,7 @@ "refs": ["03a5cfe"] }, "web_content/analytical_operations/compare/stream_stacked": { - "refs": ["8d74bbf"] + "refs": ["7ecb9ca"] }, "web_content/analytical_operations/compare/waterfall": { "refs": ["16a3b23"] From 24e392e503a31051955b860a4e29131aa023dee8 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 12 Dec 2023 14:24:31 +0100 Subject: [PATCH 103/180] Remove computedStyles + fix 45 degree --- src/base/style/sheet.h | 2 +- src/chart/main/chart.cpp | 13 +++++++------ src/chart/main/chart.h | 5 +++-- src/chart/main/stylesheet.cpp | 2 +- test/integration/test_cases/test_cases.json | 6 +++--- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/base/style/sheet.h b/src/base/style/sheet.h index c60393634..e14e513a5 100644 --- a/src/base/style/sheet.h +++ b/src/base/style/sheet.h @@ -63,7 +63,7 @@ template class Sheet + ": non-existent style parameter"); } - static std::string getParam(Params ¶ms, + static std::string getParam(const Params ¶ms, const std::string &path) { auto ¶mReg = Style::ParamRegistry::instance(); diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index ab5ece9b1..dfdba7987 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -9,7 +9,6 @@ namespace Vizzu Chart::Chart() : animator(std::make_shared()), stylesheet(Styles::Chart::def()), - computedStyles(stylesheet.getDefaultParams()), events(getEventDispatcher()) { stylesheet.setActiveParams(actStyles); @@ -66,7 +65,6 @@ void Chart::animate(const OnComplete &onComplete) else { *nextOptions = prevOptions; actStyles = prevStyles; - computedStyles = plot->getStyle(); } if (onComplete) onComplete(ok); }; @@ -120,12 +118,9 @@ Gen::PlotPtr Chart::plot(const Gen::PlotOptionsPtr &options) { options->setAutoParameters(); - computedStyles = - stylesheet.getFullParams(options, layout.boundary.size); - auto res = std::make_shared(table, options, - computedStyles, + stylesheet.getFullParams(options, layout.boundary.size), false); Styles::Sheet::setAfterStyles(*res, layout); @@ -133,4 +128,10 @@ Gen::PlotPtr Chart::plot(const Gen::PlotOptionsPtr &options) return res; } +const Styles::Chart &Chart::getComputedStyles() const +{ + return actPlot ? actPlot->getStyle() + : stylesheet.getDefaultParams(); +} + } \ No newline at end of file diff --git a/src/chart/main/chart.h b/src/chart/main/chart.h index d693b1fbd..906b439be 100644 --- a/src/chart/main/chart.h +++ b/src/chart/main/chart.h @@ -37,7 +37,9 @@ class Chart Gen::OptionsSetter getSetter(); Styles::Sheet &getStylesheet() { return stylesheet; } Styles::Chart &getStyles() { return actStyles; } - Styles::Chart &getComputedStyles() { return computedStyles; } + + const Styles::Chart &getComputedStyles() const; + void setStyles(const Styles::Chart &styles) { actStyles = styles; @@ -88,7 +90,6 @@ class Chart Styles::Sheet stylesheet; Styles::Chart actStyles; Styles::Chart prevStyles; - Styles::Chart computedStyles; Util::EventDispatcher eventDispatcher; Draw::RenderedChart renderedChart; Events events; diff --git a/src/chart/main/stylesheet.cpp b/src/chart/main/stylesheet.cpp index 7d200422b..4b866168a 100644 --- a/src/chart/main/stylesheet.cpp +++ b/src/chart/main/stylesheet.cpp @@ -232,7 +232,7 @@ void Sheet::setAfterStyles(Gen::Plot &plot, const Layout &layout) ranges.push_back(next_range); } - xLabel.angle.emplace(has_collision * 45); + xLabel.angle.emplace(has_collision * M_PI / 4); } } diff --git a/test/integration/test_cases/test_cases.json b/test/integration/test_cases/test_cases.json index a670cf631..b63795b07 100644 --- a/test/integration/test_cases/test_cases.json +++ b/test/integration/test_cases/test_cases.json @@ -185,13 +185,13 @@ "refs": ["42fb179"] }, "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["89ac33c"] + "refs": ["dc55892"] }, "data_fault_and_formats/column_rectangle_more_conti": { "refs": ["c2c2362"] }, "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["3cb6eae"] + "refs": ["dbc5ef0"] }, "data_fault_and_formats/rectangle_data_cube": { "refs": ["4b66407"] @@ -506,7 +506,7 @@ "refs": ["03a5cfe"] }, "web_content/analytical_operations/compare/stream_stacked": { - "refs": ["7ecb9ca"] + "refs": ["13a4f7f"] }, "web_content/analytical_operations/compare/waterfall": { "refs": ["16a3b23"] From 90ea6d2fe0efee2152ea54ce3d74e896ea888b5f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 12 Dec 2023 15:28:20 +0100 Subject: [PATCH 104/180] clang-tidy --- src/base/style/sheet.h | 2 +- src/chart/animator/animator.cpp | 3 +-- src/chart/main/chart.h | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/base/style/sheet.h b/src/base/style/sheet.h index e14e513a5..9abed5036 100644 --- a/src/base/style/sheet.h +++ b/src/base/style/sheet.h @@ -63,7 +63,7 @@ template class Sheet + ": non-existent style parameter"); } - static std::string getParam(const Params ¶ms, + [[nodiscard]] static std::string getParam(const Params ¶ms, const std::string &path) { auto ¶mReg = Style::ParamRegistry::instance(); diff --git a/src/chart/animator/animator.cpp b/src/chart/animator/animator.cpp index aefd437b2..65b7b3768 100644 --- a/src/chart/animator/animator.cpp +++ b/src/chart/animator/animator.cpp @@ -38,8 +38,7 @@ void Animator::animate(const ::Anim::Control::Option &options, running = true; stripActAnimation(); - actAnimation = nextAnimation; - nextAnimation = AnimationPtr(); + actAnimation = std::exchange(nextAnimation, {}); setupActAnimation(); actAnimation->animate(options, completionCallback); } diff --git a/src/chart/main/chart.h b/src/chart/main/chart.h index 906b439be..20c4a9193 100644 --- a/src/chart/main/chart.h +++ b/src/chart/main/chart.h @@ -38,7 +38,7 @@ class Chart Styles::Sheet &getStylesheet() { return stylesheet; } Styles::Chart &getStyles() { return actStyles; } - const Styles::Chart &getComputedStyles() const; + [[nodiscard]] const Styles::Chart &getComputedStyles() const; void setStyles(const Styles::Chart &styles) { From 49dd7fa69402a4ab81edb4bb0d25e1d3a66779f4 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 13 Dec 2023 16:32:03 +0100 Subject: [PATCH 105/180] Exclude tutorial assets from the site --- tools/ci/pdm.lock | 594 +++++++++++++++++++--------------------- tools/ci/pyproject.toml | 4 +- tools/docs/mkdocs.yml | 3 + 3 files changed, 288 insertions(+), 313 deletions(-) diff --git a/tools/ci/pdm.lock b/tools/ci/pdm.lock index ccdc419d7..8b8dd621d 100644 --- a/tools/ci/pdm.lock +++ b/tools/ci/pdm.lock @@ -2,35 +2,127 @@ # It is not intended for manual editing. [metadata] -groups = ["codequality", "docs", "packagetool"] +groups = ["codequality", "docs"] strategy = ["cross_platform"] lock_version = "4.4" -content_hash = "sha256:95e6d3272ca740a84ff607b23de0331847cad9db72a3f040ae826d53623257a8" +content_hash = "sha256:d9b85b7701c9533e23b6da936f433eafb1968fa46ac07790e3e797aafe12e6e2" + +[[package]] +name = "aiohttp" +version = "3.9.1" +requires_python = ">=3.8" +summary = "Async http client/server framework (asyncio)" +dependencies = [ + "aiosignal>=1.1.2", + "async-timeout<5.0,>=4.0; python_version < \"3.11\"", + "attrs>=17.3.0", + "frozenlist>=1.1.1", + "multidict<7.0,>=4.5", + "yarl<2.0,>=1.0", +] +files = [ + {file = "aiohttp-3.9.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1f80197f8b0b846a8d5cf7b7ec6084493950d0882cc5537fb7b96a69e3c8590"}, + {file = "aiohttp-3.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72444d17777865734aa1a4d167794c34b63e5883abb90356a0364a28904e6c0"}, + {file = "aiohttp-3.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b05d5cbe9dafcdc733262c3a99ccf63d2f7ce02543620d2bd8db4d4f7a22f83"}, + {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c4fa235d534b3547184831c624c0b7c1e262cd1de847d95085ec94c16fddcd5"}, + {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:289ba9ae8e88d0ba16062ecf02dd730b34186ea3b1e7489046fc338bdc3361c4"}, + {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bff7e2811814fa2271be95ab6e84c9436d027a0e59665de60edf44e529a42c1f"}, + {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81b77f868814346662c96ab36b875d7814ebf82340d3284a31681085c051320f"}, + {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b9c7426923bb7bd66d409da46c41e3fb40f5caf679da624439b9eba92043fa6"}, + {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8d44e7bf06b0c0a70a20f9100af9fcfd7f6d9d3913e37754c12d424179b4e48f"}, + {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22698f01ff5653fe66d16ffb7658f582a0ac084d7da1323e39fd9eab326a1f26"}, + {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ca7ca5abfbfe8d39e653870fbe8d7710be7a857f8a8386fc9de1aae2e02ce7e4"}, + {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8d7f98fde213f74561be1d6d3fa353656197f75d4edfbb3d94c9eb9b0fc47f5d"}, + {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5216b6082c624b55cfe79af5d538e499cd5f5b976820eac31951fb4325974501"}, + {file = "aiohttp-3.9.1-cp310-cp310-win32.whl", hash = "sha256:0e7ba7ff228c0d9a2cd66194e90f2bca6e0abca810b786901a569c0de082f489"}, + {file = "aiohttp-3.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:c7e939f1ae428a86e4abbb9a7c4732bf4706048818dfd979e5e2839ce0159f23"}, + {file = "aiohttp-3.9.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:df9cf74b9bc03d586fc53ba470828d7b77ce51b0582d1d0b5b2fb673c0baa32d"}, + {file = "aiohttp-3.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ecca113f19d5e74048c001934045a2b9368d77b0b17691d905af18bd1c21275e"}, + {file = "aiohttp-3.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8cef8710fb849d97c533f259103f09bac167a008d7131d7b2b0e3a33269185c0"}, + {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bea94403a21eb94c93386d559bce297381609153e418a3ffc7d6bf772f59cc35"}, + {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91c742ca59045dce7ba76cab6e223e41d2c70d79e82c284a96411f8645e2afff"}, + {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c93b7c2e52061f0925c3382d5cb8980e40f91c989563d3d32ca280069fd6a87"}, + {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee2527134f95e106cc1653e9ac78846f3a2ec1004cf20ef4e02038035a74544d"}, + {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11ff168d752cb41e8492817e10fb4f85828f6a0142b9726a30c27c35a1835f01"}, + {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b8c3a67eb87394386847d188996920f33b01b32155f0a94f36ca0e0c635bf3e3"}, + {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c7b5d5d64e2a14e35a9240b33b89389e0035e6de8dbb7ffa50d10d8b65c57449"}, + {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:69985d50a2b6f709412d944ffb2e97d0be154ea90600b7a921f95a87d6f108a2"}, + {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:c9110c06eaaac7e1f5562caf481f18ccf8f6fdf4c3323feab28a93d34cc646bd"}, + {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737e69d193dac7296365a6dcb73bbbf53bb760ab25a3727716bbd42022e8d7a"}, + {file = "aiohttp-3.9.1-cp311-cp311-win32.whl", hash = "sha256:4ee8caa925aebc1e64e98432d78ea8de67b2272252b0a931d2ac3bd876ad5544"}, + {file = "aiohttp-3.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:a34086c5cc285be878622e0a6ab897a986a6e8bf5b67ecb377015f06ed316587"}, + {file = "aiohttp-3.9.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f800164276eec54e0af5c99feb9494c295118fc10a11b997bbb1348ba1a52065"}, + {file = "aiohttp-3.9.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:500f1c59906cd142d452074f3811614be04819a38ae2b3239a48b82649c08821"}, + {file = "aiohttp-3.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0b0a6a36ed7e164c6df1e18ee47afbd1990ce47cb428739d6c99aaabfaf1b3af"}, + {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69da0f3ed3496808e8cbc5123a866c41c12c15baaaead96d256477edf168eb57"}, + {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:176df045597e674fa950bf5ae536be85699e04cea68fa3a616cf75e413737eb5"}, + {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b796b44111f0cab6bbf66214186e44734b5baab949cb5fb56154142a92989aeb"}, + {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f27fdaadce22f2ef950fc10dcdf8048407c3b42b73779e48a4e76b3c35bca26c"}, + {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcb6532b9814ea7c5a6a3299747c49de30e84472fa72821b07f5a9818bce0f66"}, + {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:54631fb69a6e44b2ba522f7c22a6fb2667a02fd97d636048478db2fd8c4e98fe"}, + {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4b4c452d0190c5a820d3f5c0f3cd8a28ace48c54053e24da9d6041bf81113183"}, + {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:cae4c0c2ca800c793cae07ef3d40794625471040a87e1ba392039639ad61ab5b"}, + {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:565760d6812b8d78d416c3c7cfdf5362fbe0d0d25b82fed75d0d29e18d7fc30f"}, + {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54311eb54f3a0c45efb9ed0d0a8f43d1bc6060d773f6973efd90037a51cd0a3f"}, + {file = "aiohttp-3.9.1-cp312-cp312-win32.whl", hash = "sha256:85c3e3c9cb1d480e0b9a64c658cd66b3cfb8e721636ab8b0e746e2d79a7a9eed"}, + {file = "aiohttp-3.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:11cb254e397a82efb1805d12561e80124928e04e9c4483587ce7390b3866d213"}, + {file = "aiohttp-3.9.1.tar.gz", hash = "sha256:8fc49a87ac269d4529da45871e2ffb6874e87779c3d0e2ccd813c0899221239d"}, +] + +[[package]] +name = "aiosignal" +version = "1.3.1" +requires_python = ">=3.7" +summary = "aiosignal: a list of registered asynchronous callbacks" +dependencies = [ + "frozenlist>=1.1.0", +] +files = [ + {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, + {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, +] [[package]] name = "astroid" -version = "3.0.1" +version = "3.0.2" requires_python = ">=3.8.0" summary = "An abstract syntax tree for Python with inference support." dependencies = [ "typing-extensions>=4.0.0; python_version < \"3.11\"", ] files = [ - {file = "astroid-3.0.1-py3-none-any.whl", hash = "sha256:7d5895c9825e18079c5aeac0572bc2e4c83205c95d416e0b4fee8bc361d2d9ca"}, - {file = "astroid-3.0.1.tar.gz", hash = "sha256:86b0bb7d7da0be1a7c4aedb7974e391b32d4ed89e33de6ed6902b4b15c97577e"}, + {file = "astroid-3.0.2-py3-none-any.whl", hash = "sha256:d6e62862355f60e716164082d6b4b041d38e2a8cf1c7cd953ded5108bac8ff5c"}, + {file = "astroid-3.0.2.tar.gz", hash = "sha256:4a61cf0a59097c7bb52689b0fd63717cd2a8a14dc9f1eee97b82d814881c8c91"}, +] + +[[package]] +name = "async-timeout" +version = "4.0.3" +requires_python = ">=3.7" +summary = "Timeout context manager for asyncio programs" +files = [ + {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, + {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, +] + +[[package]] +name = "attrs" +version = "23.1.0" +requires_python = ">=3.7" +summary = "Classes Without Boilerplate" +files = [ + {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, + {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, ] [[package]] name = "babel" -version = "2.13.1" +version = "2.14.0" requires_python = ">=3.7" summary = "Internationalization utilities" -dependencies = [ - "setuptools; python_version >= \"3.12\"", -] files = [ - {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, - {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] [[package]] @@ -78,10 +170,11 @@ files = [ [[package]] name = "black" -version = "23.11.0" +version = "23.12.0" requires_python = ">=3.8" summary = "The uncompromising code formatter." dependencies = [ + "aiohttp>=3.7.4; sys_platform != \"win32\" or implementation_name != \"pypy\" and extra == \"d\"", "click>=8.0.0", "mypy-extensions>=0.4.3", "packaging>=22.0", @@ -91,26 +184,20 @@ dependencies = [ "typing-extensions>=4.0.1; python_version < \"3.11\"", ] files = [ - {file = "black-23.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dbea0bb8575c6b6303cc65017b46351dc5953eea5c0a59d7b7e3a2d2f433a911"}, - {file = "black-23.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:412f56bab20ac85927f3a959230331de5614aecda1ede14b373083f62ec24e6f"}, - {file = "black-23.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d136ef5b418c81660ad847efe0e55c58c8208b77a57a28a503a5f345ccf01394"}, - {file = "black-23.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:6c1cac07e64433f646a9a838cdc00c9768b3c362805afc3fce341af0e6a9ae9f"}, - {file = "black-23.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cf57719e581cfd48c4efe28543fea3d139c6b6f1238b3f0102a9c73992cbb479"}, - {file = "black-23.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:698c1e0d5c43354ec5d6f4d914d0d553a9ada56c85415700b81dc90125aac244"}, - {file = "black-23.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760415ccc20f9e8747084169110ef75d545f3b0932ee21368f63ac0fee86b221"}, - {file = "black-23.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:58e5f4d08a205b11800332920e285bd25e1a75c54953e05502052738fe16b3b5"}, - {file = "black-23.11.0-py3-none-any.whl", hash = "sha256:54caaa703227c6e0c87b76326d0862184729a69b73d3b7305b6288e1d830067e"}, - {file = "black-23.11.0.tar.gz", hash = "sha256:4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05"}, -] - -[[package]] -name = "blinker" -version = "1.7.0" -requires_python = ">=3.8" -summary = "Fast, simple object-to-object and broadcast signaling" -files = [ - {file = "blinker-1.7.0-py3-none-any.whl", hash = "sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9"}, - {file = "blinker-1.7.0.tar.gz", hash = "sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182"}, + {file = "black-23.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:67f19562d367468ab59bd6c36a72b2c84bc2f16b59788690e02bbcb140a77175"}, + {file = "black-23.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bbd75d9f28a7283b7426160ca21c5bd640ca7cd8ef6630b4754b6df9e2da8462"}, + {file = "black-23.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:593596f699ca2dcbbbdfa59fcda7d8ad6604370c10228223cd6cf6ce1ce7ed7e"}, + {file = "black-23.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:12d5f10cce8dc27202e9a252acd1c9a426c83f95496c959406c96b785a92bb7d"}, + {file = "black-23.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e73c5e3d37e5a3513d16b33305713237a234396ae56769b839d7c40759b8a41c"}, + {file = "black-23.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ba09cae1657c4f8a8c9ff6cfd4a6baaf915bb4ef7d03acffe6a2f6585fa1bd01"}, + {file = "black-23.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ace64c1a349c162d6da3cef91e3b0e78c4fc596ffde9413efa0525456148873d"}, + {file = "black-23.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:72db37a2266b16d256b3ea88b9affcdd5c41a74db551ec3dd4609a59c17d25bf"}, + {file = "black-23.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fdf6f23c83078a6c8da2442f4d4eeb19c28ac2a6416da7671b72f0295c4a697b"}, + {file = "black-23.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39dda060b9b395a6b7bf9c5db28ac87b3c3f48d4fdff470fa8a94ab8271da47e"}, + {file = "black-23.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7231670266ca5191a76cb838185d9be59cfa4f5dd401b7c1c70b993c58f6b1b5"}, + {file = "black-23.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:193946e634e80bfb3aec41830f5d7431f8dd5b20d11d89be14b84a97c6b8bc75"}, + {file = "black-23.12.0-py3-none-any.whl", hash = "sha256:a7c07db8200b5315dc07e331dda4d889a56f6bf4db6a9c2a526fa3166a81614f"}, + {file = "black-23.12.0.tar.gz", hash = "sha256:330a327b422aca0634ecd115985c1c7fd7bdb5b5a2ef8aa9888a82e2ebe9437a"}, ] [[package]] @@ -123,35 +210,6 @@ files = [ {file = "bracex-2.4.tar.gz", hash = "sha256:a27eaf1df42cf561fed58b7a8f3fdf129d1ea16a81e1fadd1d17989bc6384beb"}, ] -[[package]] -name = "cachecontrol" -version = "0.13.1" -requires_python = ">=3.7" -summary = "httplib2 caching for requests" -dependencies = [ - "msgpack>=0.5.2", - "requests>=2.16.0", -] -files = [ - {file = "cachecontrol-0.13.1-py3-none-any.whl", hash = "sha256:95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4"}, - {file = "cachecontrol-0.13.1.tar.gz", hash = "sha256:f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"}, -] - -[[package]] -name = "cachecontrol" -version = "0.13.1" -extras = ["filecache"] -requires_python = ">=3.7" -summary = "httplib2 caching for requests" -dependencies = [ - "cachecontrol==0.13.1", - "filelock>=3.8.0", -] -files = [ - {file = "cachecontrol-0.13.1-py3-none-any.whl", hash = "sha256:95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4"}, - {file = "cachecontrol-0.13.1.tar.gz", hash = "sha256:f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"}, -] - [[package]] name = "certifi" version = "2023.11.17" @@ -263,15 +321,6 @@ files = [ {file = "dill-0.3.7.tar.gz", hash = "sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"}, ] -[[package]] -name = "distlib" -version = "0.3.7" -summary = "Distribution utilities" -files = [ - {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, - {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, -] - [[package]] name = "editorconfig" version = "0.12.3" @@ -282,26 +331,42 @@ files = [ ] [[package]] -name = "filelock" -version = "3.13.1" +name = "frozenlist" +version = "1.4.0" requires_python = ">=3.8" -summary = "A platform independent file lock." -files = [ - {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, - {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, -] - -[[package]] -name = "findpython" -version = "0.4.0" -requires_python = ">=3.7" -summary = "A utility to find python versions on your system" -dependencies = [ - "packaging>=20", -] -files = [ - {file = "findpython-0.4.0-py3-none-any.whl", hash = "sha256:087148ac5935f9be458f36a05f3fa479efdf2c629f5d386c73ea481cfecff15e"}, - {file = "findpython-0.4.0.tar.gz", hash = "sha256:18b14d115678da18ae92ee22d7001cc30915ea531053f77010ee05a39680f438"}, +summary = "A list-like structure which implements collections.abc.MutableSequence" +files = [ + {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:764226ceef3125e53ea2cb275000e309c0aa5464d43bd72abd661e27fffc26ab"}, + {file = "frozenlist-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d6484756b12f40003c6128bfcc3fa9f0d49a687e171186c2d85ec82e3758c559"}, + {file = "frozenlist-1.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9ac08e601308e41eb533f232dbf6b7e4cea762f9f84f6357136eed926c15d12c"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d081f13b095d74b67d550de04df1c756831f3b83dc9881c38985834387487f1b"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:71932b597f9895f011f47f17d6428252fc728ba2ae6024e13c3398a087c2cdea"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:981b9ab5a0a3178ff413bca62526bb784249421c24ad7381e39d67981be2c326"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e41f3de4df3e80de75845d3e743b3f1c4c8613c3997a912dbf0229fc61a8b963"}, + {file = "frozenlist-1.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6918d49b1f90821e93069682c06ffde41829c346c66b721e65a5c62b4bab0300"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e5c8764c7829343d919cc2dfc587a8db01c4f70a4ebbc49abde5d4b158b007b"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:8d0edd6b1c7fb94922bf569c9b092ee187a83f03fb1a63076e7774b60f9481a8"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e29cda763f752553fa14c68fb2195150bfab22b352572cb36c43c47bedba70eb"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:0c7c1b47859ee2cac3846fde1c1dc0f15da6cec5a0e5c72d101e0f83dcb67ff9"}, + {file = "frozenlist-1.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:901289d524fdd571be1c7be054f48b1f88ce8dddcbdf1ec698b27d4b8b9e5d62"}, + {file = "frozenlist-1.4.0-cp310-cp310-win32.whl", hash = "sha256:1a0848b52815006ea6596c395f87449f693dc419061cc21e970f139d466dc0a0"}, + {file = "frozenlist-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:b206646d176a007466358aa21d85cd8600a415c67c9bd15403336c331a10d956"}, + {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:de343e75f40e972bae1ef6090267f8260c1446a1695e77096db6cfa25e759a95"}, + {file = "frozenlist-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad2a9eb6d9839ae241701d0918f54c51365a51407fd80f6b8289e2dfca977cc3"}, + {file = "frozenlist-1.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bd7bd3b3830247580de99c99ea2a01416dfc3c34471ca1298bccabf86d0ff4dc"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdf1847068c362f16b353163391210269e4f0569a3c166bc6a9f74ccbfc7e839"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38461d02d66de17455072c9ba981d35f1d2a73024bee7790ac2f9e361ef1cd0c"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5a32087d720c608f42caed0ef36d2b3ea61a9d09ee59a5142d6070da9041b8f"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd65632acaf0d47608190a71bfe46b209719bf2beb59507db08ccdbe712f969b"}, + {file = "frozenlist-1.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261b9f5d17cac914531331ff1b1d452125bf5daa05faf73b71d935485b0c510b"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b89ac9768b82205936771f8d2eb3ce88503b1556324c9f903e7156669f521472"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:008eb8b31b3ea6896da16c38c1b136cb9fec9e249e77f6211d479db79a4eaf01"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e74b0506fa5aa5598ac6a975a12aa8928cbb58e1f5ac8360792ef15de1aa848f"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:490132667476f6781b4c9458298b0c1cddf237488abd228b0b3650e5ecba7467"}, + {file = "frozenlist-1.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:76d4711f6f6d08551a7e9ef28c722f4a50dd0fc204c56b4bcd95c6cc05ce6fbb"}, + {file = "frozenlist-1.4.0-cp311-cp311-win32.whl", hash = "sha256:a02eb8ab2b8f200179b5f62b59757685ae9987996ae549ccf30f983f40602431"}, + {file = "frozenlist-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:515e1abc578dd3b275d6a5114030b1330ba044ffba03f94091842852f806f1c1"}, + {file = "frozenlist-1.4.0.tar.gz", hash = "sha256:09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"}, ] [[package]] @@ -328,15 +393,15 @@ files = [ [[package]] name = "importlib-metadata" -version = "6.8.0" +version = "7.0.0" requires_python = ">=3.8" summary = "Read metadata from Python packages" dependencies = [ "zipp>=0.5", ] files = [ - {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, - {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, + {file = "importlib_metadata-7.0.0-py3-none-any.whl", hash = "sha256:d97503976bb81f40a193d41ee6570868479c69d5068651eb039c40d850c59d67"}, + {file = "importlib_metadata-7.0.0.tar.gz", hash = "sha256:7fc841f8b8332803464e5dc1c63a2e59121f46ca186c0e2e182e80bf8c1319f7"}, ] [[package]] @@ -349,24 +414,14 @@ files = [ {file = "importlib_resources-6.1.1.tar.gz", hash = "sha256:3893a00122eafde6894c59914446a512f728a0c1a45f9bb9b63721b6bacf0b4a"}, ] -[[package]] -name = "installer" -version = "0.7.0" -requires_python = ">=3.7" -summary = "A library for installing Python wheels." -files = [ - {file = "installer-0.7.0-py3-none-any.whl", hash = "sha256:05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53"}, - {file = "installer-0.7.0.tar.gz", hash = "sha256:a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631"}, -] - [[package]] name = "isort" -version = "5.12.0" +version = "5.13.1" requires_python = ">=3.8.0" summary = "A Python utility / library to sort Python imports." files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, + {file = "isort-5.13.1-py3-none-any.whl", hash = "sha256:56a51732c25f94ca96f6721be206dd96a95f42950502eb26c1015d333bc6edb7"}, + {file = "isort-5.13.1.tar.gz", hash = "sha256:aaed790b463e8703fb1eddb831dfa8e8616bacde2c083bd557ef73c8189b7263"}, ] [[package]] @@ -775,6 +830,17 @@ files = [ {file = "mkdocs_autorefs-0.5.0.tar.gz", hash = "sha256:9a5054a94c08d28855cfab967ada10ed5be76e2bfad642302a610b252c3274c0"}, ] +[[package]] +name = "mkdocs-exclude" +version = "1.0.2" +summary = "A mkdocs plugin that lets you exclude files or trees." +dependencies = [ + "mkdocs", +] +files = [ + {file = "mkdocs-exclude-1.0.2.tar.gz", hash = "sha256:ba6fab3c80ddbe3fd31d3e579861fd3124513708271180a5f81846da8c7e2a51"}, +] + [[package]] name = "mkdocs-gen-files" version = "0.5.0" @@ -817,7 +883,7 @@ files = [ [[package]] name = "mkdocs-material" -version = "9.4.14" +version = "9.5.2" requires_python = ">=3.8" summary = "Documentation that simply works" dependencies = [ @@ -834,8 +900,8 @@ dependencies = [ "requests~=2.26", ] files = [ - {file = "mkdocs_material-9.4.14-py3-none-any.whl", hash = "sha256:dbc78a4fea97b74319a6aa9a2f0be575a6028be6958f813ba367188f7b8428f6"}, - {file = "mkdocs_material-9.4.14.tar.gz", hash = "sha256:a511d3ff48fa8718b033e7e37d17abd9cc1de0fdf0244a625ca2ae2387e2416d"}, + {file = "mkdocs_material-9.5.2-py3-none-any.whl", hash = "sha256:6ed0fbf4682491766f0ec1acc955db6901c2fd424c7ab343964ef51b819741f5"}, + {file = "mkdocs_material-9.5.2.tar.gz", hash = "sha256:ca8b9cd2b3be53e858e5a1a45ac9668bd78d95d77a30288bb5ebc1a31db6184c"}, ] [[package]] @@ -875,45 +941,42 @@ files = [ ] [[package]] -name = "msgpack" -version = "1.0.7" -requires_python = ">=3.8" -summary = "MessagePack serializer" -files = [ - {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04ad6069c86e531682f9e1e71b71c1c3937d6014a7c3e9edd2aa81ad58842862"}, - {file = "msgpack-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cca1b62fe70d761a282496b96a5e51c44c213e410a964bdffe0928e611368329"}, - {file = "msgpack-1.0.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e50ebce52f41370707f1e21a59514e3375e3edd6e1832f5e5235237db933c98b"}, - {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a7b4f35de6a304b5533c238bee86b670b75b03d31b7797929caa7a624b5dda6"}, - {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28efb066cde83c479dfe5a48141a53bc7e5f13f785b92ddde336c716663039ee"}, - {file = "msgpack-1.0.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cb14ce54d9b857be9591ac364cb08dc2d6a5c4318c1182cb1d02274029d590d"}, - {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b573a43ef7c368ba4ea06050a957c2a7550f729c31f11dd616d2ac4aba99888d"}, - {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ccf9a39706b604d884d2cb1e27fe973bc55f2890c52f38df742bc1d79ab9f5e1"}, - {file = "msgpack-1.0.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cb70766519500281815dfd7a87d3a178acf7ce95390544b8c90587d76b227681"}, - {file = "msgpack-1.0.7-cp310-cp310-win32.whl", hash = "sha256:b610ff0f24e9f11c9ae653c67ff8cc03c075131401b3e5ef4b82570d1728f8a9"}, - {file = "msgpack-1.0.7-cp310-cp310-win_amd64.whl", hash = "sha256:a40821a89dc373d6427e2b44b572efc36a2778d3f543299e2f24eb1a5de65415"}, - {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:576eb384292b139821c41995523654ad82d1916da6a60cff129c715a6223ea84"}, - {file = "msgpack-1.0.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:730076207cb816138cf1af7f7237b208340a2c5e749707457d70705715c93b93"}, - {file = "msgpack-1.0.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:85765fdf4b27eb5086f05ac0491090fc76f4f2b28e09d9350c31aac25a5aaff8"}, - {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3476fae43db72bd11f29a5147ae2f3cb22e2f1a91d575ef130d2bf49afd21c46"}, - {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d4c80667de2e36970ebf74f42d1088cc9ee7ef5f4e8c35eee1b40eafd33ca5b"}, - {file = "msgpack-1.0.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b0bf0effb196ed76b7ad883848143427a73c355ae8e569fa538365064188b8e"}, - {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f9a7c509542db4eceed3dcf21ee5267ab565a83555c9b88a8109dcecc4709002"}, - {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:84b0daf226913133f899ea9b30618722d45feffa67e4fe867b0b5ae83a34060c"}, - {file = "msgpack-1.0.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ec79ff6159dffcc30853b2ad612ed572af86c92b5168aa3fc01a67b0fa40665e"}, - {file = "msgpack-1.0.7-cp311-cp311-win32.whl", hash = "sha256:3e7bf4442b310ff154b7bb9d81eb2c016b7d597e364f97d72b1acc3817a0fdc1"}, - {file = "msgpack-1.0.7-cp311-cp311-win_amd64.whl", hash = "sha256:3f0c8c6dfa6605ab8ff0611995ee30d4f9fcff89966cf562733b4008a3d60d82"}, - {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f0936e08e0003f66bfd97e74ee530427707297b0d0361247e9b4f59ab78ddc8b"}, - {file = "msgpack-1.0.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98bbd754a422a0b123c66a4c341de0474cad4a5c10c164ceed6ea090f3563db4"}, - {file = "msgpack-1.0.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b291f0ee7961a597cbbcc77709374087fa2a9afe7bdb6a40dbbd9b127e79afee"}, - {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebbbba226f0a108a7366bf4b59bf0f30a12fd5e75100c630267d94d7f0ad20e5"}, - {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e2d69948e4132813b8d1131f29f9101bc2c915f26089a6d632001a5c1349672"}, - {file = "msgpack-1.0.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdf38ba2d393c7911ae989c3bbba510ebbcdf4ecbdbfec36272abe350c454075"}, - {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:993584fc821c58d5993521bfdcd31a4adf025c7d745bbd4d12ccfecf695af5ba"}, - {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:52700dc63a4676669b341ba33520f4d6e43d3ca58d422e22ba66d1736b0a6e4c"}, - {file = "msgpack-1.0.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e45ae4927759289c30ccba8d9fdce62bb414977ba158286b5ddaf8df2cddb5c5"}, - {file = "msgpack-1.0.7-cp312-cp312-win32.whl", hash = "sha256:27dcd6f46a21c18fa5e5deed92a43d4554e3df8d8ca5a47bf0615d6a5f39dbc9"}, - {file = "msgpack-1.0.7-cp312-cp312-win_amd64.whl", hash = "sha256:7687e22a31e976a0e7fc99c2f4d11ca45eff652a81eb8c8085e9609298916dcf"}, - {file = "msgpack-1.0.7.tar.gz", hash = "sha256:572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87"}, +name = "multidict" +version = "6.0.4" +requires_python = ">=3.7" +summary = "multidict implementation" +files = [ + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, + {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, + {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, + {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, + {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, + {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, ] [[package]] @@ -976,42 +1039,12 @@ files = [ [[package]] name = "pathspec" -version = "0.11.2" -requires_python = ">=3.7" +version = "0.12.1" +requires_python = ">=3.8" summary = "Utility library for gitignore style pattern matching of file paths." files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, -] - -[[package]] -name = "pdm" -version = "2.10.3" -requires_python = ">=3.7" -summary = "A modern Python package and dependency manager supporting the latest PEP standards" -dependencies = [ - "blinker", - "cachecontrol[filecache]>=0.13.0", - "certifi", - "findpython<1.0.0a0,>=0.4.0", - "installer<0.8,>=0.7", - "packaging!=22.0,>=20.9", - "platformdirs", - "pyproject-hooks", - "python-dotenv>=0.15", - "requests-toolbelt", - "resolvelib>=1.0.1", - "rich>=12.3.0", - "shellingham>=1.3.2", - "tomli>=1.1.0; python_version < \"3.11\"", - "tomlkit<1,>=0.11.1", - "truststore; python_version >= \"3.10\"", - "unearth>=0.12.1", - "virtualenv>=20", -] -files = [ - {file = "pdm-2.10.3-py3-none-any.whl", hash = "sha256:9caad0bc4a2ee8de02e39c673a142b47c170091908a584ed2024854be08cdf13"}, - {file = "pdm-2.10.3.tar.gz", hash = "sha256:46dafc8a4fe268c46479876e52c6967f7a9aa385e1e574e64248670a37b358ff"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] @@ -1060,12 +1093,12 @@ files = [ [[package]] name = "platformdirs" -version = "4.0.0" -requires_python = ">=3.7" +version = "4.1.0" +requires_python = ">=3.8" summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." files = [ - {file = "platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b"}, - {file = "platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731"}, + {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, + {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, ] [[package]] @@ -1080,7 +1113,7 @@ files = [ [[package]] name = "pylint" -version = "3.0.2" +version = "3.0.3" requires_python = ">=3.8.0" summary = "python code static checker" dependencies = [ @@ -1089,15 +1122,15 @@ dependencies = [ "dill>=0.2; python_version < \"3.11\"", "dill>=0.3.6; python_version >= \"3.11\"", "dill>=0.3.7; python_version >= \"3.12\"", - "isort<6,>=4.2.5", + "isort!=5.13.0,<6,>=4.2.5", "mccabe<0.8,>=0.6", "platformdirs>=2.2.0", "tomli>=1.1.0; python_version < \"3.11\"", "tomlkit>=0.10.1", ] files = [ - {file = "pylint-3.0.2-py3-none-any.whl", hash = "sha256:60ed5f3a9ff8b61839ff0348b3624ceeb9e6c2a92c514d81c9cc273da3b6bcda"}, - {file = "pylint-3.0.2.tar.gz", hash = "sha256:0d4c286ef6d2f66c8bfb527a7f8a629009e42c99707dec821a03e1b51a4c1496"}, + {file = "pylint-3.0.3-py3-none-any.whl", hash = "sha256:7a1585285aefc5165db81083c3e06363a27448f6b467b3b0f30dbd0ac1f73810"}, + {file = "pylint-3.0.3.tar.gz", hash = "sha256:58c2398b0301e049609a8429789ec6edf3aabe9b6c5fec916acd18639c16de8b"}, ] [[package]] @@ -1124,19 +1157,6 @@ files = [ {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, ] -[[package]] -name = "pyproject-hooks" -version = "1.0.0" -requires_python = ">=3.7" -summary = "Wrappers to call pyproject.toml-based build backend hooks." -dependencies = [ - "tomli>=1.1.0; python_version < \"3.11\"", -] -files = [ - {file = "pyproject_hooks-1.0.0-py3-none-any.whl", hash = "sha256:283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8"}, - {file = "pyproject_hooks-1.0.0.tar.gz", hash = "sha256:f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5"}, -] - [[package]] name = "python-dateutil" version = "2.8.2" @@ -1150,16 +1170,6 @@ files = [ {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, ] -[[package]] -name = "python-dotenv" -version = "1.0.0" -requires_python = ">=3.8" -summary = "Read key-value pairs from a .env file and set them as environment variables" -files = [ - {file = "python-dotenv-1.0.0.tar.gz", hash = "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"}, - {file = "python_dotenv-1.0.0-py3-none-any.whl", hash = "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a"}, -] - [[package]] name = "pyyaml" version = "6.0.1" @@ -1272,42 +1282,6 @@ files = [ {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, ] -[[package]] -name = "requests-toolbelt" -version = "1.0.0" -requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -summary = "A utility belt for advanced users of python-requests" -dependencies = [ - "requests<3.0.0,>=2.0.1", -] -files = [ - {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, - {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, -] - -[[package]] -name = "resolvelib" -version = "1.0.1" -summary = "Resolve abstract dependencies into concrete ones" -files = [ - {file = "resolvelib-1.0.1-py2.py3-none-any.whl", hash = "sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf"}, - {file = "resolvelib-1.0.1.tar.gz", hash = "sha256:04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309"}, -] - -[[package]] -name = "rich" -version = "13.7.0" -requires_python = ">=3.7.0" -summary = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -dependencies = [ - "markdown-it-py>=2.2.0", - "pygments<3.0.0,>=2.13.0", -] -files = [ - {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, - {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"}, -] - [[package]] name = "ruamel-yaml" version = "0.18.5" @@ -1354,26 +1328,6 @@ files = [ {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, ] -[[package]] -name = "setuptools" -version = "69.0.2" -requires_python = ">=3.8" -summary = "Easily download, build, install, upgrade, and uninstall Python packages" -files = [ - {file = "setuptools-69.0.2-py3-none-any.whl", hash = "sha256:1e8fdff6797d3865f37397be788a4e3cba233608e9b509382a2777d25ebde7f2"}, - {file = "setuptools-69.0.2.tar.gz", hash = "sha256:735896e78a4742605974de002ac60562d286fa8051a7e2299445e8e8fbb01aa6"}, -] - -[[package]] -name = "shellingham" -version = "1.5.4" -requires_python = ">=3.7" -summary = "Tool to Detect Surrounding Shell" -files = [ - {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, - {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, -] - [[package]] name = "six" version = "1.16.0" @@ -1424,16 +1378,6 @@ files = [ {file = "tomlkit-0.12.3.tar.gz", hash = "sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"}, ] -[[package]] -name = "truststore" -version = "0.8.0" -requires_python = ">= 3.10" -summary = "Verify certificates using native system trust stores" -files = [ - {file = "truststore-0.8.0-py3-none-any.whl", hash = "sha256:e37a5642ae9fc48caa8f120b6283d77225d600d224965a672c9e8ef49ce4bb4c"}, - {file = "truststore-0.8.0.tar.gz", hash = "sha256:dc70da89634944a579bfeec70a7a4523c53ffdb3cf52d1bb4a431fda278ddb96"}, -] - [[package]] name = "types-colorama" version = "0.4.15.12" @@ -1483,26 +1427,12 @@ files = [ [[package]] name = "typing-extensions" -version = "4.8.0" +version = "4.9.0" requires_python = ">=3.8" summary = "Backported and Experimental Type Hints for Python 3.8+" files = [ - {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, - {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, -] - -[[package]] -name = "unearth" -version = "0.12.1" -requires_python = ">=3.7" -summary = "A utility to fetch and download python packages" -dependencies = [ - "packaging>=20", - "requests>=2.25", -] -files = [ - {file = "unearth-0.12.1-py3-none-any.whl", hash = "sha256:a5a5c51ca44965cbe3618116bd592bb0bbe3705af5fe14e5792660d904aad7c8"}, - {file = "unearth-0.12.1.tar.gz", hash = "sha256:4caad941b60f51e50fdc109866234d407910aef77f1233aa1b6b5d168c7427ee"}, + {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, + {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, ] [[package]] @@ -1524,21 +1454,6 @@ files = [ {file = "verspec-0.1.0.tar.gz", hash = "sha256:c4504ca697b2056cdb4bfa7121461f5a0e81809255b41c03dda4ba823637c01e"}, ] -[[package]] -name = "virtualenv" -version = "20.24.7" -requires_python = ">=3.7" -summary = "Virtual Python Environment builder" -dependencies = [ - "distlib<1,>=0.3.7", - "filelock<4,>=3.12.2", - "platformdirs<5,>=3.9.1", -] -files = [ - {file = "virtualenv-20.24.7-py3-none-any.whl", hash = "sha256:a18b3fd0314ca59a2e9f4b556819ed07183b3e9a3702ecfe213f593d44f7b3fd"}, - {file = "virtualenv-20.24.7.tar.gz", hash = "sha256:69050ffb42419c91f6c1284a7b24e0475d793447e35929b488bf6a0aade39353"}, -] - [[package]] name = "watchdog" version = "3.0.0" @@ -1580,6 +1495,65 @@ files = [ {file = "wcmatch-8.5.tar.gz", hash = "sha256:86c17572d0f75cbf3bcb1a18f3bf2f9e72b39a9c08c9b4a74e991e1882a8efb3"}, ] +[[package]] +name = "yarl" +version = "1.9.4" +requires_python = ">=3.7" +summary = "Yet another URL library" +dependencies = [ + "idna>=2.0", + "multidict>=4.0", +] +files = [ + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"}, + {file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"}, + {file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"}, + {file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"}, + {file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"}, + {file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"}, + {file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"}, + {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"}, + {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"}, +] + [[package]] name = "zipp" version = "3.17.0" diff --git a/tools/ci/pyproject.toml b/tools/ci/pyproject.toml index 4a6660342..6617307a3 100644 --- a/tools/ci/pyproject.toml +++ b/tools/ci/pyproject.toml @@ -10,9 +10,6 @@ requires-python = ">=3.10" license = {text = "Apache-2.0"} [tool.pdm.dev-dependencies] -packagetool = [ - "pdm==2.10.3", -] codequality = [ "black", "pylint", @@ -39,6 +36,7 @@ docs = [ "mkdocs-gen-files", "mkdocs-placeholder-plugin>=0.4.1", "mkdocs-include-markdown-plugin", + "mkdocs-exclude", "mike", "pyyaml", "types-pyyaml", diff --git a/tools/docs/mkdocs.yml b/tools/docs/mkdocs.yml index 5b47b00d8..fcec7c01f 100644 --- a/tools/docs/mkdocs.yml +++ b/tools/docs/mkdocs.yml @@ -74,6 +74,9 @@ markdown_extensions: - pymdownx.superfences plugins: + - exclude: + glob: + - tutorial/assets/** - mike: version_selector: true alias_type: symlink From e16fe5052ea90f22636860ec15c19426c13dd6c6 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Wed, 13 Dec 2023 17:20:34 +0100 Subject: [PATCH 106/180] Fix testcases --- test/integration/test_cases/test_cases.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/test_cases/test_cases.json b/test/integration/test_cases/test_cases.json index b63795b07..ef4971e49 100644 --- a/test/integration/test_cases/test_cases.json +++ b/test/integration/test_cases/test_cases.json @@ -185,13 +185,13 @@ "refs": ["42fb179"] }, "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["dc55892"] + "refs": ["f93ac85"] }, "data_fault_and_formats/column_rectangle_more_conti": { "refs": ["c2c2362"] }, "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["dbc5ef0"] + "refs": ["ff2afa6"] }, "data_fault_and_formats/rectangle_data_cube": { "refs": ["4b66407"] From 208da0efac5faffefc0f4d3ac08b663e0a8bd62c Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 14 Dec 2023 10:24:52 +0100 Subject: [PATCH 107/180] Fix Qt's tooltip mouse event --- src/base/util/eventdispatcher.cpp | 2 +- src/base/util/eventdispatcher.h | 2 +- src/chart/animator/animator.cpp | 3 ++ test/qtest/chart.cpp | 15 ++++++-- test/qtest/window.cpp | 57 +++++++++++++++++++------------ 5 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/base/util/eventdispatcher.cpp b/src/base/util/eventdispatcher.cpp index ee2e48a57..2e1b65592 100644 --- a/src/base/util/eventdispatcher.cpp +++ b/src/base/util/eventdispatcher.cpp @@ -31,7 +31,7 @@ EventDispatcher::Event::Event(EventDispatcher &owner, EventDispatcher::Event::~Event() = default; -std::string EventDispatcher::Event::name() const +const std::string &EventDispatcher::Event::name() const { return uniqueName; } diff --git a/src/base/util/eventdispatcher.h b/src/base/util/eventdispatcher.h index 0d0625604..0f2099386 100644 --- a/src/base/util/eventdispatcher.h +++ b/src/base/util/eventdispatcher.h @@ -55,7 +55,7 @@ class EventDispatcher Event(EventDispatcher &owner, const char *name); virtual ~Event(); - std::string name() const; + [[nodiscard]] const std::string &name() const; bool invoke(Params &¶ms = Params{}); void attach(std::uint64_t id, handler_fn handler); void detach(std::uint64_t id); diff --git a/src/chart/animator/animator.cpp b/src/chart/animator/animator.cpp index aefd437b2..5725d0260 100644 --- a/src/chart/animator/animator.cpp +++ b/src/chart/animator/animator.cpp @@ -14,6 +14,9 @@ Animator::Animator() : void Animator::addKeyframe(const Gen::PlotPtr &plot, const Options::Keyframe &options) { + if (running) + throw std::logic_error("animation already in progress"); + nextAnimation->addKeyframe(plot, options); } diff --git a/test/qtest/chart.cpp b/test/qtest/chart.cpp index bc3ad2046..3c63d8803 100644 --- a/test/qtest/chart.cpp +++ b/test/qtest/chart.cpp @@ -35,9 +35,20 @@ void TestChart::prepareData() ->attach(*this); } -void TestChart::operator()(Util::EventDispatcher::Params &) +void TestChart::operator()(Util::EventDispatcher::Params ¶ms) { - chart.getChart().getSetter().showTooltip({}); + std::optional markerId; + using Marker = Vizzu::Events::Targets::Marker; + using MarkerChild = Vizzu::Events::Targets::MarkerChild; + + auto marker = dynamic_cast(params.target); + if (!marker) + if (auto c = dynamic_cast(params.target)) + marker = &c->parent; + if (marker) markerId.emplace(marker->marker.idx); + + chart.getChart().getSetter().showTooltip(markerId); + chart.getChart().setKeyframe(); chart.getChart().animate(); } diff --git a/test/qtest/window.cpp b/test/qtest/window.cpp index bbd8b7b1a..7d3fba481 100644 --- a/test/qtest/window.cpp +++ b/test/qtest/window.cpp @@ -59,29 +59,44 @@ void Window::paintEvent(QPaintEvent *) bool Window::eventFilter(QObject *, QEvent *event) { - auto type = event->type(); - if (type == QEvent::MouseButtonPress) { - auto *e = static_cast(event); - const Geom::Point pos(e->x(), e->y()); - chart.getChart().onPointerDown({}, GUI::PointerEvent(0, pos)); - return true; + try { + auto type = event->type(); + if (type == QEvent::MouseButtonPress) { + auto *e = static_cast(event); + const Geom::Point pos(e->x(), e->y()); + chart.getChart().onPointerDown({}, + GUI::PointerEvent(0, pos)); + return true; + } + if (type == QEvent::MouseButtonRelease) { + auto *e = static_cast(event); + const Geom::Point pos(e->x(), e->y()); + chart.getChart().onPointerUp({}, + GUI::PointerEvent(0, pos)); + return true; + } + if (type == QEvent::HoverMove) { + auto *e = static_cast(event); + const Geom::Point pos(e->pos().x(), e->pos().y()); + chart.getChart().onPointerMove({}, + GUI::PointerEvent(0, pos)); + return true; + } + if (type == QEvent::HoverLeave) { + chart.getChart().onPointerLeave({}, + GUI::PointerEvent(0, Geom::Point::Invalid())); + return true; + } } - if (type == QEvent::MouseButtonRelease) { - auto *e = static_cast(event); - const Geom::Point pos(e->x(), e->y()); - chart.getChart().onPointerUp({}, GUI::PointerEvent(0, pos)); - return true; + catch (std::exception const &x) { + if (x.what() + != std::string_view{"animation already in progress"}) + printf("Exception thrown at mouse event: %s(\"%s\")\n", + typeid(x).name() + 4, + x.what()); } - if (type == QEvent::HoverMove) { - auto *e = static_cast(event); - const Geom::Point pos(e->pos().x(), e->pos().y()); - chart.getChart().onPointerMove({}, GUI::PointerEvent(0, pos)); - return true; - } - if (type == QEvent::HoverLeave) { - chart.getChart().onPointerLeave({}, - GUI::PointerEvent(0, Geom::Point::Invalid())); - return true; + catch (...) { + printf("Unknown exception thrown at mouse event.\n"); } return false; } \ No newline at end of file From d1b5cfabcdb457b704a882547417d6e79506bcd1 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 14 Dec 2023 10:35:27 +0100 Subject: [PATCH 108/180] Fix mouse event on nothing. --- src/chart/ui/chart.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chart/ui/chart.cpp b/src/chart/ui/chart.cpp index 9400f61df..e6705fbdd 100644 --- a/src/chart/ui/chart.cpp +++ b/src/chart/ui/chart.cpp @@ -157,7 +157,7 @@ const Gen::Marker *ChartWidget::getIfMarker( const Util::EventTarget *target) { if (!target) [[unlikely]] - throw std::runtime_error("Nothing at this position"); + return nullptr; const auto *element = static_cast(target); From 222a7f8e8233d4f474ebc5dd743634789d8d7cf0 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 14 Dec 2023 14:47:36 +0100 Subject: [PATCH 109/180] Fix tooltip bug --- src/chart/main/chart.cpp | 2 +- src/chart/main/stylesheet.cpp | 19 +++++++------------ src/chart/main/stylesheet.h | 3 ++- test/qtest/window.cpp | 11 ++++++++++- test/qtest/window.h | 2 ++ 5 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/chart/main/chart.cpp b/src/chart/main/chart.cpp index dfdba7987..348164c81 100644 --- a/src/chart/main/chart.cpp +++ b/src/chart/main/chart.cpp @@ -123,7 +123,7 @@ Gen::PlotPtr Chart::plot(const Gen::PlotOptionsPtr &options) stylesheet.getFullParams(options, layout.boundary.size), false); - Styles::Sheet::setAfterStyles(*res, layout); + Styles::Sheet::setAfterStyles(*res, layout.boundary.size); return res; } diff --git a/src/chart/main/stylesheet.cpp b/src/chart/main/stylesheet.cpp index 4b866168a..5b274e53d 100644 --- a/src/chart/main/stylesheet.cpp +++ b/src/chart/main/stylesheet.cpp @@ -182,27 +182,22 @@ void Sheet::setData() : 0.006; } -void Sheet::setAfterStyles(Gen::Plot &plot, const Layout &layout) +void Sheet::setAfterStyles(Gen::Plot &plot, const Geom::Size &size) { auto &style = plot.getStyle(); style.setup(); if (auto &xLabel = style.plot.xAxis.label; !xLabel.angle) { - auto plotX = layout.plotArea.size.x; - if (plotX == 0.0) { - plotX = layout.boundary.size.x; + auto plotX = size.x; - auto em = style.calculatedSize(); - if (plot.getOptions()->legend.get()) - plotX -= - style.legend.computedWidth(layout.boundary.size.x, - em); + auto em = style.calculatedSize(); + if (plot.getOptions()->legend.get()) + plotX -= style.legend.computedWidth(plotX, em); - plotX -= style.plot.toMargin({plotX, 0}, em).getSpace().x; - } + plotX -= style.plot.toMargin({plotX, 0}, em).getSpace().x; auto fontRelativeHalfApproxWidth = - xLabel.calculatedSize() * 0.45 / 2.0 / plotX; + xLabel.calculatedSize() * 0.575 / 2.0 / plotX; std::vector> ranges; bool has_collision = false; diff --git a/src/chart/main/stylesheet.h b/src/chart/main/stylesheet.h index ebf57a956..d6ea8f7e5 100644 --- a/src/chart/main/stylesheet.h +++ b/src/chart/main/stylesheet.h @@ -29,7 +29,8 @@ class Sheet : public Style::Sheet static double baseFontSize(const Geom::Size &size, bool rounded); - static void setAfterStyles(Gen::Plot &plot, const Layout &layout); + static void setAfterStyles(Gen::Plot &plot, + const Geom::Size &size); private: using Base::getFullParams; diff --git a/test/qtest/window.cpp b/test/qtest/window.cpp index 7d3fba481..f3633b792 100644 --- a/test/qtest/window.cpp +++ b/test/qtest/window.cpp @@ -99,4 +99,13 @@ bool Window::eventFilter(QObject *, QEvent *event) printf("Unknown exception thrown at mouse event.\n"); } return false; -} \ No newline at end of file +} +void Window::resizeEvent(QResizeEvent *) +{ + try { + chart.getChart().getChart().setKeyframe(); + chart.getChart().getChart().animate(); + } + catch (...) { + } +} diff --git a/test/qtest/window.h b/test/qtest/window.h index 101d8cb0f..12e239ac0 100644 --- a/test/qtest/window.h +++ b/test/qtest/window.h @@ -19,6 +19,8 @@ class Window : public QMainWindow ~Window() override; void paintEvent(QPaintEvent *) override; + void resizeEvent(QResizeEvent *) override; + private: TestChart chart; std::unique_ptr ui; From 832c53a724f5a593288497833681fde129cc2e43 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Sun, 17 Dec 2023 13:04:19 +0100 Subject: [PATCH 110/180] Type-fest dependency fix --- CHANGELOG.md | 1 + package.json | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77c951bde..0d68212a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Fixed +- Type-fest dependency added as normal instead of dev. - When only logo rendered chart resized, the previous drawn logo position was not deleted. - At the mouse events the lib is not queried the exact rendered chart position through API. - On axis labels sometimes missed a space character between value and unit. diff --git a/package.json b/package.json index 877635aaf..d06108616 100644 --- a/package.json +++ b/package.json @@ -115,6 +115,9 @@ "pkg-build-js": "./tools/ci/run/pkg-build-js.sh", "pkg-purge-js": "./tools/ci/run/pkg-purge-js.sh" }, + "dependencies": { + "type-fest": "^4.6.0" + }, "devDependencies": { "@rollup/plugin-terser": "^0.4.3", "@tsconfig/strictest": "^2.0.2", @@ -142,7 +145,6 @@ "rollup": "^3.29.2", "serve-static": "^1.15.0", "strip-color": "^0.1.0", - "type-fest": "^4.6.0", "typedoc": "~0.25.2", "typedoc-plugin-markdown": "~3.16.0", "typedoc-plugin-rename-defaults": "~0.6.4", From 30f9717e56ec0a643460da7d7c58fc440be85501 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Sun, 17 Dec 2023 14:24:27 +0100 Subject: [PATCH 111/180] Regenerate the lock file --- package-lock.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f0c0c1e9..c3c7e8245 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,6 +6,9 @@ "": { "name": "vizzu", "license": "Apache-2.0", + "dependencies": { + "type-fest": "^4.6.0" + }, "devDependencies": { "@rollup/plugin-terser": "^0.4.3", "@tsconfig/strictest": "^2.0.2", @@ -33,7 +36,6 @@ "rollup": "^3.29.2", "serve-static": "^1.15.0", "strip-color": "^0.1.0", - "type-fest": "^4.6.0", "typedoc": "~0.25.2", "typedoc-plugin-markdown": "~3.16.0", "typedoc-plugin-rename-defaults": "~0.6.4", @@ -8136,7 +8138,6 @@ "version": "4.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.1.tgz", "integrity": "sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q==", - "dev": true, "engines": { "node": ">=16" }, From 73d24ee0528526124ae35045e5e6290769344b19 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Mon, 18 Dec 2023 12:38:46 +0100 Subject: [PATCH 112/180] Fixed script names --- CONTRIBUTING.md | 51 ++++++------- package.json | 71 ++++++++++--------- .../integration-test/test-suite-result.cjs | 2 +- tools/ci/gcp/cloudbuild/cloudbuild.yaml | 25 +++---- tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh | 4 +- tools/ci/run/pkg-build-wasm-wocpp.sh | 4 +- tools/ci/run/pkg-build-wasm.sh | 6 +- 7 files changed, 79 insertions(+), 84 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 530d2eaeb..aceeeeb83 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,12 +32,12 @@ To contribute to the `JavaScript` part of the project, it is recommended to use Run the following command to install the `JavaScript` development dependencies: ```sh -npm run init-js +npm install ``` The `JavaScript` development requirements are installed based on the `package-lock.json` file. To update the development requirements, you can use -the command `npm run lock-js`. +the command `npm run lock:js`. However, for the documentation we are also using `Python`. If you plan to contribute to this part of the project, you will need `Python`, preferably @@ -46,21 +46,12 @@ version `3.10`. Run the following command to install the `Python` development dependencies: ```sh -npm run init-py +./tools/ci/run/init-py.sh ``` The `Python` development requirements are installed based on the `tools/ci/pdm.lock` file. To update the development requirements, you can use -the command `npm run lock-py`. - -Once set up, you can utilize the pre-defined `npm` scripts. For example, you can -initialize the `JavaScript` and `Python` development environments using the -command `npm run init`, or specific parts like `init-src`, `init-docs`, or -`init-tools`. - -```sh -npm run init -``` +the command `npm run lock:py`. **Note:** For all available `npm` scripts, run `npm run --list`. @@ -148,12 +139,12 @@ Run the following script in the running `vizzu-dev-wasm` container to build the If you used the above script to build the `WASM` version, the minified `JavaScript` file is already created otherwise you can run -`npm run pkg-build-ts && npm run pkg-rollup-js`. After run the following command -in order to create the npm package: +`npm run build:ts && npm run rollup`. After run the following command in order +to create the npm package: ```sh -npm run pkg-set-version-js -npm run pkg-build-js +npm run set-version +npm run build:js ``` **Note:** This task will set the version number in the `package.json` file. @@ -161,9 +152,9 @@ npm run pkg-build-js **Note:** You can build the `npm` package without building the `WASM` version: ```sh -npm run pkg-build-wasm-wocpp -npm run pkg-set-version-js -npm run pkg-build-js +npm run build:wasm-wocpp +npm run set-version +npm run build:js ``` ### CI @@ -178,7 +169,7 @@ npm run ci ``` However, if you want to run the CI steps on specific parts of the project, you -can use the following scripts: `ci-src`, `ci-docs`, or `ci-tools`. +can use the following scripts: `ci:src`, `ci:docs`, or `ci:tools`. #### Formatting @@ -195,8 +186,8 @@ npm run fix-format ``` If you wish to format specific parts of the project, you can use the following -scripts: `format-src`, `format-docs`, `format-tools`, or `fix-format-src`, -`fix-format-docs`, `fix-format-tools`. +scripts: `format:src`, `format:docs`, `format:tools`, or `fix-format:src`, +`fix-format:docs`, `fix-format:tools`. #### Code analyses @@ -207,7 +198,7 @@ npm run lint ``` If you need to run code analyses for specific parts of the project, you can -utilize the following scripts: `lint-src`, `lint-docs`, or `lint-tools`. +utilize the following scripts: `lint:src`, `lint:docs`, or `lint:tools`. #### Typing @@ -218,7 +209,7 @@ npm run type ``` If you want to check specific parts of the project, you can use the following -script: `type-tools`. +script: `type:tools`. #### Testing @@ -241,14 +232,14 @@ Test cases can be viewed using different versions of `Vizzu` using the manual checker. ```sh -npm run test-man +npm run test:man # Press CTRL and click on the URL to open it in the default browser ``` For more options please see the program help. ```sh -npm run test-man -- --help +npm run test:man -- --help ``` ### "Nightly" builds @@ -284,13 +275,13 @@ git clone --single-branch --branch main --depth 1 'git@github.com:vizzuhq/vizzu- **Note:** If you also want to generate thumbnails, run the following command: ```sh -npm run docs-gen-thumbnail +npm run gen-thumbnail ``` -To build the documentation, you can use the `docs-build` script: +To build the documentation, you can use the `build-docs` script: ```sh -npm run docs-build +npm run build-docs ``` You can read the online version at diff --git a/package.json b/package.json index 23976baed..ed99b664f 100644 --- a/package.json +++ b/package.json @@ -46,9 +46,6 @@ "url": "https://github.com/vizzuhq/vizzu-lib.git" }, "scripts": { - "install": "npm-run-all install:*", - "install:js": "npm install", - "install:py": "./tools/ci/run/init-py.sh", "lock": "npm-run-all lock:*", "lock:js": "npm update", "lock:py": "./tools/ci/run/lock-py.sh", @@ -69,8 +66,25 @@ "lint:tools": "npm-run-all lint-tools:*", "lint-tools:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", "lint-tools:py": "./tools/ci/run/lint-pylint-py.sh tools", - "fix": "npm-run-all fix:*", - "fix:format": "npm-run-all fix-format:*", + "type": "npm-run-all type:*", + "type:tools": "npm-run-all type-tools:*", + "type-tools:py": "./tools/ci/run/type-mypy-py.sh tools", + "test": "npm-run-all test:e2e", + "test:unit": "NODE_OPTIONS='--experimental-vm-modules' npx jest --config test/unit/jest.config.js --verbose", + "test:e2e": "node test/integration/test.cjs", + "test:e2e-unit": "npx jest --config=./test/integration/modules/jest.config.cjs --verbose", + "test:man": "node test/integration/man.cjs", + "ci": "npm-run-all ci:*", + "ci:src": "npm-run-all ci-src:*", + "ci-src:js": "npm-run-all format-src:js lint-src:js test:unit test", + "ci:docs": "npm-run-all ci-docs:*", + "ci-docs:js": "npm-run-all format-docs:js lint-docs:js", + "ci-docs:py": "npm-run-all format-docs:py", + "ci:tools": "npm-run-all ci-tools:*", + "ci-tools:js": "npm-run-all format-tools:js lint-tools:js", + "ci-tools:py": "npm-run-all format-tools:py lint-tools:py type-tools:py", + "fix": "npm-run-all fix-format fix-lint", + "fix-format": "npm-run-all fix-format:*", "fix-format:src": "npm-run-all fix-format-src:js", "fix-format-src:js": "npx prettier --config .prettierrc -w src test package.json", "fix-format:docs": "npm-run-all fix-format-docs:*", @@ -79,39 +93,28 @@ "fix-format:tools": "npm-run-all fix-format-tools:*", "fix-format-tools:js": "npx prettier --config .prettierrc -w tools/ci tools/docs .prettierrc .eslintrc.cjs .puppeteerrc.cjs .github", "fix-format-tools:py": "./tools/ci/run/format-black-py.sh tools", - "fix:lint": "npm-run-all fix-lint:*", - "fix-lint:tools": "npm-run-all fix-lint-tools:*", - "fix-lint-tools:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", + "fix-lint": "npm-run-all fix-lint:*", "fix-lint:src": "npm-run-all fix-lint-src:*", "fix-lint-src:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs src test", "fix-lint:docs": "npm-run-all fix-lint-docs:*", "fix-lint-docs:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", - "type": "npm-run-all type:*", - "type:tools": "npm-run-all type-tools:*", - "type-tools:py": "./tools/ci/run/type-mypy-py.sh tools", - "test": "node test/integration/test.cjs", - "test:man": "node test/integration/man.cjs", - "test:unit-test": "npx jest --config=./test/integration/modules/jest.config.cjs --verbose", - "test:unit-src": "NODE_OPTIONS='--experimental-vm-modules' npx jest --config test/unit/jest.config.js --verbose", - "ci": "npm-run-all ci:*", - "ci:src": "npm-run-all format:src lint:src test:unit-src test:unit-test test", - "ci:docs": "npm-run-all format:docs lint:docs", - "ci:tools": "npm-run-all format:tools lint:tools type:tools", - "docs:build": "./tools/ci/run/docs-build.sh", - "docs:deploy": "./tools/ci/run/docs-deploy.sh", - "docs:gen-thumbnail": "./tools/ci/run/docs-gen-thumbnail.sh", - "docs:gen-thumbnail-gsutil": "./tools/ci/run/docs-gen-thumbnail-gsutil.sh", - "pkg:rollup-js": "./tools/ci/run/pkg-rollup-js.sh", - "pkg:set-version-js": "./tools/ci/run/pkg-set-version-js.sh", - "pkg:purge-js": "./tools/ci/run/pkg-purge-js.sh", - "pkg-build:js": "./tools/ci/run/pkg-build-js.sh", - "pkg-build:ts": "./tools/ci/run/pkg-build-ts.sh", - "pkg-build:desktop": "./tools/ci/run/pkg-build-desktop.sh", - "pkg-build:desktop-clangformat": "./tools/ci/run/pkg-build-desktop-clangformat.sh", - "pkg-build:desktop-clangtidy": "./tools/ci/run/pkg-build-desktop-clangtidy.sh", - "pkg-build:wasm": "./tools/ci/run/pkg-build-wasm.sh", - "pkg-build:wasm-wocpp": "./tools/ci/run/pkg-build-wasm-wocpp.sh", - "pkg-build:wasm-wocpp-gsutil": "./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh" + "fix-lint:tools": "npm-run-all fix-lint-tools:*", + "fix-lint-tools:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", + "gen-thumbnail": "./tools/ci/run/docs-gen-thumbnail.sh", + "gen-thumbnail-gsutil": "./tools/ci/run/docs-gen-thumbnail-gsutil.sh", + "build-docs": "./tools/ci/run/docs-build.sh", + "deploy-docs": "./tools/ci/run/docs-deploy.sh", + "rollup": "./tools/ci/run/pkg-rollup-js.sh", + "set-version": "./tools/ci/run/pkg-set-version-js.sh", + "purge": "./tools/ci/run/pkg-purge-js.sh", + "build:js": "./tools/ci/run/pkg-build-js.sh", + "build:ts": "./tools/ci/run/pkg-build-ts.sh", + "build:desktop": "./tools/ci/run/pkg-build-desktop.sh", + "build:desktop-clangformat": "./tools/ci/run/pkg-build-desktop-clangformat.sh", + "build:desktop-clangtidy": "./tools/ci/run/pkg-build-desktop-clangtidy.sh", + "build:wasm": "./tools/ci/run/pkg-build-wasm.sh", + "build:wasm-wocpp": "./tools/ci/run/pkg-build-wasm-wocpp.sh", + "build:wasm-wocpp-gsutil": "./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh" }, "dependencies": { "type-fest": "^4.6.0" diff --git a/test/integration/modules/integration-test/test-suite-result.cjs b/test/integration/modules/integration-test/test-suite-result.cjs index c4900a854..3cf722551 100644 --- a/test/integration/modules/integration-test/test-suite-result.cjs +++ b/test/integration/modules/integration-test/test-suite-result.cjs @@ -47,7 +47,7 @@ class TestSuiteResult { this.#cnsl.log('\n') this.#cnsl.log( ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + - 'npm run test-man --' + + 'npm run test:man --' + ' ' + this.#testSuiteResults.MANUAL_FORMATTED.map((s) => `'${s}'`).join(' ') ) diff --git a/tools/ci/gcp/cloudbuild/cloudbuild.yaml b/tools/ci/gcp/cloudbuild/cloudbuild.yaml index 675300ddb..03aebc92d 100644 --- a/tools/ci/gcp/cloudbuild/cloudbuild.yaml +++ b/tools/ci/gcp/cloudbuild/cloudbuild.yaml @@ -8,7 +8,8 @@ steps: - '-c' - '-e' - |- - npm run init + npm install && + ./tools/ci/run/init-py.sh dir: /workspace - name: vizzu/vizzu-dev-wasm:0.9 @@ -24,8 +25,8 @@ steps: then echo "skipped" else - npm run format-src - npm run lint-src + npm run format:src + npm run lint:src fi dir: /workspace - name: vizzu/vizzu-dev-wasm:0.9 @@ -41,8 +42,8 @@ steps: then echo "skipped" else - npm run format-docs - npm run lint-docs + npm run format:docs + npm run lint:docs fi dir: /workspace - name: vizzu/vizzu-dev-wasm:0.9 @@ -58,9 +59,9 @@ steps: then echo "skipped" else - npm run format-tools - npm run lint-tools - npm run type-tools + npm run format:tools + npm run lint:tools + npm run type:tools fi dir: /workspace @@ -175,15 +176,15 @@ steps: git clone --single-branch --branch main --depth 1 'git@github.com:vizzuhq/vizzu-lib-doc' git config --global user.name "$$VIZZUHQ_GITHUB_USER" git config --global user.email "$$VIZZUHQ_GITHUB_EMAIL" - npm run docs-gen-thumbnail-gsutil + npm run gen-thumbnail-gsutil if [ "$_ISRELEASE" == "true" ] then git remote add vizzu-lib-doc git@github.com:vizzuhq/vizzu-lib-doc git fetch git@github.com:vizzuhq/vizzu-lib-doc gh-pages:gh-pages --depth=1 - npm run docs-deploy + npm run deploy-docs git push vizzu-lib-doc gh-pages:gh-pages else - npm run docs-build + npm run build-docs if [ "$BRANCH_NAME" == "main" ]; then cd vizzu-lib-doc git checkout -b gh-pages-dev @@ -216,7 +217,7 @@ steps: if [ "$_ISRELEASE" == "true" ] then npm publish - npm run pkg-purge-js + npm run purge git fetch --depth=1 echo $$VIZZUHQ_GITHUB_API | gh auth login --with-token gh release upload $(git describe --tags --abbrev=0) build/js/*tgz --clobber diff --git a/tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh b/tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh index 31468d073..6946c8057 100755 --- a/tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh +++ b/tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh @@ -9,5 +9,5 @@ SHORT_SHA="$1" gsutil cp "gs://vizzu-lib-main-sha/lib-$SHORT_SHA/cvizzu.wasm" 'dist/cvizzu.wasm' gsutil cp "gs://vizzu-lib-main-sha/lib-$SHORT_SHA/cvizzu.js" 'dist/cvizzu.js' -npm run pkg-build-ts -npm run pkg-rollup-js +npm run build:ts +npm run rollup diff --git a/tools/ci/run/pkg-build-wasm-wocpp.sh b/tools/ci/run/pkg-build-wasm-wocpp.sh index 33602ea5c..8b9cf4b5c 100755 --- a/tools/ci/run/pkg-build-wasm-wocpp.sh +++ b/tools/ci/run/pkg-build-wasm-wocpp.sh @@ -28,5 +28,5 @@ if [ "$SUCCESS" = false ]; then exit 1 fi -npm run pkg-build-ts -npm run pkg-rollup-js +npm run build:ts +npm run rollup diff --git a/tools/ci/run/pkg-build-wasm.sh b/tools/ci/run/pkg-build-wasm.sh index 60f69144e..4e2e985a4 100755 --- a/tools/ci/run/pkg-build-wasm.sh +++ b/tools/ci/run/pkg-build-wasm.sh @@ -29,12 +29,12 @@ node tools/ci/sizeCheck.cjs # build ts -npm run pkg-build-ts +npm run build:ts # test js -npm run test-unit-src +npm run test:unit # rollup js -npm run pkg-rollup-js +npm run rollup From 20b3c09c47c80715a05f9973cd31bf2f4b47d282 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Mon, 18 Dec 2023 15:56:42 +0100 Subject: [PATCH 113/180] Fixed missing cvizzu.d.ts and cvizzu.types.d.ts --- CHANGELOG.md | 1 + package-lock.json | 117 +++++++++++++++++++++++++++++++++ package.json | 7 +- test/dts/vizzu.d.ts | 2 + tools/ci/run/pkg-build-ts.sh | 8 +++ tools/ci/run/pkg-build-wasm.sh | 4 ++ 6 files changed, 137 insertions(+), 2 deletions(-) create mode 100644 test/dts/vizzu.d.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d68212a7..af010d5c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixed - Type-fest dependency added as normal instead of dev. +- Added missing `cvizzu.d.ts` and `cvizzu.types.d.ts` to the `npm` package. - When only logo rendered chart resized, the previous drawn logo position was not deleted. - At the mouse events the lib is not queried the exact rendered chart position through API. - On axis labels sometimes missed a space character between value and unit. diff --git a/package-lock.json b/package-lock.json index c3c7e8245..fd11a7550 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "aggregate-error": "^5.0.0", "ajv": "8.12.0", "axios": "^1.5.1", + "check-dts": "^0.7.2", "colors": "^1.4.0", "eslint": "^8.49.0", "eslint-config-prettier": "^9.0.0", @@ -1507,6 +1508,12 @@ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, + "node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, "node_modules/@types/yargs": { "version": "17.0.31", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", @@ -2465,6 +2472,27 @@ "node": ">=10" } }, + "node_modules/check-dts": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/check-dts/-/check-dts-0.7.2.tgz", + "integrity": "sha512-ZflsEhv7SXlgNECrNIw1WmMJZ1787KtS62anWknLPI+k9g9OY2eA/UfT+Tsb0i0eWLUZHtFfznrNtGlQJrGaKw==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.12", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0", + "vfile-location": "^4.1.0" + }, + "bin": { + "check-dts": "bin.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, "node_modules/chromium-bidi": { "version": "0.4.33", "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.33.tgz", @@ -5996,6 +6024,15 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/nanospinner": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", + "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -8346,6 +8383,19 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -8451,6 +8501,73 @@ "node": ">= 0.8" } }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", + "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", diff --git a/package.json b/package.json index d06108616..cb4fdd685 100644 --- a/package.json +++ b/package.json @@ -88,14 +88,16 @@ "lint-tools": "npm-run-all lint-tools-js lint-tools-py", "fix-lint": "npm-run-all fix-lint-src fix-lint-docs fix-lint-tools", "lint": "npm-run-all lint-src lint-docs lint-tools", + "type-src-js": "npx check-dts ./test/dts/vizzu.d.ts", + "type-src": "npm-run-all type-src-js", "type-tools-py": "./tools/ci/run/type-mypy-py.sh tools", "type-tools": "npm-run-all type-tools-py", - "type": "npm-run-all type-tools", + "type": "npm-run-all type-src type-tools", "test-unit-src": "NODE_OPTIONS='--experimental-vm-modules' npx jest --config test/unit/jest.config.js --verbose", "test-unit-test": "npx jest --config=./test/integration/modules/jest.config.cjs --verbose", "test-man": "node test/integration/man.cjs", "test": "node test/integration/test.cjs", - "ci-src": "npm-run-all format-src lint-src test-unit-src test-unit-test test", + "ci-src": "npm-run-all format-src lint-src type-src test-unit-src test-unit-test test", "ci-docs": "npm-run-all format-docs lint-docs", "ci-tools": "npm-run-all format-tools lint-tools type-tools", "ci": "npm-run-all ci-src ci-docs ci-tools", @@ -126,6 +128,7 @@ "aggregate-error": "^5.0.0", "ajv": "8.12.0", "axios": "^1.5.1", + "check-dts": "^0.7.2", "colors": "^1.4.0", "eslint": "^8.49.0", "eslint-config-prettier": "^9.0.0", diff --git a/test/dts/vizzu.d.ts b/test/dts/vizzu.d.ts new file mode 100644 index 000000000..5abba7210 --- /dev/null +++ b/test/dts/vizzu.d.ts @@ -0,0 +1,2 @@ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import * as vizzu from '../../dist/vizzu' diff --git a/tools/ci/run/pkg-build-ts.sh b/tools/ci/run/pkg-build-ts.sh index 3d41b4d93..1cb94585a 100755 --- a/tools/ci/run/pkg-build-ts.sh +++ b/tools/ci/run/pkg-build-ts.sh @@ -6,3 +6,11 @@ node tools/ci/type/gen-presets.cjs node tools/ci/type/gen-dts.cjs node tools/ci/type/gen-canvas-ts.cjs npx tsc -p src/apps/weblib/ts-api/tsconfig.json +find "./src/apps/weblib/ts-api/" -type f -name "*.d.ts" -exec bash -c ' + for file do + relative_path=$(realpath --relative-to="./src/apps/weblib/ts-api/" "$file") + destination_path="./dist/$relative_path" + mkdir -p "$(dirname "$destination_path")" + cp "$file" "$destination_path" + done +' bash {} + diff --git a/tools/ci/run/pkg-build-wasm.sh b/tools/ci/run/pkg-build-wasm.sh index 60f69144e..2386145ba 100755 --- a/tools/ci/run/pkg-build-wasm.sh +++ b/tools/ci/run/pkg-build-wasm.sh @@ -31,6 +31,10 @@ node tools/ci/sizeCheck.cjs npm run pkg-build-ts +# test d.ts + +npm run type-src + # test js npm run test-unit-src From bc0396cd3f92770dd4e4bd5b436f2bf95fc185c8 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Mon, 18 Dec 2023 16:16:58 +0100 Subject: [PATCH 114/180] Fixed test script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ed99b664f..ef596eab1 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "type": "npm-run-all type:*", "type:tools": "npm-run-all type-tools:*", "type-tools:py": "./tools/ci/run/type-mypy-py.sh tools", - "test": "npm-run-all test:e2e", + "test": "node test/integration/test.cjs", "test:unit": "NODE_OPTIONS='--experimental-vm-modules' npx jest --config test/unit/jest.config.js --verbose", "test:e2e": "node test/integration/test.cjs", "test:e2e-unit": "npx jest --config=./test/integration/modules/jest.config.cjs --verbose", From 6f1c4e27e268c074a4d1d05dc0fd7f86316ed543 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 19 Dec 2023 16:46:47 +0100 Subject: [PATCH 115/180] Not used code removed. --- src/data/datacube/datacube.cpp | 19 -------- src/data/datacube/datacube.h | 5 -- src/data/multidim/multidimarray.h | 16 ------- src/data/multidim/multidimarray.impl.h | 65 -------------------------- src/data/multidim/multidimindex.h | 9 ---- 5 files changed, 114 deletions(-) diff --git a/src/data/datacube/datacube.cpp b/src/data/datacube/datacube.cpp index bc3b4f1b8..095be956c 100644 --- a/src/data/datacube/datacube.cpp +++ b/src/data/datacube/datacube.cpp @@ -174,25 +174,6 @@ Aggregator DataCube::aggregateAt(const MultiIndex &multiIndex, return aggregate; } -double DataCube::sumTillAt(const SeriesList &colIndices, - const SeriesList &sumCols, - const MultiIndex &multiIndex, - SeriesIndex seriesId) const -{ - double sum = 0; - - data.visitSubSlicesTill(subSliceIndex(colIndices, multiIndex), - [this, &multiIndex, &sum, &sumCols, &seriesId]( - const SubSliceIndex &subSliceIndex) - { - auto index = subSliceIndex.getProjectionOf(multiIndex); - sum += static_cast( - aggregateAt(index, sumCols, seriesId)); - }); - - return sum; -} - Aggregator DataCube::valueAt(const MultiIndex &multiIndex, const SeriesIndex &seriesId) const { diff --git a/src/data/datacube/datacube.h b/src/data/datacube/datacube.h index 753b94739..de33f191e 100644 --- a/src/data/datacube/datacube.h +++ b/src/data/datacube/datacube.h @@ -64,11 +64,6 @@ class DataCube const SeriesList &sumCols, SeriesIndex seriesId) const; - [[nodiscard]] double sumTillAt(const SeriesList &colIndices, - const SeriesList &sumCols, - const MultiDim::MultiIndex &multiIndex, - SeriesIndex seriesId) const; - [[nodiscard]] Aggregator valueAt( const MultiDim::MultiIndex &multiIndex, const SeriesIndex &seriesId) const; diff --git a/src/data/multidim/multidimarray.h b/src/data/multidim/multidimarray.h index 9fccccc24..78f612d51 100644 --- a/src/data/multidim/multidimarray.h +++ b/src/data/multidim/multidimarray.h @@ -64,19 +64,8 @@ template class Array void visitSubSlice(const SubSliceIndex &subSliceIndex, const std::function &visitor) const; - void visitSubSlicesTill(const SubSliceIndex &targetSubSliceIndex, - const std::function &visitor) - const; - - [[nodiscard]] MultiIndex subSliceIndexMaxAt( - const SubSliceIndex &subSliceIndex, - const MultiIndex &multiIndex) const; - [[nodiscard]] MultiIndex maxIndex() const; - [[nodiscard]] size_t lastIndexCountAt( - const SubSliceIndex &subSliceIndex) const; - [[nodiscard]] bool empty() const; [[nodiscard]] size_t unfoldedSize() const; [[nodiscard]] size_t unfoldedIndex(const MultiIndex &index) const; @@ -90,11 +79,6 @@ template class Array void visitSubSlice(const SubSliceIndex &subSliceIndex, const std::function &visitor, MultiIndex &multiIndex) const; - - void visitSubSlicesTill(const SubSliceIndex &targetSubSliceIndex, - const std::function &visitor, - SubSliceIndex &subSliceIndex, - bool whole) const; }; } diff --git a/src/data/multidim/multidimarray.impl.h b/src/data/multidim/multidimarray.impl.h index 71b3f7c5d..d75215385 100644 --- a/src/data/multidim/multidimarray.impl.h +++ b/src/data/multidim/multidimarray.impl.h @@ -72,19 +72,6 @@ void Array::visitSubSlice(const SubSliceIndex &subSliceIndex, this->visitSubSlice(subSliceIndex, visitor, multiIndex); } -template -void Array::visitSubSlicesTill( - const SubSliceIndex &targetSubSliceIndex, - const std::function &visitor) const -{ - SubSliceIndex subSliceIndex; - subSliceIndex.reserve(targetSubSliceIndex.size()); - this->visitSubSlicesTill(targetSubSliceIndex, - visitor, - subSliceIndex, - false); -} - template void Array::visitSubSlice(const SubSliceIndex &subSliceIndex, const std::function &visitor, @@ -109,58 +96,6 @@ void Array::visitSubSlice(const SubSliceIndex &subSliceIndex, } } -template -void Array::visitSubSlicesTill( - const SubSliceIndex &targetSubSliceIndex, - const std::function &visitor, - SubSliceIndex &subSliceIndex, - bool whole) const -{ - if (subSliceIndex.size() == targetSubSliceIndex.size()) { - visitor(subSliceIndex); - } - else { - auto level = subSliceIndex.size(); - auto dimIndex = targetSubSliceIndex[level].dimIndex; - subSliceIndex.push_back({dimIndex, Index(0)}); - - auto maxIndex = whole ? sizes[dimIndex] - 1 - : targetSubSliceIndex[level].index; - - for (auto i = 0U; i <= maxIndex; ++i) { - subSliceIndex[level].index = Index(i); - visitSubSlicesTill(targetSubSliceIndex, - visitor, - subSliceIndex, - i != targetSubSliceIndex[level].index); - } - subSliceIndex.pop_back(); - } -} - -template -MultiIndex Array::subSliceIndexMaxAt( - const SubSliceIndex &subSliceIndex, - const MultiIndex &multiIndex) const -{ - MultiIndex res = multiIndex; - for (const auto &sliceIndex : subSliceIndex) - res[sliceIndex.dimIndex] = - Index{sizes[sliceIndex.dimIndex] - 1}; - return res; -} - -template -size_t Array::lastIndexCountAt( - const SubSliceIndex &subSliceIndex) const -{ - auto count = 0; - for (const auto &sliceIndex : subSliceIndex) - if (sliceIndex.index == sizes[sliceIndex.dimIndex] - 1) - ++count; - return count; -} - template MultiIndex Array::maxIndex() const { MultiIndex res = sizes; diff --git a/src/data/multidim/multidimindex.h b/src/data/multidim/multidimindex.h index 10d5b9e9a..aebfc7f00 100644 --- a/src/data/multidim/multidimindex.h +++ b/src/data/multidim/multidimindex.h @@ -80,15 +80,6 @@ class SubSliceIndex : public std::vector }); } - [[nodiscard]] MultiIndex getProjectionOf( - const MultiIndex &multiIndex) const - { - MultiIndex res = multiIndex; - for (const auto &sliceIndex : *this) - res[sliceIndex.dimIndex] = sliceIndex.index; - return res; - } - [[nodiscard]] bool hardEqual(const SubSliceIndex &other) const { if (size() != other.size()) return false; From 025462d3cd65eb4b8a065ce2028a65f56b401813 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 19 Dec 2023 18:24:05 +0100 Subject: [PATCH 116/180] Move textBoundary as static Canvas function --- src/apps/qutils/canvas.cpp | 49 +++++++++++++----------- src/apps/qutils/canvas.h | 5 ++- src/apps/weblib/canvas.yaml | 1 - src/apps/weblib/interface.js | 10 +++++ src/apps/weblib/interfacejs.h | 2 + src/apps/weblib/jscriptcanvas.cpp | 18 +++++---- src/apps/weblib/jscriptcanvas.h | 2 - src/apps/weblib/ts-api/cvizzu.types.d.ts | 1 + src/apps/weblib/ts-api/module/ccanvas.ts | 6 +-- src/apps/weblib/ts-api/module/module.ts | 3 ++ src/apps/weblib/ts-api/render.ts | 12 +----- src/base/gfx/canvas.h | 4 +- src/base/gfx/draw/textbox.cpp | 3 +- src/chart/rendering/drawaxes.cpp | 3 +- src/chart/rendering/drawlabel.cpp | 7 ++-- src/chart/rendering/orientedlabel.cpp | 2 +- 16 files changed, 71 insertions(+), 57 deletions(-) diff --git a/src/apps/qutils/canvas.cpp b/src/apps/qutils/canvas.cpp index c7dbff13d..a4f1f6183 100644 --- a/src/apps/qutils/canvas.cpp +++ b/src/apps/qutils/canvas.cpp @@ -166,25 +166,7 @@ void BaseCanvas::setClipPolygon() void BaseCanvas::setFont(const Gfx::Font &newFont) { - auto font = painter.font(); - font.setPixelSize(static_cast(newFont.size)); - - if (!newFont.family.empty()) - font.setFamily(QString::fromStdString(newFont.family)); - - font.setWeight(newFont.weight == Gfx::Font::Weight::Bold() - ? QFont::Bold - : newFont.weight == Gfx::Font::Weight::Normal() - ? QFont::Normal - : static_cast(newFont.weight) / 10); - - font.setStyle(newFont.style == Gfx::Font::Style::italic - ? QFont::StyleItalic - : newFont.style == Gfx::Font::Style::oblique - ? QFont::StyleOblique - : QFont::StyleNormal); - - painter.setFont(font); + painter.setFont(fromGfxFont(newFont, painter.font())); } void BaseCanvas::setTextColor(const Gfx::Color &color) @@ -253,10 +235,12 @@ QPen BaseCanvas::brushToPen(const QBrush &brush) return pen; } -Geom::Size BaseCanvas::textBoundary(const std::string &text) +Geom::Size Gfx::ICanvas::textBoundary(const Gfx::Font &font, + const std::string &text) { auto res = - QFontMetrics{painter.font()}.boundingRect(QRect(0, 0, 0, 0), + QFontMetrics{BaseCanvas::fromGfxFont(font)}.boundingRect( + QRect(0, 0, 0, 0), Qt::AlignLeft, QString::fromStdString(text)); @@ -280,4 +264,25 @@ void BaseCanvas::transform(const Geom::AffineTransform &transform) void BaseCanvas::save() { painter.save(); } -void BaseCanvas::restore() { painter.restore(); } \ No newline at end of file +void BaseCanvas::restore() { painter.restore(); } + +QFont BaseCanvas::fromGfxFont(const Gfx::Font &newFont, QFont font) +{ + font.setPixelSize(static_cast(newFont.size)); + + if (!newFont.family.empty()) + font.setFamily(QString::fromStdString(newFont.family)); + + font.setWeight(newFont.weight == Gfx::Font::Weight::Bold() + ? QFont::Bold + : newFont.weight == Gfx::Font::Weight::Normal() + ? QFont::Normal + : static_cast(newFont.weight) / 10); + + font.setStyle(newFont.style == Gfx::Font::Style::italic + ? QFont::StyleItalic + : newFont.style == Gfx::Font::Style::oblique + ? QFont::StyleOblique + : QFont::StyleNormal); + return font; +} \ No newline at end of file diff --git a/src/apps/qutils/canvas.h b/src/apps/qutils/canvas.h index d563bf12e..4c3f5307e 100644 --- a/src/apps/qutils/canvas.h +++ b/src/apps/qutils/canvas.h @@ -17,8 +17,6 @@ class BaseCanvas : public Gfx::ICanvas, public Vizzu::Draw::Painter ~BaseCanvas() override; void init(QPaintDevice *device); - Geom::Size textBoundary(const std::string &text) override; - Gfx::ICanvas &getCanvas() override { return *this; } [[nodiscard]] Geom::Rect getClipRect() const override; @@ -65,6 +63,9 @@ class BaseCanvas : public Gfx::ICanvas, public Vizzu::Draw::Painter return static_cast(this); } + [[nodiscard]] static QFont fromGfxFont(const Gfx::Font &newFont, + QFont font = {}); + protected: QPainter painter; QFont font; diff --git a/src/apps/weblib/canvas.yaml b/src/apps/weblib/canvas.yaml index 9c6c8cbd4..643475a0d 100644 --- a/src/apps/weblib/canvas.yaml +++ b/src/apps/weblib/canvas.yaml @@ -21,7 +21,6 @@ Canvas: rectangle: { x: number, y: number, sizex: number, sizey: number } circle: { x: number, y: number, radius: number } line: { x1: number, y1: number, x2: number, y2: number } - textBoundary: { text: C.CString, sizeX: C.CPointer/double *, sizeY: C.CPointer/double * } text: { x: number, y: number, sizex: number, sizey: number, text: C.CString } setBrushGradient: { diff --git a/src/apps/weblib/interface.js b/src/apps/weblib/interface.js index 346fe540a..bc53c2490 100644 --- a/src/apps/weblib/interface.js +++ b/src/apps/weblib/interface.js @@ -1,5 +1,15 @@ mergeInto(LibraryManager.library, { openUrl: function (url) { window.open(UTF8ToString(url), '_blank') + }, + textBoundary: function (font, text, sizeX, sizeY) { + const dc = Module.measureCanvas + dc.font = UTF8ToString(font) + let metrics = dc.measureText(UTF8ToString(text)) + const width = metrics.width + metrics = dc.measureText('Op') + const height = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent + setValue(sizeX, width, 'double') + setValue(sizeY, height, 'double') } }) diff --git a/src/apps/weblib/interfacejs.h b/src/apps/weblib/interfacejs.h index 12f270026..0c037a6c2 100644 --- a/src/apps/weblib/interfacejs.h +++ b/src/apps/weblib/interfacejs.h @@ -3,6 +3,8 @@ extern "C" { extern void openUrl(const char *); +extern void +textBoundary(const char *, const char *, double *, double *); } #endif \ No newline at end of file diff --git a/src/apps/weblib/jscriptcanvas.cpp b/src/apps/weblib/jscriptcanvas.cpp index 0c569bc75..0b5a3c7ca 100644 --- a/src/apps/weblib/jscriptcanvas.cpp +++ b/src/apps/weblib/jscriptcanvas.cpp @@ -1,17 +1,11 @@ #include "jscriptcanvas.h" #include "canvas.h" +#include "interfacejs.h" namespace Vizzu::Main { -Geom::Size JScriptCanvas::textBoundary(const std::string &text) -{ - Geom::Size res; - ::canvas_textBoundary(this, text.c_str(), &res.x, &res.y); - return res; -} - Geom::Rect JScriptCanvas::getClipRect() const { return clipRect ? *clipRect : Geom::Rect::CenteredMax(); @@ -244,4 +238,14 @@ void JScriptCanvas::resetStates() clipRect = std::nullopt; } +} + +Geom::Size Gfx::ICanvas::textBoundary(const Gfx::Font &font, + const std::string &text) +{ + thread_local std::string fontCache; + fontCache = font.toCSS(); + Geom::Size res; + ::textBoundary(fontCache.c_str(), text.c_str(), &res.x, &res.y); + return res; } \ No newline at end of file diff --git a/src/apps/weblib/jscriptcanvas.h b/src/apps/weblib/jscriptcanvas.h index ecaa61330..ccbd4d1bd 100644 --- a/src/apps/weblib/jscriptcanvas.h +++ b/src/apps/weblib/jscriptcanvas.h @@ -16,8 +16,6 @@ class JScriptCanvas : public Gfx::ICanvas, public Draw::Painter JScriptCanvas() = default; ~JScriptCanvas() override = default; - Geom::Size textBoundary(const std::string &text) override; - [[nodiscard]] Geom::Rect getClipRect() const override; void setClipRect(const Geom::Rect &rect) override; void setClipCircle(const Geom::Circle &circle) override; diff --git a/src/apps/weblib/ts-api/cvizzu.types.d.ts b/src/apps/weblib/ts-api/cvizzu.types.d.ts index 8faf26087..608f1d4c8 100644 --- a/src/apps/weblib/ts-api/cvizzu.types.d.ts +++ b/src/apps/weblib/ts-api/cvizzu.types.d.ts @@ -46,6 +46,7 @@ export interface ModuleOptions { export interface CVizzu { // decorations canvases: { [key: CPointer]: Canvas } + measureCanvas: CanvasRenderingContext2D // members HEAPU8: Uint8Array diff --git a/src/apps/weblib/ts-api/module/ccanvas.ts b/src/apps/weblib/ts-api/module/ccanvas.ts index 64863d101..a4458cc1d 100644 --- a/src/apps/weblib/ts-api/module/ccanvas.ts +++ b/src/apps/weblib/ts-api/module/ccanvas.ts @@ -1,7 +1,7 @@ import { CEnv, CObject } from './cenv.js' import { CPointerClosure } from './objregistry.js' import { CColorGradient } from './ccolorgradient.js' -import { CString, CPointer, CColorGradientPtr } from '../cvizzu.types' +import { CString, CColorGradientPtr } from '../cvizzu.types' export class CCanvas extends CObject { constructor(env: CEnv, getId: CPointerClosure) { @@ -15,8 +15,4 @@ export class CCanvas extends CObject { getString(text: CString): string { return this._wasm.UTF8ToString(text) } - - setNumber(cNumber: CPointer, value: number): void { - this._wasm.setValue(cNumber, value, 'double') - } } diff --git a/src/apps/weblib/ts-api/module/module.ts b/src/apps/weblib/ts-api/module/module.ts index 1201a9709..7a6b1d0a0 100644 --- a/src/apps/weblib/ts-api/module/module.ts +++ b/src/apps/weblib/ts-api/module/module.ts @@ -12,6 +12,9 @@ import { Canvas } from './canvas' export class Module extends CEnv { constructor(wasm: CVizzu) { super(wasm, new ObjectRegistry(wasm._object_free)) + const context2D = (document.createElement('canvas')).getContext('2d') + if (!context2D) throw new Error('Failed to get 2D context') + this._wasm.measureCanvas = context2D this._wasm.canvases = {} this.setLogging(false) } diff --git a/src/apps/weblib/ts-api/render.ts b/src/apps/weblib/ts-api/render.ts index aafda3b86..89c96fddb 100644 --- a/src/apps/weblib/ts-api/render.ts +++ b/src/apps/weblib/ts-api/render.ts @@ -1,4 +1,4 @@ -import { CPointer, CString, CColorGradientPtr } from './cvizzu.types' +import { CString, CColorGradientPtr } from './cvizzu.types' import { Plugin, PluginApi } from './plugins.js' import { Canvas } from './module/canvas.js' import { Module } from './module/module.js' @@ -183,16 +183,6 @@ export class Render implements Plugin, Canvas { if (this._currentLineWidth !== 0) dc.stroke() } - textBoundary(text: CString, sizeX: CPointer, sizeY: CPointer): void { - const dc = this._canvas.context - let metrics = dc.measureText(this._ccanvas.getString(text)) - const width = metrics.width - metrics = dc.measureText('Op') - const height = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent - this._ccanvas.setNumber(sizeX, width) - this._ccanvas.setNumber(sizeY, height) - } - text(x: number, y: number, sizex: number, sizey: number, text: CString): void { const dc = this._canvas.context dc.textAlign = 'left' diff --git a/src/base/gfx/canvas.h b/src/base/gfx/canvas.h index 6b82e1764..fbc060db6 100644 --- a/src/base/gfx/canvas.h +++ b/src/base/gfx/canvas.h @@ -23,7 +23,6 @@ struct ICanvas { virtual ~ICanvas() = default; - virtual Geom::Size textBoundary(const std::string &string) = 0; [[nodiscard]] virtual Geom::Rect getClipRect() const = 0; virtual void setClipRect(const Geom::Rect &rect) = 0; virtual void setClipCircle(const Geom::Circle &circle) = 0; @@ -65,6 +64,9 @@ struct ICanvas virtual void frameEnd() = 0; virtual void *getPainter() = 0; + + static Geom::Size textBoundary(const Gfx::Font &, + const std::string &); }; } diff --git a/src/base/gfx/draw/textbox.cpp b/src/base/gfx/draw/textbox.cpp index ec1a2bfb6..717314c7f 100644 --- a/src/base/gfx/draw/textbox.cpp +++ b/src/base/gfx/draw/textbox.cpp @@ -164,7 +164,8 @@ Geom::Size TextBox::measure(ICanvas &canvas) line.height = 0; for (auto &text : line.texts) { canvas.setFont(text.font); - auto size = canvas.textBoundary(text.content); + auto size = + ICanvas::textBoundary(text.font, text.content); text.width = size.x; line.width += size.x; if (size.y > line.height) line.height = size.y; diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index 7f48f2ff8..fe87b49c4 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -172,7 +172,8 @@ void DrawAxes::drawTitle(Gen::ChannelId axisIndex) const const Gfx::Font font(titleStyle); canvas.setFont(font); - auto textBoundary = canvas.textBoundary(title.value); + auto textBoundary = + Gfx::ICanvas::textBoundary(font, title.value); auto textMargin = titleStyle.toMargin(textBoundary, font.size); auto size = textBoundary + textMargin.getSpace(); diff --git a/src/chart/rendering/drawlabel.cpp b/src/chart/rendering/drawlabel.cpp index c3ff75e11..350120637 100644 --- a/src/chart/rendering/drawlabel.cpp +++ b/src/chart/rendering/drawlabel.cpp @@ -27,11 +27,12 @@ void DrawLabel::draw(Gfx::ICanvas &canvas, auto contentRect = style.contentRect(relRect, style.calculatedSize()); - canvas.setFont(Gfx::Font{style}); + auto font = Gfx::Font{style}; + canvas.setFont(font); if (options.setColor) canvas.setTextColor(*style.color * options.alpha); - auto textSize = canvas.textBoundary(text); + auto textSize = Gfx::ICanvas::textBoundary(font, text); auto alignSize = textSize; alignSize.x = std::min(alignSize.x, contentRect.size.x); auto textRect = alignText(contentRect, style, alignSize); @@ -65,7 +66,7 @@ double DrawLabel::getHeight(const Styles::Label &style, { const Gfx::Font font(style); canvas.setFont(font); - auto textHeight = canvas.textBoundary("").y; + auto textHeight = Gfx::ICanvas::textBoundary(font, "").y; return style.paddingTop->get(textHeight, font.size) + style.paddingBottom->get(textHeight, font.size) + textHeight; diff --git a/src/chart/rendering/orientedlabel.cpp b/src/chart/rendering/orientedlabel.cpp index 61d211a24..7c3a44a37 100644 --- a/src/chart/rendering/orientedlabel.cpp +++ b/src/chart/rendering/orientedlabel.cpp @@ -16,7 +16,7 @@ OrientedLabel OrientedLabel::create(Gfx::ICanvas &canvas, const Gfx::Font font(labelStyle); canvas.setFont(font); - auto neededSize = canvas.textBoundary(text); + auto neededSize = Gfx::ICanvas::textBoundary(font, text); auto margin = labelStyle.toMargin(neededSize, font.size); auto paddedSize = neededSize + margin.getSpace(); From 835c067382b1d6aa18bc4261d3b4c7a0288efe5f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 19 Dec 2023 19:33:16 +0100 Subject: [PATCH 117/180] textBoundary --- src/chart/main/stylesheet.cpp | 22 ++++++++++++++-------- test/qtest/chart.cpp | 17 ++++++++++++----- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/chart/main/stylesheet.cpp b/src/chart/main/stylesheet.cpp index 5b274e53d..275a098d8 100644 --- a/src/chart/main/stylesheet.cpp +++ b/src/chart/main/stylesheet.cpp @@ -92,8 +92,11 @@ void Sheet::setAxisLabels() else if (const auto &xAxis = options->getChannels().at(Gen::ChannelId::x); !xAxis.isEmpty() && xAxis.isDimension() - && options->angle == 0) + && options->angle == 0) { def.angle.reset(); + // def.paddingLeft = Gfx::Length::Emphemeral(2 / 12.0); + // def.paddingRight = Gfx::Length::Emphemeral(2 / 12.0); + } } void Sheet::setAxisTitle() @@ -196,8 +199,7 @@ void Sheet::setAfterStyles(Gen::Plot &plot, const Geom::Size &size) plotX -= style.plot.toMargin({plotX, 0}, em).getSpace().x; - auto fontRelativeHalfApproxWidth = - xLabel.calculatedSize() * 0.575 / 2.0 / plotX; + auto font = Gfx::Font{xLabel}; std::vector> ranges; bool has_collision = false; @@ -206,14 +208,18 @@ void Sheet::setAfterStyles(Gen::Plot &plot, const Geom::Size &size) if (pair.second.weight == 0) continue; + auto textBoundary = + Gfx::ICanvas::textBoundary(font, pair.second.label); + auto textXMargin = 0.; // xLabel.toMargin(textBoundary, + // font.size).getSpace().x; + auto xHalfSize = + (textBoundary.x + textXMargin) / plotX / 2.0; + auto rangeCenter = pair.second.range.middle(); - auto textHalfApproxWidth = - static_cast(pair.second.label.size()) - * fontRelativeHalfApproxWidth; auto next_range = - Math::Range{rangeCenter - textHalfApproxWidth, - rangeCenter + textHalfApproxWidth}; + Math::Range{rangeCenter - xHalfSize, + rangeCenter + xHalfSize}; if (std::any_of(ranges.begin(), ranges.end(), diff --git a/test/qtest/chart.cpp b/test/qtest/chart.cpp index 3c63d8803..4ae09740c 100644 --- a/test/qtest/chart.cpp +++ b/test/qtest/chart.cpp @@ -11,8 +11,15 @@ TestChart::TestChart() : chart() {} void TestChart::prepareData() { - std::vector - cat1{"A", "A", "A", "B", "B", "B", "C", "C", "C"}; + std::vector cat1{"AAAAAAAAAa", + "AAAAAAAAAa", + "AAAAAAAAAa", + "BbbbBBBB", + "BbbbBBBB", + "BbbbBBBB", + "C", + "C", + "C"}; std::vector cat2{"aasd", "bíyx", "cAxyyxc", @@ -159,10 +166,10 @@ void TestChart::run() IO::log() << "step 1"; auto setter = chart.getChart().getSetter(); setter.addSeries(ChannelId::x, "Cat1"); - setter.addSeries(ChannelId::x, "exists()"); + // setter.addSeries(ChannelId::x, "exists()"); setter.addSeries(ChannelId::y, "Val"); setter.addSeries(ChannelId::label, "Val"); - setter.addSeries(ChannelId::x, "Val"); + // setter.addSeries(ChannelId::x, "Val"); setter.addSeries(ChannelId::y, "Cat2"); setter.addSeries(ChannelId::color, "Cat2"); chart.getChart().getStyles().plot.marker.label.filter = @@ -176,7 +183,7 @@ void TestChart::run() Vizzu::Styles::Text::TextAlign::left); setter.getOptions().title = "Example VIZZU Chart"; chart.getChart().setKeyframe(); - chart.getChart().animate(step1b); + chart.getChart().animate(/*step1b*/); }; step1(true); From 67c7606e4769eb5163dbe051c42bea1165256c7f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 19 Dec 2023 21:33:59 +0100 Subject: [PATCH 118/180] rotate to angle --- src/apps/weblib/ts-api/plugins/presets.ts | 2 +- src/apps/weblib/typeschema-api/config.yaml | 4 +- src/chart/options/config.cpp | 14 +---- src/chart/options/optionssetter.cpp | 12 ---- src/chart/options/optionssetter.h | 2 - .../rectangle_labels_rotated_charts.mjs | 56 +++++++++---------- test/integration/test_cases/test_cases.json | 2 +- .../rotated_bar_to_donut.mjs | 4 +- 8 files changed, 35 insertions(+), 61 deletions(-) diff --git a/src/apps/weblib/ts-api/plugins/presets.ts b/src/apps/weblib/ts-api/plugins/presets.ts index bb26c055f..da6560915 100644 --- a/src/apps/weblib/ts-api/plugins/presets.ts +++ b/src/apps/weblib/ts-api/plugins/presets.ts @@ -34,7 +34,7 @@ export default class Presets { align: 'none', coordSystem: 'cartesian', orientation: 'auto', - rotate: 0, + angle: 0, split: false, geometry: 'rectangle', channels: { diff --git a/src/apps/weblib/typeschema-api/config.yaml b/src/apps/weblib/typeschema-api/config.yaml index 9f88b8cf7..cc774b9ea 100644 --- a/src/apps/weblib/typeschema-api/config.yaml +++ b/src/apps/weblib/typeschema-api/config.yaml @@ -189,9 +189,9 @@ definitions: coordinate system to create a chart from the pie/radial chart family. type: string enum: [cartesian, polar] - rotate: + angle: description: | - Rotates the plot area by the specified angle in degree. + Rotates the plot area to the specified angle in radian. Note: this is an experimental, not tested feature. type: number geometry: diff --git a/src/chart/options/config.cpp b/src/chart/options/config.cpp index e1d698457..054ef9bf3 100644 --- a/src/chart/options/config.cpp +++ b/src/chart/options/config.cpp @@ -63,19 +63,7 @@ const Config::Accessors &Config::getAccessors() accessor<&Options::caption>, accessor<&Options::legend>, accessor<&Options::coordSystem>, - {"rotate", - {.get = - [](const Options &options) - { - return Conv::toString( - 90 * options.angle / (M_PI / 2)); - }, - .set = - [](OptionsSetter &setter, - const std::string &value) - { - setter.rotate(Conv::parse(value) / 90); - }}}, + accessor<&Options::angle>, accessor<&Options::geometry>, accessor<&Options::orientation>, accessor<&Options::sort>, diff --git a/src/chart/options/optionssetter.cpp b/src/chart/options/optionssetter.cpp index 68222cd59..bb1b33a1d 100644 --- a/src/chart/options/optionssetter.cpp +++ b/src/chart/options/optionssetter.cpp @@ -67,18 +67,6 @@ OptionsSetter &OptionsSetter::clearSeries(const ChannelId &channelId) return *this; } -OptionsSetter &OptionsSetter::rotate(double ccwQuadrant) -{ - options.angle += ccwQuadrant * M_PI / 2; - return *this; -} - -OptionsSetter &OptionsSetter::setAngle(double ccwQuadrant) -{ - options.angle = ccwQuadrant * M_PI / 2; - return *this; -} - OptionsSetter &OptionsSetter::setFilter(const Data::Filter &filter) { options.dataFilter = filter; diff --git a/src/chart/options/optionssetter.h b/src/chart/options/optionssetter.h index 76432bfd4..d6b5f8ac0 100644 --- a/src/chart/options/optionssetter.h +++ b/src/chart/options/optionssetter.h @@ -35,8 +35,6 @@ class OptionsSetter std::optional pos); OptionsSetter &deleteSeries(const ChannelId &channelId, const Data::SeriesIndex &index); - OptionsSetter &rotate(double ccwQuadrant); - OptionsSetter &setAngle(double ccwQuadrant); OptionsSetter &setFilter(const Data::Filter &filter); OptionsSetter &addMarkerInfo(Options::MarkerId marker); OptionsSetter &moveMarkerInfo(Options::MarkerId from, diff --git a/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs b/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs index 978ac5732..e399242a3 100755 --- a/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs +++ b/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs @@ -38,7 +38,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Top', - rotate: 10 + angle: Math.PI / 18 }, style: { plot: { @@ -55,7 +55,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Left', - rotate: 10 + angle: (Math.PI * 2) / 18 }, style: { plot: { @@ -71,7 +71,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Bottom', - rotate: 10 + angle: (Math.PI * 3) / 18 }, style: { plot: { @@ -87,7 +87,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Right', - rotate: 10 + angle: (Math.PI * 4) / 18 }, style: { plot: { @@ -103,7 +103,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Center/Horizontal', - rotate: 10 + angle: (Math.PI * 5) / 18 }, style: { plot: { @@ -119,7 +119,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Center/Tangential', - rotate: 10 + angle: (Math.PI * 6) / 18 }, style: { plot: { @@ -135,7 +135,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Center/Normal', - rotate: 10 + angle: (Math.PI * 7) / 18 }, style: { plot: { @@ -151,7 +151,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Center/Vertical', - rotate: 10 + angle: (Math.PI * 8) / 18 }, style: { plot: { @@ -171,7 +171,7 @@ const testSteps = [ label: { attach: ['Value 2 (+)'] } }, title: 'Change Continuous', - rotate: 10 + angle: (Math.PI * 9) / 18 }, style: { plot: { @@ -193,7 +193,7 @@ const testSteps = [ label: { attach: ['Value 2 (+)', 'Country'] } }, title: 'Polar Coordinate', - rotate: 180, + angle: (Math.PI * 27) / 18, coordSystem: 'polar' }, style: { @@ -210,7 +210,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Left', - rotate: 10 + angle: (Math.PI * 28) / 18 }, style: { plot: { @@ -226,7 +226,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Bottom', - rotate: 10 + angle: (Math.PI * 29) / 18 }, style: { plot: { @@ -242,7 +242,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Right', - rotate: 10 + angle: (Math.PI * 30) / 18 }, style: { plot: { @@ -258,7 +258,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Center/Horizontal', - rotate: 10 + angle: (Math.PI * 31) / 18 }, style: { plot: { @@ -275,7 +275,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Top/Normal', - rotate: 10 + angle: (Math.PI * 32) / 18 }, style: { plot: { @@ -292,7 +292,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Top/Vertical', - rotate: 10 + angle: (Math.PI * 33) / 18 }, style: { plot: { @@ -308,7 +308,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Top/Tangential', - rotate: 10 + angle: (Math.PI * 34) / 18 }, style: { plot: { @@ -324,7 +324,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Top/Angle', - rotate: 10 + angle: (Math.PI * 35) / 18 }, style: { plot: { @@ -344,7 +344,7 @@ const testSteps = [ size: { attach: ['Value 2 (+)'] } }, title: 'Without Coordinate', - rotate: 10, + angle: (Math.PI * 36) / 18, coordSystem: 'cartesian' }, style: { @@ -362,7 +362,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Center/Horizontal', - rotate: 10 + angle: (Math.PI * 37) / 18 }, style: { plot: { @@ -392,7 +392,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Left', - rotate: 10 + angle: (Math.PI * 38) / 18 }, style: { plot: { @@ -408,7 +408,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Bottom', - rotate: 10 + angle: (Math.PI * 39) / 18 }, style: { plot: { @@ -424,7 +424,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Right', - rotate: 10 + angle: (Math.PI * 40) / 18 }, style: { plot: { @@ -440,7 +440,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Center/Horizontal', - rotate: 10 + angle: (Math.PI * 41) / 18 }, style: { plot: { @@ -457,7 +457,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Top/Normal', - rotate: 10 + angle: (Math.PI * 42) / 18 }, style: { plot: { @@ -474,7 +474,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Top/Vertical', - rotate: -360 + angle: (Math.PI * 6) / 18 }, style: { plot: { @@ -490,7 +490,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Top/Tangential', - rotate: 100 + angle: (Math.PI * 16) / 18 }, style: { plot: { @@ -506,7 +506,7 @@ const testSteps = [ chart.animate({ config: { title: 'Rectangle Marker Label Positions - Top/Angle', - rotate: 380 + angle: (Math.PI * 54) / 18 }, style: { plot: { diff --git a/test/integration/test_cases/test_cases.json b/test/integration/test_cases/test_cases.json index 260021d82..dc872a525 100644 --- a/test/integration/test_cases/test_cases.json +++ b/test/integration/test_cases/test_cases.json @@ -53,7 +53,7 @@ "refs": ["1d1c034"] }, "basic_animations/labels/rectangle_labels_rotated_charts": { - "refs": ["8b5c0bd"] + "refs": ["6ee1ac0"] }, "basic_animations/legend_transitions/color_2discrete_anim": { "refs": ["955eea3"] diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs index d9fa6939a..f5b4c2406 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs @@ -32,7 +32,7 @@ const testSteps = [ label: 'Value 5 (+/-)' }, title: 'Rectangle Marker Label Positions - Center', - rotate: 90 + angle: Math.PI / 2 } }), @@ -45,7 +45,7 @@ const testSteps = [ label: { attach: ['Value 5 (+/-)', 'Country'] } }, title: 'Polar Coordinate', - rotate: 180, + angle: (Math.PI * 3) / 2, coordSystem: 'polar' } }) From 518dcf0445177648fd6ec40733465c18448a17ea Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 19 Dec 2023 21:38:27 +0100 Subject: [PATCH 119/180] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index af010d5c4..5c9a03633 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - At the mouse events the lib is not queried the exact rendered chart position through API. - On axis labels sometimes missed a space character between value and unit. - Rendered label units are suddenly disappeared when target plot does not contain a unit. +- Remove "rotate" setting, add "angle" setting. ### Added From ccb0b7db81d8a574ae74b2eb45ed7e5b26600f0e Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 12:09:32 +0100 Subject: [PATCH 120/180] Refactor cicd job and step names --- .github/workflows/cd.yml | 2 +- .../workflows/docker-vizzu-dev-desktop.yml | 12 ++++--- .github/workflows/docker-vizzu-dev-wasm.yml | 12 ++++--- tools/ci/gcp/cloudbuild/cloudbuild.yaml | 32 +++++++++---------- 4 files changed, 31 insertions(+), 27 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 3dd25e592..7eb5414b9 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -5,7 +5,7 @@ on: types: [published] jobs: - release: + publish: runs-on: ubuntu-22.04 steps: diff --git a/.github/workflows/docker-vizzu-dev-desktop.yml b/.github/workflows/docker-vizzu-dev-desktop.yml index 924f1f775..e0174fb99 100644 --- a/.github/workflows/docker-vizzu-dev-desktop.yml +++ b/.github/workflows/docker-vizzu-dev-desktop.yml @@ -1,4 +1,4 @@ -name: Docker Build and Push vizzu-dev-desktop +name: Docker publish vizzu-dev-desktop on: push: @@ -9,17 +9,19 @@ on: - '**/docker-vizzu-dev-desktop.yml' jobs: - build-and-push: + publish: runs-on: ubuntu-22.04 steps: - - name: Checkout code + - name: Checkout repo uses: actions/checkout@v3 + with: + fetch-depth: 1 - - name: Login to Docker Hub + - name: Login to Docker run: echo ${{ secrets.VIZZUHQ_DOCKER_API }} | docker login -u ${{ secrets.VIZZUHQ_DOCKER_USER }} --password-stdin - - name: Build and Push Docker Image + - name: Build and Publish run: | IMAGE="vizzu-dev-desktop" IMAGE_NAME="vizzu/$IMAGE:0.9" diff --git a/.github/workflows/docker-vizzu-dev-wasm.yml b/.github/workflows/docker-vizzu-dev-wasm.yml index eba83e0f2..ea8359038 100644 --- a/.github/workflows/docker-vizzu-dev-wasm.yml +++ b/.github/workflows/docker-vizzu-dev-wasm.yml @@ -1,4 +1,4 @@ -name: Docker Build and Push vizzu-dev-wasm +name: Docker publish vizzu-dev-wasm on: push: @@ -9,17 +9,19 @@ on: - '**/docker-vizzu-dev-wasm.yml' jobs: - build-and-push: + publish: runs-on: ubuntu-22.04 steps: - - name: Checkout code + - name: Checkout repo uses: actions/checkout@v3 + with: + fetch-depth: 1 - - name: Login to Docker Hub + - name: Login to Docker run: echo ${{ secrets.VIZZUHQ_DOCKER_API }} | docker login -u ${{ secrets.VIZZUHQ_DOCKER_USER }} --password-stdin - - name: Build and Push Docker Image + - name: Build and Publish run: | IMAGE="vizzu-dev-wasm" IMAGE_NAME="vizzu/$IMAGE:0.9" diff --git a/tools/ci/gcp/cloudbuild/cloudbuild.yaml b/tools/ci/gcp/cloudbuild/cloudbuild.yaml index 03aebc92d..229bc5dfc 100644 --- a/tools/ci/gcp/cloudbuild/cloudbuild.yaml +++ b/tools/ci/gcp/cloudbuild/cloudbuild.yaml @@ -13,7 +13,7 @@ steps: dir: /workspace - name: vizzu/vizzu-dev-wasm:0.9 - id: ci-src + id: check_src waitFor: - init entrypoint: bash @@ -30,7 +30,7 @@ steps: fi dir: /workspace - name: vizzu/vizzu-dev-wasm:0.9 - id: ci-docs + id: check_docs waitFor: - init entrypoint: bash @@ -47,7 +47,7 @@ steps: fi dir: /workspace - name: vizzu/vizzu-dev-wasm:0.9 - id: ci-tools + id: check_tools waitFor: - init entrypoint: bash @@ -66,11 +66,11 @@ steps: dir: /workspace - name: vizzu/vizzu-dev-desktop:0.9 - id: build-desktop-clangformat + id: build_desktop_clangformat waitFor: - - ci-src - - ci-docs - - ci-tools + - check_src + - check_docs + - check_tools entrypoint: bash args: - '-c' @@ -85,9 +85,9 @@ steps: dir: /workspace - name: vizzu/vizzu-dev-desktop:0.9 - id: build-desktop-clangtidy + id: build_desktop_clangtidy waitFor: - - build-desktop-clangformat + - build_desktop_clangformat entrypoint: bash args: - '-c' @@ -101,9 +101,9 @@ steps: fi dir: /workspace - name: vizzu/vizzu-dev-wasm:0.9 - id: build-wasm + id: build_wasm waitFor: - - build-desktop-clangformat + - build_desktop_clangformat entrypoint: bash args: - '-c' @@ -122,9 +122,9 @@ steps: dir: /workspace - name: vizzu/vizzu-dev-wasm:0.9 - id: lib-sha + id: lib_sha waitFor: - - build-wasm + - build_wasm entrypoint: bash args: - '-c' @@ -147,7 +147,7 @@ steps: - name: vizzu/vizzu-dev-wasm:0.9 id: test waitFor: - - lib-sha + - lib_sha entrypoint: bash args: - '-c' @@ -203,7 +203,7 @@ steps: - VIZZUHQ_GITHUB_EMAIL - name: vizzu/vizzu-dev-wasm:0.9 - id: release + id: publish waitFor: - docs entrypoint: bash @@ -232,7 +232,7 @@ steps: - name: gcr.io/cloud-builders/gsutil id: lib waitFor: - - release + - publish entrypoint: bash args: - '-c' From 78b6430c07fcfc7659db8ec3bfc2f8b3415dcb6d Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 12:13:03 +0100 Subject: [PATCH 121/180] Using shared vizzu prettier config --- .prettierrc | 8 -------- package-lock.json | 10 ++++++++++ package.json | 16 +++++++++------- 3 files changed, 19 insertions(+), 15 deletions(-) delete mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index ecdf3e07a..000000000 --- a/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/prettierrc", - "semi": false, - "tabWidth": 2, - "singleQuote": true, - "printWidth": 100, - "trailingComma": "none" -} diff --git a/package-lock.json b/package-lock.json index fd11a7550..ea54a7d8b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "@tsconfig/strictest": "^2.0.2", "@typescript-eslint/eslint-plugin": "^6.7.5", "@typescript-eslint/parser": "^6.7.5", + "@vizzu/prettier-config": "^0.1.0", "aggregate-error": "^5.0.0", "ajv": "8.12.0", "axios": "^1.5.1", @@ -1734,6 +1735,15 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@vizzu/prettier-config": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@vizzu/prettier-config/-/prettier-config-0.1.0.tgz", + "integrity": "sha512-q+wW9v8u7tr+DDZ01EeHX2FIP255RF05o9WA+E+K6xweD+2aLeJae5/P4OcPJa3gqc168/6+8ZNfpbWS1kpgtw==", + "dev": true, + "peerDependencies": { + "prettier": "^3.1.0" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", diff --git a/package.json b/package.json index 081d86b74..94e473df6 100644 --- a/package.json +++ b/package.json @@ -51,12 +51,12 @@ "lock:py": "./tools/ci/run/lock-py.sh", "format": "npm-run-all format:*", "format:src": "npm-run-all format-src:*", - "format-src:js": "npx prettier --config .prettierrc -c src test package.json", + "format-src:js": "npx prettier -c src test package.json", "format:docs": "npm-run-all format-docs:*", - "format-docs:js": "npx prettier --config .prettierrc -c docs", + "format-docs:js": "npx prettier -c docs", "format-docs:py": "./tools/ci/run/format-mdformat-py.sh --check docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", "format:tools": "npm-run-all format-tools:*", - "format-tools:js": "npx prettier --config .prettierrc -c tools/ci tools/docs .prettierrc .eslintrc.cjs .puppeteerrc.cjs .github", + "format-tools:js": "npx prettier -c tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs .github", "format-tools:py": "./tools/ci/run/format-black-py.sh --diff --check tools", "lint": "npm-run-all lint:*", "lint:src": "npm-run-all lint-src:*", @@ -88,12 +88,12 @@ "fix": "npm-run-all fix-format fix-lint", "fix-format": "npm-run-all fix-format:*", "fix-format:src": "npm-run-all fix-format-src:js", - "fix-format-src:js": "npx prettier --config .prettierrc -w src test package.json", + "fix-format-src:js": "npx prettier -w src test package.json", "fix-format:docs": "npm-run-all fix-format-docs:*", - "fix-format-docs:js": "npx prettier --config .prettierrc -w docs", + "fix-format-docs:js": "npx prettier -w docs", "fix-format-docs:py": "./tools/ci/run/format-mdformat-py.sh docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", "fix-format:tools": "npm-run-all fix-format-tools:*", - "fix-format-tools:js": "npx prettier --config .prettierrc -w tools/ci tools/docs .prettierrc .eslintrc.cjs .puppeteerrc.cjs .github", + "fix-format-tools:js": "npx prettier -w tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs .github", "fix-format-tools:py": "./tools/ci/run/format-black-py.sh tools", "fix-lint": "npm-run-all fix-lint:*", "fix-lint:src": "npm-run-all fix-lint-src:*", @@ -126,6 +126,7 @@ "@tsconfig/strictest": "^2.0.2", "@typescript-eslint/eslint-plugin": "^6.7.5", "@typescript-eslint/parser": "^6.7.5", + "@vizzu/prettier-config": "^0.1.0", "aggregate-error": "^5.0.0", "ajv": "8.12.0", "axios": "^1.5.1", @@ -155,5 +156,6 @@ "typescript": "^5.2.2", "yaml": "^2.3.2", "yargs": "^17.7.2" - } + }, + "prettier": "@vizzu/prettier-config" } From 38da5c7507b5308ce5b9501234e9bc0560524510 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 12:21:05 +0100 Subject: [PATCH 122/180] Reformat with vizzu prettier config --- .eslintrc.cjs | 58 +- .github/workflows/cd.yml | 16 +- .../workflows/docker-vizzu-dev-desktop.yml | 42 +- .github/workflows/docker-vizzu-dev-wasm.yml | 42 +- .puppeteerrc.cjs | 2 +- docs/assets/data/music_data.js | 86 +- docs/assets/data/music_data.json | 28 +- docs/assets/javascripts/analytics/head.js | 2 +- docs/assets/javascripts/csv2js.js | 83 +- docs/assets/javascripts/extlinks.js | 26 +- docs/assets/javascripts/highlight.js | 24 +- docs/assets/javascripts/iframe/autoheight.js | 14 +- docs/assets/javascripts/iframe/autoscale.js | 32 +- docs/assets/javascripts/iframe/click.js | 8 +- docs/assets/javascripts/mdchart.js | 156 +- docs/assets/javascripts/style_ref_allbtn.js | 26 +- .../javascripts/style_ref_clickevent.js | 46 +- docs/assets/javascripts/thumbs.js | 52 +- docs/assets/stylesheets/chart.css | 48 +- docs/assets/stylesheets/gallery.css | 30 +- docs/assets/stylesheets/highlight.css | 50 +- docs/assets/stylesheets/style_reference.css | 20 +- docs/assets/stylesheets/vizzu.css | 86 +- docs/tutorial/aggregating_data.js | 322 +- docs/tutorial/align_range.js | 308 +- docs/tutorial/animation_control_keyframes.js | 242 +- docs/tutorial/animation_options.js | 396 +- docs/tutorial/axes_title_tooltip.js | 150 +- docs/tutorial/changing_dimensions.js | 244 +- docs/tutorial/channels_legend.js | 206 +- docs/tutorial/chart_layout.js | 284 +- docs/tutorial/chart_presets.js | 136 +- docs/tutorial/color_palette_fonts.js | 222 +- docs/tutorial/events.js | 258 +- docs/tutorial/filter_add_new_records.js | 201 +- docs/tutorial/geometry.js | 134 +- docs/tutorial/group_stack.js | 192 +- docs/tutorial/orientation_split_polar.js | 238 +- docs/tutorial/shorthands_store.js | 414 +- docs/tutorial/sorting.js | 226 +- docs/tutorial/stacking_explanation.js | 274 +- .../without_coordinates_noop_channel.js | 164 +- package.json | 318 +- src/.eslintrc.cjs | 16 +- src/apps/weblib/canvas.yaml | 72 +- src/apps/weblib/interface.js | 6 +- src/apps/weblib/ts-api/animcompleting.ts | 4 +- src/apps/weblib/ts-api/animcontrol.ts | 186 +- src/apps/weblib/ts-api/chart.ts | 268 +- src/apps/weblib/ts-api/cvizzu.types.d.ts | 200 +- src/apps/weblib/ts-api/data.ts | 300 +- src/apps/weblib/ts-api/datarecord.ts | 16 +- src/apps/weblib/ts-api/errors.ts | 16 +- src/apps/weblib/ts-api/events.ts | 490 +- src/apps/weblib/ts-api/geom.ts | 32 +- src/apps/weblib/ts-api/htmlcanvas.ts | 314 +- src/apps/weblib/ts-api/module/canimctrl.ts | 44 +- src/apps/weblib/ts-api/module/ccanvas.ts | 24 +- src/apps/weblib/ts-api/module/cchart.ts | 252 +- .../weblib/ts-api/module/ccolorgradient.ts | 54 +- src/apps/weblib/ts-api/module/ccoordsys.ts | 28 +- src/apps/weblib/ts-api/module/cdata.ts | 226 +- src/apps/weblib/ts-api/module/cenv.ts | 94 +- src/apps/weblib/ts-api/module/cerror.ts | 14 +- src/apps/weblib/ts-api/module/cproxy.ts | 96 +- src/apps/weblib/ts-api/module/loader.ts | 74 +- src/apps/weblib/ts-api/module/module.ts | 74 +- src/apps/weblib/ts-api/module/objregistry.ts | 24 +- src/apps/weblib/ts-api/plugins.ts | 448 +- src/apps/weblib/ts-api/plugins/coordsys.ts | 34 +- .../weblib/ts-api/plugins/cssproperties.ts | 76 +- src/apps/weblib/ts-api/plugins/cssutils.ts | 118 +- src/apps/weblib/ts-api/plugins/logging.ts | 16 +- src/apps/weblib/ts-api/plugins/pivotdata.ts | 56 +- .../weblib/ts-api/plugins/pointerevents.ts | 154 +- .../weblib/ts-api/plugins/presetconfigs.js | 690 +- src/apps/weblib/ts-api/plugins/presets.ts | 174 +- .../ts-api/plugins/shorthands-augmentation.ts | 6 +- src/apps/weblib/ts-api/plugins/shorthands.ts | 378 +- src/apps/weblib/ts-api/plugins/tooltip.ts | 210 +- src/apps/weblib/ts-api/plugins/unpivot.ts | 232 +- src/apps/weblib/ts-api/render.ts | 444 +- src/apps/weblib/ts-api/tsconfig.json | 22 +- src/apps/weblib/ts-api/utils.ts | 102 +- src/apps/weblib/ts-api/vizzu.ts | 416 +- src/apps/weblib/typeschema-api/anim.yaml | 342 +- src/apps/weblib/typeschema-api/config.yaml | 462 +- src/apps/weblib/typeschema-api/data.yaml | 440 +- src/apps/weblib/typeschema-api/styles.yaml | 1135 +- src/package.json | 4 +- test/.eslintrc.cjs | 16 +- test/integration/accept-changes.cjs | 34 +- test/integration/man.cjs | 90 +- .../modules/browser/browsers-chrome.cjs | 170 +- .../modules/browser/puppeteer-chrome.cjs | 161 +- .../modules/browser/selenium-chrome.cjs | 166 +- test/integration/modules/console/assert.cjs | 6 +- .../modules/console/assert.test.cjs | 30 +- test/integration/modules/console/console.cjs | 136 +- .../modules/console/console.test.cjs | 304 +- test/integration/modules/img/imgdiff.js | 252 +- .../integration-test/client/index.html | 18 +- .../modules/integration-test/client/index.js | 275 +- .../test-case/test-case-result.cjs | 766 +- .../integration-test/test-case/test-case.cjs | 162 +- .../test-case/test-cases-config.cjs | 321 +- .../test-case/test-cases-config.test.cjs | 212 +- .../test-cases-config.test/test-cases-1.json | 36 +- .../test-cases-config.test/test-cases-2.json | 30 +- .../test-cases-config.test/test-cases-3.json | 2 +- .../test-cases-notschema-3.json | 2 +- .../test-cases-notschema-4.json | 4 +- .../test-cases-notschema-5.json | 4 +- .../test-cases-notschema-6.json | 12 +- .../test-cases-notschema-7.json | 12 +- .../test-cases-result.cjs | 210 +- .../integration-test/test-case/test-cases.cjs | 499 +- .../test-case/test-cases.test.cjs | 862 +- .../modules/integration-test/test-console.cjs | 240 +- .../integration-test/test-console.test.cjs | 112 +- .../modules/integration-test/test-env.cjs | 84 +- .../integration-test/test-env.test.cjs | 12 +- .../integration-test/test-suite-result.cjs | 314 +- .../modules/integration-test/test-suite.cjs | 584 +- test/integration/modules/jest.config.cjs | 20 +- .../modules/videorecorder/client/index.html | 24 +- .../modules/videorecorder/client/index.js | 199 +- .../videorecorder/client/videorecorder.js | 44 +- .../modules/videorecorder/generate.cjs | 526 +- .../modules/videorecorder/resize.cjs | 84 +- .../modules/vizzu/vizzu-cloudfunctions.cjs | 6 +- .../vizzu/vizzu-cloudfunctions.test.cjs | 6 +- test/integration/modules/vizzu/vizzu-url.cjs | 238 +- .../modules/vizzu/vizzu-url.test.cjs | 505 +- .../vizzu/vizzu-version-client/index.html | 18 +- .../vizzu/vizzu-version-client/index.js | 48 +- .../modules/vizzu/vizzu-version.cjs | 166 +- .../modules/workspace/workspace-host.cjs | 90 +- .../modules/workspace/workspace-path.cjs | 20 +- .../modules/workspace/workspace-path.test.cjs | 60 +- test/integration/test.cjs | 364 +- .../circle_without_2_carte_horizontal.mjs | 370 +- .../circle_without_2_carte_vertical.mjs | 280 +- .../rectangle_without_2_carte_bar.mjs | 326 +- .../rectangle_without_2_carte_column.mjs | 312 +- .../rectangle_without_2_polar_bar.mjs | 340 +- .../rectangle_without_2_polar_column.mjs | 424 +- .../coordsystems/area_carte_2_polar.mjs | 50 +- .../coordsystems/circle_without_2_carte.mjs | 66 +- .../coordsystems/rectangle_carte_2_polar.mjs | 62 +- .../rectangle_without_2_carte.mjs | 114 +- .../rectangle_without_2_polar.mjs | 88 +- .../labels/axis/circle_negative_2dis_3con.mjs | 94 +- .../labels/marker/area_2dis_3con.mjs | 686 +- .../marker/circle_negative_2dis_3con.mjs | 894 +- .../labels/marker/line_2dis_3con.mjs | 680 +- ...ding_test_rectangle_negative_2dis_3con.mjs | 336 +- .../marker/rectangle_negative_2dis_3con.mjs | 1008 +- .../rectangle_labels_rotated_charts.mjs | 1032 +- .../color_2discrete_anim.mjs | 68 +- .../legend_transitions/color_conti_anim.mjs | 76 +- .../color_conti_changes_anim.mjs | 46 +- .../color_conti_discrete_anim.mjs | 46 +- .../color_discrete_anim.mjs | 80 +- .../color_discrete_changes_anim.mjs | 112 +- .../legend_transitions/color_off_on_anim.mjs | 56 +- .../color_off_on_series_anim.mjs | 46 +- .../lightness_2discrete_anim.mjs | 48 +- .../lightness_conti_anim.mjs | 60 +- .../lightness_conti_discrete_anim.mjs | 48 +- .../lightness_discrete_anim.mjs | 60 +- .../lightness_on_off_anim.mjs | 58 +- .../size_2discrete_anim.mjs | 72 +- .../legend_transitions/size_conti_anim.mjs | 74 +- .../size_conti_discrete_anim.mjs | 48 +- .../legend_transitions/size_discrete_anim.mjs | 80 +- .../legend_transitions/size_on_off_anim.mjs | 56 +- .../marker_trans_neg_1dis_1con.mjs | 250 +- .../markers_morph/marker_trans_polar.mjs | 34 +- .../merge_split_area_stream_2dis_1con.mjs | 126 +- .../someOtherTests/total_time_area_bar.mjs | 98 +- .../someOtherTests/total_time_area_column.mjs | 90 +- .../someOtherTests/total_time_bar_line.mjs | 68 +- .../someOtherTests/total_time_column_line.mjs | 102 +- .../chart_precision/area_negative_x.mjs | 34 +- .../chart_precision/area_negative_y.mjs | 34 +- .../test_cases/chart_precision/area_x.mjs | 34 +- .../test_cases/chart_precision/area_y.mjs | 34 +- .../test_cases/chart_precision/bubble.mjs | 26 +- .../test_cases/chart_precision/circle.mjs | 34 +- .../chart_precision/circle_negative.mjs | 28 +- .../chart_precision/column_color_gradient.mjs | 32 +- .../chart_precision/column_lightness.mjs | 36 +- .../chart_precision/line_negative_x.mjs | 46 +- .../chart_precision/line_negative_y.mjs | 28 +- .../test_cases/chart_precision/line_x.mjs | 34 +- .../test_cases/chart_precision/line_y.mjs | 34 +- .../chart_precision/rectangle_negative_x.mjs | 30 +- .../chart_precision/rectangle_negative_y.mjs | 30 +- .../chart_precision/rectangle_x.mjs | 30 +- .../chart_precision/rectangle_y.mjs | 30 +- .../test_cases/chart_precision/treemap.mjs | 24 +- .../color_palettes/color_conti_gradient.mjs | 34 +- .../column_rectangle_less_disc.mjs | 32 +- .../column_rectangle_more_conti.mjs | 32 +- .../column_rectangle_more_disc.mjs | 50 +- .../rectangle_data_cube.mjs | 32 +- .../full_coxcomb_rectangle_2dis_1con.mjs | 48 +- .../lay_out/full_line_negative_2dis_1con.mjs | 46 +- ...egend_plot_coxcomb_rectangle_2dis_1con.mjs | 46 +- .../legend_plot_line_negative_2dis_1con.mjs | 36 +- .../plot_coxcomb_rectangle_2dis_1con.mjs | 48 +- .../lay_out/plot_line_negative_2dis_1con.mjs | 38 +- ...title_plot_coxcomb_rectangle_2dis_1con.mjs | 48 +- .../title_plot_line_negative_2dis_1con.mjs | 38 +- .../test_cases/operations/all_operations.mjs | 226 +- .../operations/all_operations_sizeing.mjs | 360 +- .../area_drilldown_aggregate.mjs | 72 +- .../circle_drilldown_aggregate.mjs | 118 +- .../circle_drilldown_aggregate_bubble.mjs | 62 +- .../line_drilldown_aggregate_x.mjs | 102 +- .../line_drilldown_aggregate_y.mjs | 106 +- .../rectangle_drilldown_aggregate_X.mjs | 108 +- .../rectangle_drilldown_aggregate_Y.mjs | 68 +- .../rectangle_drilldown_aggregate_treemap.mjs | 60 +- .../filter_tutorial_data/area_filter_x.mjs | 46 +- .../filter_tutorial_data/area_filter_y.mjs | 53 +- .../filter_tutorial_data/circle_filter.mjs | 48 +- .../circle_filter_bubble.mjs | 44 +- .../filter_tutorial_data/filter_off_anim.mjs | 100 +- .../filter_tutorial_data/line_filter_x.mjs | 52 +- .../filter_tutorial_data/line_filter_y.mjs | 55 +- .../rectangle_filter_treemap.mjs | 42 +- .../rectangle_filter_x.mjs | 50 +- .../rectangle_filter_y.mjs | 44 +- .../area_group_stack.mjs | 74 +- .../bubble_group_stack.mjs | 66 +- .../line_group_stack.mjs | 70 +- .../treemap_group_stack.mjs | 66 +- ...stogram_2_drilldown_negative_1dis_1con.mjs | 104 +- .../area_orientation.mjs | 78 +- .../line_orientation.mjs | 76 +- .../rectangle_orientation.mjs | 74 +- .../area_split_merge.mjs | 62 +- .../circle_split_merge.mjs | 74 +- .../line_split_merge.mjs | 68 +- .../rectangle_split_merge.mjs | 66 +- .../shorthands/column_shorthands.mjs | 84 +- .../cartesian_coo_sys/area_1dis_1con.mjs | 26 +- .../area_negative_1dis_1con.mjs | 26 +- .../bar_rectangle_negative_1dis_1con.mjs | 56 +- ...r_stacked_rectangle_negative_2dis_1con.mjs | 48 +- ...n_grouped_rectangle_negative_2dis_1con.mjs | 48 +- .../column_stacked_rectangle_1dis_1con.mjs | 24 +- ...n_stacked_rectangle_negative_2dis_1con.mjs | 28 +- ...n_stacked_rectangle_negative_3dis_1con.mjs | 28 +- .../dotplot_circle_negative_1dis_1con.mjs | 22 +- ...histogram_rectangle_negative_1dis_1con.mjs | 24 +- .../icicle_rectangle_2dis_1con.mjs | 56 +- .../line_negative_1dis_1con.mjs | 26 +- .../line_negative_2dis_1con.mjs | 26 +- .../marimekko_rectangle_1dis_2con.mjs | 34 +- .../marimekko_rectangle_2dis_2con.mjs | 34 +- .../scatterplot_circle_negative_1dis_1con.mjs | 26 +- .../scatterplot_circle_negative_1dis_2con.mjs | 30 +- .../scatterplot_circle_negative_2dis_3con.mjs | 30 +- .../stacked_area_negative_2dis_1con.mjs | 26 +- ...rfall_rectangle_bar_negative_2dis_2con.mjs | 48 +- ...waterfall_rectangle_negative_2dis_1con.mjs | 46 +- .../NO_spiderweb_area_2dis_1con.mjs | 28 +- .../NO_spiderweb_line_2dis_1con.mjs | 28 +- .../coxcomb_rectangle_1dis_1con.mjs | 44 +- .../coxcomb_stacked_rectangle_2dis_1con.mjs | 40 +- .../coxcomb_stacked_rectangle_2dis_2con.mjs | 40 +- .../radial_rectangle_1dis_1con.mjs | 26 +- .../radial_rectangle_2dis_1con.mjs | 26 +- .../radial_stacked_rectangle_2dis_1con.mjs | 46 +- .../spiderweb_area_1dis_1con.mjs | 50 +- .../spiderweb_line_1dis_1con.mjs | 50 +- .../sunburst_rectangle_2dis_1con.mjs | 66 +- .../sunburst_rectangle_2dis_2con.mjs | 68 +- .../bubble_circle_1dis_2con.mjs | 28 +- .../bubble_circle_2dis_1con.mjs | 26 +- .../bubble_circle_2dis_2con.mjs | 28 +- .../treemap_rectangle_2dis_1con.mjs | 24 +- .../treemap_rectangle_2dis_2con.mjs | 26 +- test/integration/test_cases/test_cases.json | 6588 +- .../change_dimension/area_polar_stacked.mjs | 58 +- .../change_dimension/area_stacked.mjs | 56 +- .../change_dimension/column_stacked.mjs | 48 +- .../change_dimension/dotplot_1.mjs | 42 +- .../change_dimension/dotplot_2.mjs | 54 +- .../change_dimension/dotplot_polar.mjs | 56 +- .../change_dimension/line.mjs | 68 +- .../change_dimension/line_polar.mjs | 70 +- .../compare/area_100percent_stacked.mjs | 54 +- .../compare/area_polar_split.mjs | 56 +- .../compare/area_polar_stacked.mjs | 52 +- .../compare/area_split_stacked.mjs | 54 +- .../compare/area_stacked.mjs | 50 +- .../compare/column_100percent_stacked.mjs | 52 +- .../compare/column_groupped_1.mjs | 74 +- .../compare/column_groupped_2.mjs | 72 +- .../compare/column_split_stacked_1.mjs | 76 +- .../compare/column_split_stacked_2.mjs | 76 +- .../compare/column_stacked_1.mjs | 48 +- .../compare/column_stacked_2.mjs | 48 +- .../compare/coxcomb_1.mjs | 52 +- .../compare/coxcomb_2.mjs | 64 +- .../analytical_operations/compare/line.mjs | 52 +- .../compare/line_polar.mjs | 54 +- .../compare/stream_stacked.mjs | 105 +- .../compare/waterfall.mjs | 92 +- .../existingmeasure_area_stacked.mjs | 50 +- .../distribute/existingmeasure_bubble.mjs | 42 +- .../existingmeasure_bubble_stacked_1.mjs | 72 +- .../existingmeasure_bubble_stacked_2.mjs | 56 +- .../existingmeasure_column_stacked.mjs | 48 +- .../distribute/existingmeasure_coxcomb.mjs | 64 +- .../distribute/existingmeasure_dotplot.mjs | 54 +- .../existingmeasure_scatterplot.mjs | 110 +- .../existingmeasure_scatterplot_split.mjs | 56 +- .../existingmeasure_treemap_stacked.mjs | 66 +- .../distribute/newmeasure_column.mjs | 52 +- .../newmeasure_column_split_stacked.mjs | 78 +- .../distribute/newmeasure_column_stacked.mjs | 52 +- .../distribute/newmeasure_dotplot_1.mjs | 52 +- .../distribute/newmeasure_dotplot_2.mjs | 40 +- .../distribute/newmeasure_dotplot_3.mjs | 50 +- .../distribute/newmeasure_dotplot_4.mjs | 62 +- .../analytical_operations/drilldown/area.mjs | 48 +- .../drilldown/area_polar.mjs | 50 +- .../drilldown/bubble_and_distribution.mjs | 84 +- .../drilldown/column_1.mjs | 50 +- .../drilldown/column_2.mjs | 50 +- .../drilldown/column_3.mjs | 44 +- .../drilldown/column_4.mjs | 62 +- .../drilldown/column_stacked.mjs | 48 +- .../analytical_operations/drilldown/donut.mjs | 94 +- .../drilldown/line_1.mjs | 46 +- .../drilldown/line_2.mjs | 42 +- .../drilldown/line_polar_1.mjs | 44 +- .../drilldown/line_polar_2.mjs | 48 +- .../drilldown/radial.mjs | 66 +- .../drilldown/scatterplot.mjs | 44 +- .../filter/area_polar_stacked.mjs | 48 +- .../filter/area_stacked.mjs | 46 +- .../analytical_operations/filter/line.mjs | 48 +- .../filter/line_polar.mjs | 48 +- .../analytical_operations/filter/stream_1.mjs | 193 +- .../analytical_operations/filter/stream_2.mjs | 211 +- .../misc/donut_to_coxcomb.mjs | 44 +- .../misc/make_space_with_polar.mjs | 66 +- .../misc/orientation_marimekko.mjs | 42 +- .../misc/pie_to_donut.mjs | 40 +- .../split/area_polar_stacked.mjs | 46 +- .../split/area_stacked.mjs | 44 +- .../split/column_100percent_stacked.mjs | 72 +- .../split/column_stacked.mjs | 68 +- .../analytical_operations/split/coxcomb.mjs | 58 +- .../split/radial_stacked.mjs | 50 +- .../split/scatterplot_1.mjs | 56 +- .../split/scatterplot_2.mjs | 56 +- .../stretch_to_proportion/area_stacked.mjs | 44 +- .../stretch_to_proportion/column_groupped.mjs | 50 +- .../column_split_stacked.mjs | 74 +- .../stretch_to_proportion/column_stacked.mjs | 42 +- .../stretch_to_proportion/line.mjs | 52 +- .../sum/area_100percent_stacked.mjs | 46 +- .../sum/area_polar_split.mjs | 48 +- .../sum/area_polar_stacked.mjs | 52 +- .../analytical_operations/sum/area_split.mjs | 46 +- .../sum/area_stacked.mjs | 50 +- .../analytical_operations/sum/bubble.mjs | 40 +- .../sum/bubble_to_column.mjs | 78 +- .../sum/bubble_to_coxcomb.mjs | 86 +- .../sum/bubble_to_radial.mjs | 74 +- .../sum/bubbleplot_1.mjs | 52 +- .../sum/bubbleplot_2.mjs | 78 +- .../sum/bubbleplot_to_radial.mjs | 86 +- .../analytical_operations/sum/column_1.mjs | 50 +- .../sum/column_100percent_stacked.mjs | 44 +- .../analytical_operations/sum/column_2.mjs | 46 +- .../sum/column_groupped.mjs | 50 +- .../sum/column_split_stacked.mjs | 72 +- .../sum/column_stacked_1.mjs | 50 +- .../sum/column_stacked_2.mjs | 56 +- .../sum/column_to_bar.mjs | 50 +- .../sum/column_to_waterfall.mjs | 86 +- .../analytical_operations/sum/coxcomb_1.mjs | 66 +- .../analytical_operations/sum/coxcomb_2.mjs | 74 +- .../sum/coxcomb_split.mjs | 60 +- .../analytical_operations/sum/dotplot.mjs | 50 +- .../analytical_operations/sum/line_1.mjs | 50 +- .../analytical_operations/sum/line_2.mjs | 48 +- .../sum/line_polar_1.mjs | 50 +- .../sum/line_polar_2.mjs | 52 +- .../analytical_operations/sum/scatterplot.mjs | 50 +- .../sum/scatterplot_polar.mjs | 74 +- .../sum/stream_stacked.mjs | 111 +- .../analytical_operations/sum/treemap.mjs | 44 +- .../chart_types/annotation_editor.mjs | 38 +- .../cookbook/chart_types/annotations.mjs | 320 +- .../chart_types/exploded_pie_chart.mjs | 130 +- .../cookbook/chart_types/gant_chart.mjs | 70 +- .../cookbook/chart_types/historgram.mjs | 102 +- .../web_content/cookbook/chart_types/map.mjs | 104 +- .../cookbook/chart_types/multilayer.mjs | 80 +- .../cookbook/chart_types/network_graph.mjs | 206 +- .../cookbook/chart_types/step_line_chart.mjs | 42 +- .../cookbook/chart_types/trendline.mjs | 146 +- .../cookbook/data_source/csv_load.mjs | 53 +- .../cookbook/data_source/data_from_model.mjs | 276 +- .../cookbook/data_source/data_from_model2.mjs | 224 +- .../cookbook/data_source/paint.mjs | 76 +- .../cookbook/data_source/realtime_data.mjs | 58 +- .../cookbook/exports/animated_gif_export.mjs | 86 +- .../cookbook/exports/pptx-export.mjs | 58 +- .../cookbook/exports/video_export.mjs | 40 +- .../interactive/data_selector_combobox.mjs | 80 +- .../cookbook/interactive/filter_on_click.mjs | 52 +- .../cookbook/interactive/filter_slider.mjs | 76 +- .../cookbook/interactive/fullscreen.mjs | 90 +- .../interactive/marker_label_on_mouseon.mjs | 57 +- .../cookbook/interactive/mouse_scroll.mjs | 200 +- .../cookbook/interactive/mouse_wheel_zoom.mjs | 178 +- .../interactive/range_slider_zoom.mjs | 132 +- .../cookbook/interactive/seeker_slider.mjs | 68 +- .../cookbook/interactive/swipe_to_seek.mjs | 107 +- .../cookbook/interactive/window_zoom.mjs | 284 +- .../cookbook/rendering/3d_chart.mjs | 180 +- .../cookbook/rendering/background_image.mjs | 70 +- .../cookbook/rendering/custom_linetype.mjs | 136 +- .../cookbook/rendering/custom_markers.mjs | 72 +- .../rendering/dropshadow_on_marker.mjs | 88 +- .../cookbook/rendering/gradient_on_marker.mjs | 80 +- .../cookbook/rendering/grid_lines.mjs | 106 +- .../cookbook/rendering/image_axis_labels.mjs | 102 +- .../cookbook/rendering/motion_blur.mjs | 88 +- .../rendering/random_gradient_pattern.mjs | 104 +- .../cookbook/rendering/rounded_bars.mjs | 84 +- .../cookbook/rendering/smooth_line_chart.mjs | 56 +- .../cookbook/rendering/sparse_axis_labels.mjs | 32 +- .../cookbook/style/colorfilter.mjs | 102 +- .../cookbook/style/d3_color_palette.mjs | 124 +- .../web_content/cookbook/style/dark_theme.mjs | 170 +- .../cookbook/style/highligh_markers.mjs | 147 +- .../test_cases/web_content/infinite.mjs | 1736 +- .../web_content/presets/chart/area.mjs | 18 +- .../presets/chart/area_percentage.mjs | 20 +- .../presets/chart/area_splitted.mjs | 20 +- .../presets/chart/area_stacked.mjs | 20 +- .../web_content/presets/chart/bar.mjs | 18 +- .../web_content/presets/chart/bar_grouped.mjs | 20 +- .../presets/chart/bar_percentage.mjs | 20 +- .../web_content/presets/chart/bar_radial.mjs | 18 +- .../presets/chart/bar_radial_stacked.mjs | 20 +- .../presets/chart/bar_splitted.mjs | 20 +- .../web_content/presets/chart/bar_stacked.mjs | 20 +- .../web_content/presets/chart/bubble.mjs | 18 +- .../presets/chart/bubble_stacked.mjs | 20 +- .../web_content/presets/chart/column.mjs | 18 +- .../presets/chart/column_grouped.mjs | 20 +- .../presets/chart/column_percentage.mjs | 20 +- .../presets/chart/column_polar.mjs | 18 +- .../presets/chart/column_polar_stacked.mjs | 20 +- .../presets/chart/column_splitted.mjs | 20 +- .../presets/chart/column_stacked.mjs | 20 +- .../web_content/presets/chart/donut.mjs | 18 +- .../presets/chart/donut_nested.mjs | 38 +- .../web_content/presets/chart/line.mjs | 20 +- .../web_content/presets/chart/line_polar.mjs | 20 +- .../presets/chart/line_vertical.mjs | 20 +- .../web_content/presets/chart/lollipop.mjs | 18 +- .../web_content/presets/chart/marimekko.mjs | 22 +- .../presets/chart/mekko_stacked.mjs | 22 +- .../web_content/presets/chart/pie.mjs | 18 +- .../presets/chart/pie_variable_radius.mjs | 20 +- .../web_content/presets/chart/waterfall.mjs | 47 +- .../web_content/presets/graph/stream.mjs | 32 +- .../presets/graph/stream_vertical.mjs | 32 +- .../web_content/presets/graph/violin.mjs | 32 +- .../presets/graph/violin_vertical.mjs | 32 +- .../web_content/presets/heatmap.mjs | 34 +- .../web_content/presets/plot/bubble.mjs | 24 +- .../web_content/presets/plot/scatter.mjs | 20 +- .../presets/plot/scatter_polar.mjs | 20 +- .../web_content/presets/treemap.mjs | 18 +- .../web_content/presets/treemap_stacked.mjs | 20 +- .../presets_config/chart/bar_radial.mjs | 42 +- .../chart/bar_radial_stacked.mjs | 44 +- .../presets_config/chart/bar_stacked.mjs | 48 +- .../presets_config/chart/bubble_stacked.mjs | 24 +- .../presets_config/chart/column_polar.mjs | 26 +- .../chart/column_polar_stacked.mjs | 42 +- .../presets_config/chart/column_stacked.mjs | 42 +- .../chart/pie_variable_radius.mjs | 28 +- .../web_content/presets_config/treemap.mjs | 24 +- .../web_content/static/chart/area.mjs | 26 +- .../web_content/static/chart/area_polar.mjs | 56 +- .../web_content/static/chart/area_stacked.mjs | 26 +- .../web_content/static/chart/bar.mjs | 26 +- .../web_content/static/chart/bar_radial.mjs | 36 +- .../static/chart/bar_stacked_radial.mjs | 44 +- .../web_content/static/chart/bubble.mjs | 26 +- .../static/chart/bubble_stacked.mjs | 26 +- .../web_content/static/chart/column.mjs | 24 +- .../static/chart/column_grouped.mjs | 50 +- .../static/chart/column_single_stacked.mjs | 24 +- .../static/chart/column_stacked.mjs | 60 +- .../web_content/static/chart/coxcomb.mjs | 26 +- .../web_content/static/chart/donut.mjs | 30 +- .../web_content/static/chart/line.mjs | 26 +- .../web_content/static/chart/line_polar.mjs | 28 +- .../web_content/static/chart/line_single.mjs | 26 +- .../static/chart/line_single_polar.mjs | 56 +- .../web_content/static/chart/marimekko.mjs | 50 +- .../web_content/static/chart/mekko.mjs | 26 +- .../static/chart/mekko_stacked.mjs | 34 +- .../web_content/static/chart/pie.mjs | 26 +- .../web_content/static/chart/waterfall.mjs | 46 +- .../static/graph/stream_stacked.mjs | 36 +- .../web_content/static/histogram.mjs | 34 +- .../web_content/static/plot/bubble.mjs | 30 +- .../web_content/static/plot/dot.mjs | 22 +- .../web_content/static/plot/scatter.mjs | 28 +- .../test_cases/web_content/static/treemap.mjs | 22 +- .../web_content/static/treemap_stacked.mjs | 26 +- ...omparison_pie_coxcomb_column_2dis_2con.mjs | 78 +- ..._comparison_waterfall_column_2dis_1con.mjs | 104 +- ...ition_percentage_area_stream_3dis_1con.mjs | 72 +- ...omposition_percentage_column_3dis_1con.mjs | 70 +- ...ion_percentage_column_stream_3dis_1con.mjs | 104 +- ...tribution_relationship_dotplot_dotplot.mjs | 50 +- .../animated/drill_aggreg_improve_line.mjs | 66 +- .../animated/drilldown_aggregate_line.mjs | 90 +- .../merge_split_area_stream_3dis_1con.mjs | 60 +- .../animated/merge_split_bar.mjs | 38 +- ...lit_radial_stacked_rectangle_2dis_1con.mjs | 60 +- .../animated/orientation_circle.mjs | 54 +- .../animated/orientation_dot_circle.mjs | 92 +- ...entation_marimekko_rectangle_2dis_2con.mjs | 46 +- .../animated/orientation_rectangle.mjs | 48 +- .../pie_donut2_rectangle_1dis_1con.mjs | 46 +- ...onship_comparison_circle_2_bubble_plot.mjs | 74 +- .../relationship_total_bubble_plot_column.mjs | 74 +- .../animated/stack_group_area_line.mjs | 86 +- .../animated/stack_group_circle.mjs | 44 +- .../animated/stack_group_treemap.mjs | 48 +- .../animated/total_element_bubble_2_bar.mjs | 76 +- .../animated/total_element_bubble_column.mjs | 74 +- .../animated/treemap_radial.mjs | 62 +- .../animated/zoom_area.mjs | 44 +- .../animated/zoom_area_polar.mjs | 46 +- .../animated/zoom_line.mjs | 44 +- .../animated/zoom_line_polar.mjs | 46 +- .../descartes-polar/01_d-p_r-r-r.mjs | 86 +- .../descartes-polar/02_d-p_c-r-c.mjs | 140 +- .../descartes-polar/03_d-p_a-r-a.mjs | 130 +- .../descartes-polar/04_d-p_l-r-l.mjs | 130 +- .../descartes-polar/05_d-p_r-c-r.mjs | 120 +- .../descartes-polar/06_d-p_c-c-c.mjs | 140 +- .../descartes-polar/07_d-p_a-c-a.mjs | 152 +- .../descartes-polar/08_d-p_l-c-l.mjs | 150 +- .../descartes-polar/09_d-p_r-a-r.mjs | 152 +- .../descartes-polar/10_d-p_c-a-c.mjs | 206 +- .../descartes-polar/11_d-p_a-a-a.mjs | 202 +- .../descartes-polar/12_d-p_l-a-l.mjs | 216 +- .../descartes-polar/13_d-p_r-l-r.mjs | 182 +- .../descartes-polar/14_d-p_c-l-c.mjs | 206 +- .../descartes-polar/15_d-p_a-l-a.mjs | 184 +- .../descartes-polar/16_d-p_l-l-l.mjs | 186 +- .../descartes-polar_orient/01_d-p_o_r-r-r.mjs | 212 +- .../descartes-polar_orient/02_d-p_o_c-r-c.mjs | 236 +- .../descartes-polar_orient/03_d-p_o_a-r-a.mjs | 128 +- .../descartes-polar_orient/04_d-p_o_l-r-l.mjs | 172 +- .../descartes-polar_orient/05_d-p_o_r-c-r.mjs | 236 +- .../descartes-polar_orient/06_d-p_o_c-c-c.mjs | 240 +- .../descartes-polar_orient/07_d-p_o_a-c-a.mjs | 242 +- .../descartes-polar_orient/08_d-p_o_l-c-l.mjs | 204 +- .../descartes-polar_orient/09_d-p_o_r-a-r.mjs | 156 +- .../descartes-polar_orient/10_d-p_o_c-a-c.mjs | 204 +- .../descartes-polar_orient/11_d-p_o_a-a-a.mjs | 180 +- .../descartes-polar_orient/12_d-p_o_l-a-l.mjs | 188 +- .../descartes-polar_orient/13_d-p_o_r-l-r.mjs | 162 +- .../descartes-polar_orient/14_d-p_o_c-l-c.mjs | 204 +- .../descartes-polar_orient/15_d-p_o_a-l-a.mjs | 186 +- .../descartes-polar_orient/16_d-p_o_l-l-l.mjs | 190 +- .../ww_animTiming/descartes/02_d-d_c-r-c.mjs | 146 +- .../ww_animTiming/descartes/03_d-d_a-r-a.mjs | 126 +- .../ww_animTiming/descartes/04_d-d_l-r-l.mjs | 158 +- .../ww_animTiming/descartes/07_d-d_a-c-a.mjs | 158 +- .../ww_animTiming/descartes/08_d-d_l-c-l.mjs | 158 +- .../ww_animTiming/descartes/12_d-d_l-a-l.mjs | 158 +- .../ww_animTiming/descartes/easing_test.mjs | 182 +- .../descartes_orientation/01_d-d_o_r-r-r.mjs | 192 +- .../descartes_orientation/02_d-d_o_c-r-c.mjs | 228 +- .../descartes_orientation/03_d-d_o_a-r-a.mjs | 172 +- .../03_d-d_o_a-r-a_split.mjs | 298 +- .../descartes_orientation/04_d-d_o_l-r-l.mjs | 156 +- .../04_d-d_o_l-r-l_stacked.mjs | 154 +- .../descartes_orientation/05_d-d_o_r-c-r.mjs | 208 +- .../descartes_orientation/06_d-d_o_c-c-c.mjs | 210 +- .../descartes_orientation/07_d-d_o_a-c-a.mjs | 178 +- .../descartes_orientation/08_d-d_o_l-c-l.mjs | 198 +- .../descartes_orientation/09_d-d_o_r-a-r.mjs | 184 +- .../descartes_orientation/10_d-d_o_c-a-c.mjs | 178 +- .../descartes_orientation/11_d-d_o_a-a-a.mjs | 206 +- .../descartes_orientation/12_d-d_o_l-a-l.mjs | 202 +- .../descartes_orientation/13_d-d_o_r-l-r.mjs | 178 +- .../descartes_orientation/14_d-d_o_c-l-c.mjs | 208 +- .../descartes_orientation/15_d-d_o_a-l-a.mjs | 204 +- .../descartes_orientation/16_d-d_o_l-l-l.mjs | 208 +- .../ww_animTiming/polar/02_p-p_c-r-c.mjs | 216 +- .../ww_animTiming/polar/03_p-p_a-r-a.mjs | 146 +- .../ww_animTiming/polar/04_p-p_l-r-l.mjs | 164 +- .../ww_animTiming/polar/07_p-p_a-c-a.mjs | 200 +- .../ww_animTiming/polar/08_p-p_l-c-l.mjs | 200 +- .../ww_animTiming/polar/12_p-p_l-a-l.mjs | 180 +- .../polar_orientation/01_p-p_o_r-r-r.mjs | 194 +- .../polar_orientation/02_p-p_o_c-r-c.mjs | 216 +- .../polar_orientation/03_p-p_o_a-r-a.mjs | 128 +- .../polar_orientation/04_p-p_o_l-r-l.mjs | 164 +- .../polar_orientation/05_p-p_o_r-c-r.mjs | 234 +- .../polar_orientation/06_p-p_o_c-c-c.mjs | 234 +- .../polar_orientation/07_p-p_o_a-c-a.mjs | 222 +- .../polar_orientation/08_p-p_o_l-c-l.mjs | 200 +- .../polar_orientation/09_p-p_o_r-a-r.mjs | 154 +- .../polar_orientation/10_p-p_o_c-a-c.mjs | 202 +- .../polar_orientation/11_p-p_o_a-a-a.mjs | 178 +- .../polar_orientation/12_p-p_o_l-a-l.mjs | 182 +- .../polar_orientation/13_p-p_o_r-l-r.mjs | 184 +- .../polar_orientation/14_p-p_o_c-l-c.mjs | 200 +- .../polar_orientation/15_p-p_o_a-l-a.mjs | 184 +- .../polar_orientation/16_p-p_o_l-l-l.mjs | 188 +- .../without-descartes/01_w-d_r-r-r.mjs | 214 +- .../without-descartes/02_w-d_c-r-c.mjs | 214 +- .../without-descartes/05_w-d_r-c-r.mjs | 164 +- .../without-descartes/06_w-d_c-c-c.mjs | 216 +- .../without-descartes/09_w-d_r-a-r.mjs | 142 +- .../without-descartes/10_w-d_c-a-c.mjs | 216 +- .../without-descartes/13_w-d_r-l-r.mjs | 216 +- .../without-descartes/14_w-d_c-l-c.mjs | 216 +- .../01_w-d_o_r-r-r.mjs | 216 +- .../02_w-d_o_c-r-c.mjs | 214 +- .../05_w-d_o_r-c-r.mjs | 218 +- .../06_w-d_o_c-c-c.mjs | 218 +- .../09_w-d_o_r-a-r.mjs | 190 +- .../10_w-d_o_c-a-c.mjs | 216 +- .../13_w-d_o_r-l-r.mjs | 218 +- .../14_w-d_o_c-l-c.mjs | 218 +- .../without-polar/01_w-p_r-r-r.mjs | 214 +- .../without-polar/02_w-p_c-r-c.mjs | 214 +- .../without-polar/05_w-p_r-c-r.mjs | 218 +- .../without-polar/06_w-p_c-c-c.mjs | 238 +- .../without-polar/09_w-p_r-a-r.mjs | 192 +- .../without-polar/10_w-p_c-a-c.mjs | 234 +- .../without-polar/13_w-p_r-l-r.mjs | 216 +- .../without-polar/14_w-p_c-l-c.mjs | 214 +- .../01_w-p_o_r-r-r.mjs | 216 +- .../02_w-p_o_c-r-c.mjs | 234 +- .../05_w-p_o_r-c-r.mjs | 238 +- .../06_w-p_o_c-c-c.mjs | 238 +- .../09_w-p_o_r-a-r.mjs | 192 +- .../10_w-p_o_c-a-c.mjs | 236 +- .../13_w-p_o_r-l-r.mjs | 216 +- .../14_w-p_o_c-l-c.mjs | 236 +- .../ww_animTiming/without/02_w-w_c-r-c.mjs | 194 +- .../descartes-polar/02_d-p_c-r-c.mjs | 88 +- .../descartes-polar/03_d-p_a-r-a.mjs | 86 +- .../descartes-polar/04_d-p_l-r-l.mjs | 86 +- .../descartes-polar/05_d-p_r-c-r.mjs | 88 +- .../descartes-polar/06_d-p_c-c-c.mjs | 120 +- .../descartes-polar/07_d-p_a-c-a.mjs | 88 +- .../descartes-polar/08_d-p_l-c-l.mjs | 86 +- .../descartes-polar/09_d-p_r-a-r.mjs | 86 +- .../descartes-polar/10_d-p_c-a-c.mjs | 90 +- .../descartes-polar/11_d-p_a-a-a.mjs | 86 +- .../descartes-polar/12_d-p_l-a-l.mjs | 116 +- .../descartes-polar/13_d-p_r-l-r.mjs | 82 +- .../descartes-polar/14_d-p_c-l-c.mjs | 90 +- .../descartes-polar/15_d-p_a-l-a.mjs | 84 +- .../descartes-polar/16_d-p_l-l-l.mjs | 86 +- .../descartes-polar_orient/01_d-p_o_r-r-r.mjs | 116 +- .../descartes-polar_orient/02_d-p_o_c-r-c.mjs | 122 +- .../descartes-polar_orient/03_d-p_o_a-r-a.mjs | 84 +- .../descartes-polar_orient/04_d-p_o_l-r-l.mjs | 84 +- .../descartes-polar_orient/05_d-p_o_r-c-r.mjs | 120 +- .../descartes-polar_orient/06_d-p_o_c-c-c.mjs | 124 +- .../descartes-polar_orient/07_d-p_o_a-c-a.mjs | 88 +- .../descartes-polar_orient/08_d-p_o_l-c-l.mjs | 88 +- .../descartes-polar_orient/09_d-p_o_r-a-r.mjs | 84 +- .../descartes-polar_orient/10_d-p_o_c-a-c.mjs | 90 +- .../descartes-polar_orient/11_d-p_o_a-a-a.mjs | 84 +- .../descartes-polar_orient/12_d-p_o_l-a-l.mjs | 84 +- .../descartes-polar_orient/13_d-p_o_r-l-r.mjs | 86 +- .../descartes-polar_orient/14_d-p_o_c-l-c.mjs | 108 +- .../descartes-polar_orient/15_d-p_o_a-l-a.mjs | 86 +- .../descartes-polar_orient/16_d-p_o_l-l-l.mjs | 90 +- .../descartes/02_d-d_c-r-c.mjs | 114 +- .../descartes/03_d-d_a-r-a.mjs | 82 +- .../descartes/04_d-d_l-r-l.mjs | 114 +- .../descartes/07_d-d_a-c-a.mjs | 114 +- .../descartes/08_d-d_l-c-l.mjs | 114 +- .../descartes/12_d-d_l-a-l.mjs | 114 +- .../descartes/easing_test.mjs | 138 +- .../descartes_orientation/01_d-d_o_r-r-r.mjs | 112 +- .../descartes_orientation/02_d-d_o_c-r-c.mjs | 116 +- .../descartes_orientation/03_d-d_o_a-r-a.mjs | 112 +- .../03_d-d_o_a-r-a_split.mjs | 162 +- .../descartes_orientation/04_d-d_o_l-r-l.mjs | 80 +- .../04_d-d_o_l-r-l_stacked.mjs | 78 +- .../descartes_orientation/05_d-d_o_r-c-r.mjs | 114 +- .../descartes_orientation/06_d-d_o_c-c-c.mjs | 116 +- .../descartes_orientation/07_d-d_o_a-c-a.mjs | 84 +- .../descartes_orientation/08_d-d_o_l-c-l.mjs | 84 +- .../descartes_orientation/09_d-d_o_r-a-r.mjs | 112 +- .../descartes_orientation/10_d-d_o_c-a-c.mjs | 86 +- .../descartes_orientation/11_d-d_o_a-a-a.mjs | 112 +- .../descartes_orientation/12_d-d_o_l-a-l.mjs | 80 +- .../descartes_orientation/13_d-d_o_r-l-r.mjs | 82 +- .../descartes_orientation/14_d-d_o_c-l-c.mjs | 114 +- .../descartes_orientation/15_d-d_o_a-l-a.mjs | 82 +- .../descartes_orientation/16_d-d_o_l-l-l.mjs | 118 +- .../polar/02_p-p_c-r-c.mjs | 116 +- .../polar/03_p-p_a-r-a.mjs | 84 +- .../polar/04_p-p_l-r-l.mjs | 84 +- .../polar/07_p-p_a-c-a.mjs | 84 +- .../polar/08_p-p_l-c-l.mjs | 84 +- .../polar/12_p-p_l-a-l.mjs | 84 +- .../polar_orientation/01_p-p_o_r-r-r.mjs | 114 +- .../polar_orientation/02_p-p_o_c-r-c.mjs | 116 +- .../polar_orientation/03_p-p_o_a-r-a.mjs | 84 +- .../polar_orientation/04_p-p_o_l-r-l.mjs | 84 +- .../polar_orientation/05_p-p_o_r-c-r.mjs | 118 +- .../polar_orientation/06_p-p_o_c-c-c.mjs | 118 +- .../polar_orientation/07_p-p_o_a-c-a.mjs | 104 +- .../polar_orientation/08_p-p_o_l-c-l.mjs | 84 +- .../polar_orientation/09_p-p_o_r-a-r.mjs | 82 +- .../polar_orientation/10_p-p_o_c-a-c.mjs | 86 +- .../polar_orientation/11_p-p_o_a-a-a.mjs | 82 +- .../polar_orientation/12_p-p_o_l-a-l.mjs | 82 +- .../polar_orientation/13_p-p_o_r-l-r.mjs | 84 +- .../polar_orientation/14_p-p_o_c-l-c.mjs | 84 +- .../polar_orientation/15_p-p_o_a-l-a.mjs | 84 +- .../polar_orientation/16_p-p_o_l-l-l.mjs | 88 +- .../without-descartes/01_w-d_r-r-r.mjs | 118 +- .../without-descartes/02_w-d_c-r-c.mjs | 118 +- .../without-descartes/05_w-d_r-c-r.mjs | 120 +- .../without-descartes/06_w-d_c-c-c.mjs | 120 +- .../without-descartes/09_w-d_r-a-r.mjs | 120 +- .../without-descartes/10_w-d_c-a-c.mjs | 120 +- .../without-descartes/13_w-d_r-l-r.mjs | 120 +- .../without-descartes/14_w-d_c-l-c.mjs | 120 +- .../01_w-d_o_r-r-r.mjs | 120 +- .../02_w-d_o_c-r-c.mjs | 118 +- .../05_w-d_o_r-c-r.mjs | 122 +- .../06_w-d_o_c-c-c.mjs | 122 +- .../09_w-d_o_r-a-r.mjs | 120 +- .../10_w-d_o_c-a-c.mjs | 120 +- .../13_w-d_o_r-l-r.mjs | 122 +- .../14_w-d_o_c-l-c.mjs | 122 +- .../without-polar/01_w-p_r-r-r.mjs | 122 +- .../without-polar/02_w-p_c-r-c.mjs | 122 +- .../without-polar/05_w-p_r-c-r.mjs | 126 +- .../without-polar/06_w-p_c-c-c.mjs | 146 +- .../without-polar/09_w-p_r-a-r.mjs | 124 +- .../without-polar/10_w-p_c-a-c.mjs | 142 +- .../without-polar/13_w-p_r-l-r.mjs | 124 +- .../without-polar/14_w-p_c-l-c.mjs | 124 +- .../01_w-p_o_r-r-r.mjs | 124 +- .../02_w-p_o_c-r-c.mjs | 142 +- .../05_w-p_o_r-c-r.mjs | 146 +- .../06_w-p_o_c-c-c.mjs | 146 +- .../09_w-p_o_r-a-r.mjs | 124 +- .../10_w-p_o_c-a-c.mjs | 144 +- .../13_w-p_o_r-l-r.mjs | 124 +- .../14_w-p_o_c-l-c.mjs | 144 +- .../without/02_w-w_c-r-c.mjs | 114 +- .../ww_next_steps/next_steps/02_C_R.mjs | 686 +- .../02_C_R_water_comparison_sum.mjs | 118 +- .../ww_next_steps/next_steps/03_C_R.mjs | 672 +- .../ww_next_steps/next_steps/04_C_R.mjs | 1216 +- .../ww_next_steps/next_steps/05_C_R.mjs | 518 +- .../next_steps/21_C_C_dotplot.mjs | 106 +- .../ww_next_steps/next_steps/22_C_C.mjs | 756 +- .../ww_next_steps/next_steps/28_C_A.mjs | 840 +- .../next_steps/35_C_A_violin.mjs | 108 +- .../ww_next_steps/next_steps/38_C_L_line.mjs | 948 +- .../ww_next_steps/next_steps_Tests/02_C_R.mjs | 368 +- .../02_C_R_water_comparison_sum.mjs | 118 +- .../ww_next_steps/next_steps_Tests/03_C_R.mjs | 398 +- .../ww_next_steps/next_steps_Tests/04_C_R.mjs | 746 +- .../ww_next_steps/next_steps_Tests/05_C_R.mjs | 430 +- .../next_steps_Tests/21_C_C_dotplot.mjs | 64 +- .../ww_next_steps/next_steps_Tests/22_C_C.mjs | 626 +- .../ww_next_steps/next_steps_Tests/28_C_A.mjs | 610 +- .../next_steps_Tests/38_C_L_line.mjs | 578 +- .../next_steps_Tests/axisLabel_problem.mjs | 86 +- .../compare/comparison_01.mjs | 98 +- .../compare/comparison_02.mjs | 52 +- .../compare/comparison_03.mjs | 52 +- .../compare/comparison_04.mjs | 56 +- .../compare/comparison_05.mjs | 80 +- .../compare/comparison_06.mjs | 80 +- .../compare/comparison_09.mjs | 58 +- .../compare/comparison_10.mjs | 66 +- .../compare/comparison_11.mjs | 58 +- .../components/components_01.mjs | 78 +- .../components/components_02.mjs | 78 +- .../components/components_03.mjs | 74 +- .../components/components_04.mjs | 78 +- .../components/components_05.mjs | 62 +- .../components/components_06.mjs | 48 +- .../components/components_07.mjs | 56 +- .../distribute/distribution_01.mjs | 52 +- .../distribute/distribution_02.mjs | 54 +- .../distribute/distribution_03.mjs | 56 +- .../distribute/distribution_04.mjs | 58 +- .../distribute/distribution_05.mjs | 84 +- .../distribute/distribution_06.mjs | 56 +- .../distribute/distribution_07.mjs | 56 +- .../distribute/distribution_08.mjs | 58 +- .../drilldown/drilldown_01.mjs | 48 +- .../drilldown/drilldown_02.mjs | 66 +- .../drilldown/drilldown_03.mjs | 54 +- .../drilldown/drilldown_04.mjs | 54 +- .../drilldown/drilldown_05.mjs | 52 +- .../drilldown/drilldown_06.mjs | 56 +- .../drilldown/drilldown_07.mjs | 56 +- .../drilldown/drilldown_10.mjs | 56 +- .../drilldown/drilldown_11.mjs | 58 +- .../drilldown/drilldown_12.mjs | 52 +- .../drilldown/drilldown_13.mjs | 54 +- .../other/other_add_measure_01.mjs | 76 +- .../ratio/ratio_01.mjs | 46 +- .../ratio/ratio_02.mjs | 54 +- .../ratio/ratio_03.mjs | 78 +- .../ratio/ratio_04.mjs | 48 +- .../ratio/ratio_05.mjs | 56 +- .../remove/remove_01.mjs | 60 +- .../remove/remove_02.mjs | 62 +- .../remove/remove_03.mjs | 86 +- .../remove/remove_04.mjs | 56 +- .../remove/remove_05.mjs | 62 +- .../remove/remove_07.mjs | 56 +- .../sum_aggregate/sum_aggregate_01.mjs | 54 +- .../sum_aggregate/sum_aggregate_02.mjs | 90 +- .../sum_aggregate/sum_aggregate_03.mjs | 52 +- .../sum_aggregate/sum_aggregate_04.mjs | 54 +- .../sum_aggregate/sum_aggregate_05.mjs | 56 +- .../sum_aggregate/sum_aggregate_06.mjs | 54 +- .../sum_aggregate/sum_aggregate_07.mjs | 54 +- .../sum_aggregate/sum_aggregate_08.mjs | 56 +- .../sum_aggregate/sum_aggregate_09.mjs | 48 +- .../sum_aggregate/sum_aggregate_10.mjs | 76 +- .../sum_aggregate/sum_aggregate_11.mjs | 56 +- .../sum_aggregate/sum_aggregate_12.mjs | 54 +- .../sum_aggregate/sum_aggregate_13.mjs | 56 +- .../sum_aggregate/sum_aggregate_14.mjs | 58 +- .../sum_aggregate/sum_aggregate_16.mjs | 54 +- .../sum_aggregate/sum_aggregate_17.mjs | 60 +- .../sum_aggregate/sum_aggregate_18.mjs | 50 +- .../sum_aggregate/sum_aggregate_19.mjs | 50 +- .../sum_aggregate/sum_aggregate_20.mjs | 52 +- .../sum_aggregate/sum_aggregate_21.mjs | 60 +- .../sum_aggregate/sum_aggregate_22.mjs | 54 +- .../total/total_01.mjs | 50 +- .../total/total_02.mjs | 54 +- .../total/total_03.mjs | 56 +- .../total/total_04.mjs | 56 +- .../total/total_05.mjs | 86 +- ...omparison_pie_coxcomb_column_2dis_2con.mjs | 60 +- ...tribution_relationship_dotplot_dotplot.mjs | 64 +- .../drill_aggreg_improve_line.mjs | 46 +- ...lit_radial_stacked_rectangle_2dis_1con.mjs | 54 +- .../wOld_animated/orientation_dot_circle.mjs | 114 +- ...entation_marimekko_rectangle_2dis_2con.mjs | 46 +- .../other_cartesian_radial_02.mjs | 70 +- .../wOld_animated/treemap_radial.mjs | 60 +- .../wOld_animated/zoom_area.mjs | 44 +- .../wOld_animated/zoom_area_polar.mjs | 46 +- .../wOld_animated/zoom_line.mjs | 44 +- .../wOld_animated/zoom_line_polar.mjs | 46 +- .../wREGIEKBOL/02_cir.mjs | 44 +- .../wREGIEKBOL/03_d-w_are.mjs | 56 +- .../wREGIEKBOL/03_d-w_cir.mjs | 48 +- .../wREGIEKBOL/03_d-w_lin.mjs | 52 +- .../wREGIEKBOL/03_d-w_rec.mjs | 54 +- .../wREGIEKBOL/03a_d-w_are.mjs | 54 +- .../wREGIEKBOL/04_cir_2c.mjs | 54 +- .../wREGIEKBOL/06_cir_2c.mjs | 68 +- .../wREGIEKBOL/06b_are.mjs | 60 +- .../wREGIEKBOL/06b_cir_1c.mjs | 60 +- .../wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs | 72 +- .../NoFade_Promobol/4_06b_rec_1c.mjs | 72 +- .../NoFade_Promobol/4a_06b_rec_1c.mjs | 60 +- .../NoFade_Promobol/5_04a_rec_1c.mjs | 52 +- .../NoFade_Promobol/6_04a_cir_1c.mjs | 46 +- .../NoFade_Promobol/7_05_cir_2c.mjs | 44 +- .../NoFade_Promobol/8_06b_d-w_cir_1c.mjs | 48 +- .../NoFade_Promobol/9_06b_d-w_rec_1c.mjs | 72 +- .../NoFade_Promobol/9a_06b_d-w_rec_1c.mjs | 76 +- .../wNoFade_Tests/1_des_pol/area/03_are.mjs | 46 +- .../wNoFade_Tests/1_des_pol/area/04a_are.mjs | 48 +- .../wNoFade_Tests/1_des_pol/area/04b_are.mjs | 46 +- .../wNoFade_Tests/1_des_pol/area/06a_are.mjs | 48 +- .../wNoFade_Tests/1_des_pol/area/06b_are.mjs | 48 +- .../1_des_pol/circle-rectangle/02_cir.mjs | 84 +- .../1_des_pol/circle-rectangle/03_cir.mjs | 82 +- .../1_des_pol/circle-rectangle/04_cir.mjs | 84 +- .../1_des_pol/circle-rectangle/05_cir.mjs | 86 +- .../1_des_pol/circle-rectangle/06_cir_NO.mjs | 86 +- .../1_des_pol/circle-rectangle/07_cir.mjs | 90 +- .../1_des_pol/circle-rectangle/08_cir.mjs | 90 +- .../circle-rectangle_Ve1/04_cir_Ve1.mjs | 90 +- .../circle-rectangle_Ve1/04_cir_Ve2.mjs | 88 +- .../circle-rectangle_Ve1/07_cir_Ve1.mjs | 88 +- .../wNoFade_Tests/1_des_pol/circle/02_cir.mjs | 84 +- .../wNoFade_Tests/1_des_pol/circle/03_cir.mjs | 82 +- .../1_des_pol/circle/04_cir_2c.mjs | 80 +- .../1_des_pol/circle/04a_cir_1c.mjs | 86 +- .../1_des_pol/circle/04b_cir_1c.mjs | 82 +- .../1_des_pol/circle/05_cir_2c.mjs | 84 +- .../1_des_pol/circle/05a_cir_1c.mjs | 86 +- .../1_des_pol/circle/05b_cir_1c.mjs | 84 +- .../1_des_pol/circle/06_cir_2c.mjs | 84 +- .../1_des_pol/circle/06a_cir_1c.mjs | 84 +- .../1_des_pol/circle/06b_cir_1c.mjs | 82 +- .../1_des_pol/circle/07_cir_2c.mjs | 86 +- .../1_des_pol/circle/08_cir_2c.mjs | 86 +- .../wNoFade_Tests/1_des_pol/line/02a_lin.mjs | 50 +- .../wNoFade_Tests/1_des_pol/line/02b_lin.mjs | 48 +- .../wNoFade_Tests/1_des_pol/line/03_lin.mjs | 48 +- .../wNoFade_Tests/1_des_pol/line/04a_lin.mjs | 48 +- .../wNoFade_Tests/1_des_pol/line/04b_lin.mjs | 46 +- .../wNoFade_Tests/1_des_pol/line/05a_lin.mjs | 52 +- .../wNoFade_Tests/1_des_pol/line/05b_lin.mjs | 48 +- .../wNoFade_Tests/1_des_pol/line/06a_lin.mjs | 50 +- .../wNoFade_Tests/1_des_pol/line/06b_lin.mjs | 50 +- .../1_des_pol/rectangle/02a_rec.mjs | 88 +- .../1_des_pol/rectangle/02b_rec.mjs | 94 +- .../1_des_pol/rectangle/03_rec.mjs | 80 +- .../1_des_pol/rectangle/04a_rec_1c.mjs | 80 +- .../1_des_pol/rectangle/04a_rec_2c.mjs | 82 +- .../1_des_pol/rectangle/04b_rec_1c.mjs | 82 +- .../1_des_pol/rectangle/04b_rec_2c.mjs | 84 +- .../1_des_pol/rectangle/05a_rec_2c.mjs | 82 +- .../1_des_pol/rectangle/05b_rec_2c.mjs | 82 +- .../1_des_pol/rectangle/06a_rec_1c.mjs | 80 +- .../1_des_pol/rectangle/06a_rec_2c.mjs | 80 +- .../1_des_pol/rectangle/06b_rec_1c.mjs | 82 +- .../1_des_pol/rectangle/06b_rec_2c.mjs | 82 +- .../1_des_pol/rectangle/07a_rec_1c.mjs | 78 +- .../1_des_pol/rectangle/07a_rec_2c.mjs | 84 +- .../1_des_pol/rectangle/08a_rec_2c.mjs | 80 +- .../area-rectangle/03_d-w_are.mjs | 54 +- .../area-rectangle/04a_d-w_are.mjs | 86 +- .../area-rectangle/04b_d-w_are.mjs | 52 +- .../area-rectangle/06a_d-w_are.mjs | 86 +- .../area-rectangle/06b_d-w_are.mjs | 54 +- .../10_d-w_are_temporal_bubble.mjs | 84 +- .../2_des_pol-without/area/03_d-w_are.mjs | 54 +- .../2_des_pol-without/area/04a_d-w_are.mjs | 86 +- .../2_des_pol-without/area/04b_d-w_are.mjs | 54 +- .../2_des_pol-without/area/06a_d-w_are.mjs | 86 +- .../2_des_pol-without/area/06b_d-w_are.mjs | 56 +- .../area/06b_d-w_are_V1_filter.mjs | 64 +- .../circle-rectangle/04a_d-w_cir_1c.mjs | 86 +- .../2_des_pol-without/circle/03_d-w_cir.mjs | 84 +- .../circle/04_d-w_cir_2c.mjs | 86 +- .../circle/04a_d-w_cir_1c.mjs | 84 +- .../circle/04b_d-w_cir_1c.mjs | 84 +- .../circle/05_d-w_cir_2c.mjs | 86 +- .../circle/05a_d-w_cir_1c.mjs | 88 +- .../circle/05b_d-w_cir_1c.mjs | 88 +- .../circle/06_d-w_cir_2c.mjs | 86 +- .../circle/06a_d-w_cir_1c.mjs | 86 +- .../circle/06b_d-w_cir_1c.mjs | 82 +- .../circle/07_d-w_cir_2c.mjs | 88 +- .../circle/08_d-w_cir_2c.mjs | 88 +- .../line-rectangle/02_d-w_lin.mjs | 66 +- .../line-rectangle/03_d-w_lin.mjs | 52 +- .../line-rectangle/04a_d-w_lin.mjs | 52 +- .../line-rectangle/04b_d-w_lin.mjs | 52 +- .../line-rectangle/05a_d-w_lin.mjs | 88 +- .../line-rectangle/05b_d-w_lin.mjs | 56 +- .../line-rectangle/06a_d-w_lin.mjs | 52 +- .../line-rectangle/06b_d-w_lin.mjs | 54 +- .../2_des_pol-without/line/02_d-w_lin.mjs | 66 +- .../2_des_pol-without/line/03_d-w_lin.mjs | 52 +- .../2_des_pol-without/line/04a_d-w_lin.mjs | 52 +- .../2_des_pol-without/line/04b_d-w_lin.mjs | 52 +- .../2_des_pol-without/line/05a_d-w_lin.mjs | 88 +- .../2_des_pol-without/line/05b_d-w_lin.mjs | 56 +- .../2_des_pol-without/line/06a_d-w_lin.mjs | 52 +- .../2_des_pol-without/line/06b_d-w_lin.mjs | 54 +- .../rectangle/02_d-w_rec.mjs | 84 +- .../rectangle/03_d-w_rec.mjs | 82 +- .../rectangle/04a_d-w_rec_1c.mjs | 84 +- .../rectangle/04a_d-w_rec_2c.mjs | 86 +- .../rectangle/04b_d-w_rec_1c.mjs | 84 +- .../rectangle/04b_d-w_rec_2c.mjs | 84 +- .../rectangle/05a_d-w_rec_2c.mjs | 86 +- .../rectangle/05b_d-w_rec_2c.mjs | 86 +- .../rectangle/06a_d-w_rec_1c.mjs | 84 +- .../rectangle/06b_d-w_rec_1c.mjs | 82 +- .../rectangle/06b_d-w_rec_2c.mjs | 86 +- .../rectangle/07a_d-w_rec_1c.mjs | 82 +- .../rectangle/07a_d-w_rec_2c.mjs | 84 +- .../rectangle/08a_d-w_rec_2c.mjs | 86 +- .../rotated_bar_to_donut.mjs | 92 +- .../Bubble_Stacked_Bubble_to_Area.mjs | 66 +- .../Bubble_Stacked_Bubble_to_Line.mjs | 66 +- .../Treemap_Stacked_Treemap_to_Area.mjs | 66 +- .../area_column_time_sum.mjs | 54 +- .../area_orientation.mjs | 50 +- .../line_bar_time_sum.mjs | 48 +- .../line_column_time_sum.mjs | 48 +- .../line_drilldown_aggregate_x.mjs | 44 +- .../line_orientation.mjs | 54 +- .../line_tooltip_test.mjs | 36 +- .../pie_coxcomb_drilldown.mjs | 56 +- .../wNoFade_cases/1_des_pol/area/04a_are.mjs | 108 +- .../wNoFade_cases/1_des_pol/area/04b_are.mjs | 66 +- .../wNoFade_cases/1_des_pol/area/06a_are.mjs | 100 +- .../wNoFade_cases/1_des_pol/area/06b_are.mjs | 88 +- .../1_des_pol/area_V1/06b_are_V1.mjs | 68 +- .../1_des_pol/circle-rectangle/02_cir.mjs | 102 +- .../1_des_pol/circle-rectangle/03_cir.mjs | 100 +- .../1_des_pol/circle-rectangle/04_cir.mjs | 148 +- .../1_des_pol/circle-rectangle/05_cir.mjs | 170 +- .../1_des_pol/circle-rectangle/06_cir_NO.mjs | 170 +- .../1_des_pol/circle-rectangle/07_cir.mjs | 160 +- .../1_des_pol/circle-rectangle/08_cir.mjs | 178 +- .../circle-rectangle_Ve1/04_cir_Ve1.mjs | 156 +- .../circle-rectangle_Ve1/04_cir_Ve2.mjs | 152 +- .../circle-rectangle_Ve1/07_cir_Ve1.mjs | 160 +- .../1_des_pol/circle/04_cir_2c.mjs | 130 +- .../1_des_pol/circle/04a_cir_1c.mjs | 146 +- .../1_des_pol/circle/04b_cir_1c.mjs | 130 +- .../1_des_pol/circle/05_cir_2c.mjs | 150 +- .../1_des_pol/circle/05a_cir_1c.mjs | 174 +- .../1_des_pol/circle/05b_cir_1c.mjs | 166 +- .../1_des_pol/circle/06_cir_2c.mjs | 150 +- .../1_des_pol/circle/06a_cir_1c.mjs | 138 +- .../1_des_pol/circle/06b_cir_1c.mjs | 164 +- .../1_des_pol/circle/07_cir_2c.mjs | 140 +- .../1_des_pol/circle/08_cir_2c.mjs | 148 +- .../wNoFade_cases/1_des_pol/line/04a_lin.mjs | 102 +- .../wNoFade_cases/1_des_pol/line/04b_lin.mjs | 100 +- .../wNoFade_cases/1_des_pol/line/05a_lin.mjs | 102 +- .../wNoFade_cases/1_des_pol/line/05b_lin.mjs | 126 +- .../wNoFade_cases/1_des_pol/line/06a_lin.mjs | 86 +- .../wNoFade_cases/1_des_pol/line/06b_lin.mjs | 120 +- .../1_des_pol/rectangle/04a_rec_1c.mjs | 118 +- .../1_des_pol/rectangle/04a_rec_2c.mjs | 132 +- .../1_des_pol/rectangle/04b_rec_1c.mjs | 102 +- .../1_des_pol/rectangle/04b_rec_2c.mjs | 106 +- .../1_des_pol/rectangle/05a_rec_2c.mjs | 152 +- .../1_des_pol/rectangle/05b_rec_2c.mjs | 130 +- .../1_des_pol/rectangle/06a_rec_1c.mjs | 136 +- .../1_des_pol/rectangle/06a_rec_2c.mjs | 150 +- .../1_des_pol/rectangle/06b_rec_1c.mjs | 130 +- .../1_des_pol/rectangle/06b_rec_2c.mjs | 130 +- .../1_des_pol/rectangle/07a_rec_1c.mjs | 128 +- .../1_des_pol/rectangle/07a_rec_2c.mjs | 136 +- .../1_des_pol/rectangle/08a_rec_2c.mjs | 132 +- .../rectangle/09_rec_TemporalDistribution.mjs | 458 +- .../1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs | 106 +- .../1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs | 100 +- .../rectangle_Ve1/04a_rec_Ve1_1c.mjs | 188 +- .../rectangle_Ve1/04a_rec_Ve1_2c.mjs | 174 +- .../rectangle_Ve1/05a_rec_Ve1_2c.mjs | 186 +- .../rectangle_Ve1/06a_rec_Ve1_1c.mjs | 188 +- .../rectangle_Ve1/07a_rec_Ve1_2c.mjs | 156 +- .../rectangle_Ve1/07a_rec_Ve2_2c.mjs | 156 +- .../rectangle_Ve1/08a_rec_Ve1_2c.mjs | 156 +- .../area-rectangle/03_d-w_are.mjs | 98 +- .../area-rectangle/04a_d-w_are.mjs | 180 +- .../area-rectangle/04b_d-w_are.mjs | 118 +- .../area-rectangle/06a_d-w_are.mjs | 178 +- .../area-rectangle/06b_d-w_are.mjs | 136 +- .../10_d-w_are_temporal_bubble.mjs | 106 +- .../2_des_pol-without/area/03_d-w_are.mjs | 96 +- .../2_des_pol-without/area/04a_d-w_are.mjs | 178 +- .../2_des_pol-without/area/04b_d-w_are.mjs | 116 +- .../2_des_pol-without/area/06a_d-w_are.mjs | 176 +- .../2_des_pol-without/area/06b_d-w_are.mjs | 134 +- .../area/10_d-w_are_temporal_bubble.mjs | 118 +- .../area_V1/03_d-w_are_V1.mjs | 74 +- .../area_V1/04a_d-w_are_V1.mjs | 124 +- .../area_V1/04b_d-w_are_V1.mjs | 94 +- .../area_V1/06b_d-w_are_V1.mjs | 118 +- .../area_V1/06b_d-w_are_V1_filter.mjs | 194 +- .../circle-rectangle/04a_d-w_cir_1c.mjs | 190 +- .../circle-rectangle/04a_d-w_cir_V1_1c.mjs | 164 +- .../2_des_pol-without/circle/02_d-w_cir.mjs | 86 +- .../2_des_pol-without/circle/03_d-w_cir.mjs | 106 +- .../circle/04_d-w_cir_2c.mjs | 156 +- .../circle/04a_d-w_cir_1c.mjs | 172 +- .../circle/04b_d-w_cir_1c.mjs | 166 +- .../circle/05_d-w_cir_2c.mjs | 160 +- .../circle/05a_d-w_cir_1c.mjs | 202 +- .../circle/05b_d-w_cir_1c.mjs | 192 +- .../circle/06_d-w_cir_2c.mjs | 184 +- .../circle/06a_d-w_cir_1c.mjs | 200 +- .../circle/06b_d-w_cir_1c.mjs | 188 +- .../circle/07_d-w_cir_2c.mjs | 170 +- .../circle/08_d-w_cir_2c.mjs | 192 +- .../circle_V1/03_d-w_cir_V1.mjs | 84 +- .../circle_V1/04_d-w_cir_V1_2c.mjs | 136 +- .../circle_V1/04a_d-w_cir_V1_1c.mjs | 146 +- .../circle_V1/04b_d-w_cir_V1_1c.mjs | 142 +- .../circle_V1/05_d-w_cir_V1_2c.mjs | 136 +- .../circle_V1/05b_d-w_cir_V1_1c.mjs | 168 +- .../circle_V1/06_d-w_cir_V1_2c.mjs | 136 +- .../circle_V1/07_d-w_cir_V1_2c.mjs | 144 +- .../circle_V1/08_d-w_cir_V1_2c.mjs | 144 +- .../line-rectangle/02_d-d_lin.mjs | 104 +- .../line-rectangle/02_d-w_lin.mjs | 112 +- .../line-rectangle/03_d-w_lin.mjs | 96 +- .../line-rectangle/04a_d-w_lin.mjs | 150 +- .../line-rectangle/04b_d-w_lin.mjs | 156 +- .../line-rectangle/05a_d-w_lin.mjs | 192 +- .../line-rectangle/05b_d-w_lin.mjs | 184 +- .../line-rectangle/06a_d-w_lin.mjs | 150 +- .../line-rectangle/06b_d-w_lin.mjs | 180 +- .../2_des_pol-without/line/02_d-w_lin.mjs | 110 +- .../2_des_pol-without/line/03_d-w_lin.mjs | 94 +- .../2_des_pol-without/line/04a_d-w_lin.mjs | 148 +- .../2_des_pol-without/line/04b_d-w_lin.mjs | 154 +- .../2_des_pol-without/line/05a_d-w_lin.mjs | 190 +- .../2_des_pol-without/line/05b_d-w_lin.mjs | 182 +- .../2_des_pol-without/line/06a_d-w_lin.mjs | 148 +- .../2_des_pol-without/line/06b_d-w_lin.mjs | 178 +- .../line_V1/02_d-w_lin_V1.mjs | 86 +- .../line_V1/03_d-w_lin_V1.mjs | 72 +- .../line_V1/04a_d-w_lin_V1.mjs | 126 +- .../line_V1/04b_d-w_lin_V1.mjs | 130 +- .../line_V1/05a_d-w_lin_V1.mjs | 134 +- .../line_V1/05b_d-w_lin_V1.mjs | 158 +- .../line_V1/06a_d-w_lin_V1.mjs | 154 +- .../line_V1/06b_d-w_lin_V1.mjs | 126 +- .../rectangle/02_d-w_rec.mjs | 84 +- .../rectangle/03_d-w_rec.mjs | 104 +- .../rectangle/04a_d-w_rec_1c.mjs | 142 +- .../rectangle/04a_d-w_rec_2c.mjs | 158 +- .../rectangle/04b_d-w_rec_1c.mjs | 126 +- .../rectangle/04b_d-w_rec_2c.mjs | 130 +- .../rectangle/05a_d-w_rec_2c.mjs | 178 +- .../rectangle/05b_d-w_rec_2c.mjs | 156 +- .../rectangle/06a_d-w_rec_1c.mjs | 170 +- .../rectangle/06b_d-w_rec_1c.mjs | 148 +- .../rectangle/06b_d-w_rec_2c.mjs | 158 +- .../rectangle/07a_d-w_rec_1c.mjs | 154 +- .../rectangle/07a_d-w_rec_2c.mjs | 160 +- .../rectangle/08a_d-w_rec_2c.mjs | 160 +- .../rectangle_V1/03_d-w_rec_V1.mjs | 84 +- .../rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs | 162 +- .../rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs | 170 +- .../rectangle_V1/04b_d-w_rec_1c_V1.mjs | 106 +- .../rectangle_V1/04b_d-w_rec_2c_V1.mjs | 106 +- .../rectangle_V1/05b_d-w_rec_2c_V1.mjs | 142 +- .../rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs | 156 +- .../rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs | 144 +- .../rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs | 212 +- .../rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs | 190 +- .../rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs | 212 +- .../rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs | 212 +- .../rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs | 228 +- .../rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs | 182 +- .../07a_d-w_rec_Ve1_2c_filter.mjs | 176 +- .../rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs | 200 +- .../rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs | 194 +- .../rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs | 144 +- .../rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs | 184 +- .../wNoFade_wPromotion/0_01_reorder.mjs | 158 +- .../wNoFade_wPromotion/1_06b_are.mjs | 92 +- .../wNoFade_wPromotion/2_05b_lin.mjs | 90 +- .../ww_noFade/wNoFade_wPromotion/3_04_cir.mjs | 110 +- .../wNoFade_wPromotion/4_06b_rec_1c.mjs | 102 +- .../wNoFade_wPromotion/4a_06b_rec_1c.mjs | 92 +- .../wNoFade_wPromotion/5_04a_rec_1c.mjs | 74 +- .../wNoFade_wPromotion/6_04a_cir_1c.mjs | 80 +- .../wNoFade_wPromotion/7_05_cir_2c.mjs | 78 +- .../wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs | 114 +- .../wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs | 116 +- .../wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs | 100 +- .../cartesian_coo_sys/01_C_R_histogram.mjs | 88 +- .../03_C_R_grouped_column_chart_negative.mjs | 50 +- .../05_C_R_split_column_chart.mjs | 36 +- .../06_C_R_100_stacked_column_chart.mjs | 52 +- .../07_C_R_range_column_chart.mjs | 64 +- .../cartesian_coo_sys/08_C_R_waterfall.mjs | 73 +- .../09_C_R_stacked_mekko_chart.mjs | 42 +- .../10_C_R_marimekko_chart.mjs | 44 +- .../112_C_R_icicle_chart.mjs | 80 +- .../cartesian_coo_sys/11_C_R_icicle_chart.mjs | 82 +- .../cartesian_coo_sys/12_C_R_matrix_chart.mjs | 42 +- .../13_C_R_bar_chart_negative.mjs | 50 +- .../14_C_R_grouped_bar_chart_negative.mjs | 50 +- .../16_C_R_splitted_bar_chart.mjs | 36 +- .../17_C_R_100_stacked_bar_chart.mjs | 52 +- .../19_C_R_range_bar_chart.mjs | 64 +- .../201_C_C_devided_lollipop_chart.mjs | 36 +- .../20_C_C_lollipop_chart.mjs | 36 +- .../21_C_C_dot_plot_chart.mjs | 34 +- .../cartesian_coo_sys/22_C_C_scatter_plot.mjs | 36 +- .../cartesian_coo_sys/24_C_C_bubble_plot.mjs | 38 +- .../cartesian_coo_sys/25_C_C_correlogram.mjs | 36 +- .../cartesian_coo_sys/27_C_A_area_chart.mjs | 34 +- .../27_C_A_area_chart_negative.mjs | 34 +- ...A_stacked_area_chart_percentage_labels.mjs | 36 +- .../30_C_A_overlay_area_chart.mjs | 64 +- .../31_C_A_splitted_area_chart.mjs | 52 +- .../cartesian_coo_sys/32_C_A_stream_graph.mjs | 62 +- .../33_C_A_stream_graph_vert.mjs | 62 +- .../cartesian_coo_sys/34_C_A_violin_graph.mjs | 64 +- .../35_C_A_violin_graph_vert.mjs | 64 +- .../36_C_A_range_area_chart.mjs | 66 +- .../371_C_L_line_chart_nega.mjs | 32 +- .../cartesian_coo_sys/37_C_A_funnel.mjs | 66 +- .../38_C_L_line_chart_nega.mjs | 50 +- .../39_C_L_line_chart_vert.mjs | 50 +- .../41_P_R_multi-level_pie_chart.mjs | 60 +- .../43_P_R_polar_column_chart_Yrange.mjs | 34 +- .../46_P_R_coxcomb_nightingale_rose_chart.mjs | 68 +- .../polar_coo_sys/47_P_R_polar_area_chart.mjs | 50 +- .../48_P_R_polar_range_column_chart.mjs | 70 +- .../52_P_R_nested_multi_level_donut_chart.mjs | 66 +- .../53_P_C_polar_scatter_plot.mjs | 36 +- .../polar_coo_sys/54_P_A_area_trump_chart.mjs | 60 +- .../551_P_A_polar_stream_graph.mjs | 50 +- .../55_P_A_polar_overlay_area_chart.mjs | 66 +- .../polar_coo_sys/56_P_A_polar_line_chart.mjs | 50 +- .../601_W_R_heatmap_gradient.mjs | 72 +- .../without_coo_sys/602_W_R_heatmap3.mjs | 42 +- .../without_coo_sys/60_W_R_heatmap.mjs | 46 +- .../operations/01_drilldown/Bar_Bar.mjs | 56 +- .../01_drilldown/Column_Stacked_Column.mjs | 56 +- .../operations/02_sum/Area_Stacked_Area.mjs | 58 +- .../operations/02_sum/Bubble_Bubble.mjs | 86 +- .../02_sum/Column_Groupped_Column_1.mjs | 54 +- .../02_sum/Column_Groupped_Column_2.mjs | 56 +- .../02_sum/Column_Groupped_Column_to_Bar.mjs | 54 +- .../02_sum/Column_Stacked_Column_1.mjs | 52 +- .../02_sum/Column_Stacked_Column_2.mjs | 56 +- .../02_sum/Coxcomb_Coxcomb_to_Donut.mjs | 56 +- .../operations/02_sum/Line_Line_3.mjs | 58 +- .../Bubble_Stacked_Bubble_to_Area.mjs | 66 +- .../Bubble_Stacked_Bubble_to_Line.mjs | 66 +- .../Treemap_Stacked_Treemap_to_Area.mjs | 66 +- test/integration/test_data/IMDB_data.mjs | 2240 +- test/integration/test_data/capitals.mjs | 454 +- .../integration/test_data/chart_precision.mjs | 54 +- test/integration/test_data/chart_types_eu.mjs | 854 +- .../test_data/correlogram_data.mjs | 142 +- test/integration/test_data/cube_test_data.mjs | 30 +- .../test_data/data_missing_long.mjs | 474 +- .../data_missing_long_more_conti.mjs | 584 +- .../test_data/data_missing_long_more_disc.mjs | 494 +- test/integration/test_data/funnel_data.mjs | 24 +- test/integration/test_data/icicle.mjs | 480 +- test/integration/test_data/icicle2.mjs | 178 +- test/integration/test_data/infinite_data.mjs | 64714 ++++++++-------- test/integration/test_data/music_data.mjs | 86 +- .../test_data/music_industry_history_1.mjs | 464 +- test/integration/test_data/sunburst.mjs | 324 +- test/integration/test_data/sunburst2.mjs | 178 +- test/integration/test_data/tutorial.mjs | 490 +- test/integration/tests/chart.mjs | 48 +- test/integration/tests/config.mjs | 70 +- test/integration/tests/config_tests.json | 90 +- .../config_tests/dimension_axis_title.mjs | 56 +- .../tests/config_tests/geometry.mjs | 452 +- test/integration/tests/data.mjs | 80 +- test/integration/tests/features.json | 60 +- .../features/aggregators/aggregators.mjs | 136 +- .../aggregators/aggregators_together.mjs | 60 +- .../integration/tests/features/anim/speed.mjs | 60 +- .../tests/features/axis_title_positioning.mjs | 104 +- .../tests/features/cssproperties.mjs | 68 +- .../features/data_input/object_records.mjs | 62 +- .../tests/features/events/drawing_events.mjs | 230 +- test/integration/tests/features/presets.mjs | 68 +- .../tests/features/subtitle_caption.mjs | 52 +- test/integration/tests/fixes.json | 72 +- test/integration/tests/fixes/144.mjs | 80 +- test/integration/tests/fixes/146.mjs | 32 +- test/integration/tests/fixes/163.mjs | 32 +- test/integration/tests/fixes/32303048.mjs | 42 +- test/integration/tests/fixes/333.mjs | 32 +- test/integration/tests/fixes/38072036.mjs | 60 +- test/integration/tests/fixes/41932946.mjs | 34 +- test/integration/tests/fixes/42836788.mjs | 68 +- test/integration/tests/fixes/450.mjs | 40 +- test/integration/tests/fixes/75.mjs | 56 +- test/integration/tests/fixes/91.mjs | 40 +- test/integration/tests/style_tests.json | 2058 +- .../style_tests/plot/backgroundColor/err.mjs | 180 +- .../style_tests/plot/backgroundColor/hex.mjs | 504 +- .../style_tests/plot/backgroundColor/hexa.mjs | 700 +- .../plot/backgroundColor/hexshort.mjs | 308 +- .../style_tests/plot/backgroundColor/rgb.mjs | 504 +- .../style_tests/plot/backgroundColor/rgba.mjs | 700 +- .../style_tests/plot/borderColor/hexa.mjs | 208 +- .../tests/style_tests/plot/borderWidth.mjs | 182 +- .../tests/style_tests/plot/paddingBottom.mjs | 140 +- .../tests/style_tests/plot/paddingLeft.mjs | 140 +- .../tests/style_tests/plot/paddingRight.mjs | 140 +- .../tests/style_tests/plot/paddingTop.mjs | 140 +- .../style_tests/plot/xAxis/color/hexa.mjs | 228 +- .../plot/xAxis/interlacing/color/hexa.mjs | 260 +- .../plot/xAxis/label/angle/deg.mjs | 246 +- .../plot/xAxis/label/angle/grad.mjs | 246 +- .../plot/xAxis/label/angle/number.mjs | 246 +- .../plot/xAxis/label/angle/rad.mjs | 246 +- .../plot/xAxis/label/angle/turn.mjs | 246 +- .../plot/xAxis/label/backgroundColor/hexa.mjs | 260 +- .../plot/xAxis/label/color/hexa.mjs | 260 +- .../label/fontSize/elementFontPercentage.mjs | 224 +- .../label/fontSize/elementPercentage.mjs | 224 +- .../plot/xAxis/label/fontSize/number.mjs | 224 +- .../plot/xAxis/label/fontSize/pixel.mjs | 224 +- .../plot/xAxis/label/fontStyle.mjs | 456 +- .../plot/xAxis/label/fontWeight.mjs | 448 +- .../plot/xAxis/label/orientation.mjs | 376 +- .../plot/xAxis/label/paddingBottom.mjs | 204 +- .../plot/xAxis/label/paddingLeft.mjs | 188 +- .../plot/xAxis/label/paddingRight.mjs | 188 +- .../plot/xAxis/label/paddingTop.mjs | 188 +- .../style_tests/plot/xAxis/label/position.mjs | 456 +- .../style_tests/plot/xAxis/label/side.mjs | 188 +- .../plot/xAxis/label/textAlign.mjs | 456 +- .../plot/xAxis/ticks/color/hexa.mjs | 284 +- .../ticks/length/elementFontPercentage.mjs | 224 +- .../xAxis/ticks/length/elementPercentage.mjs | 224 +- .../plot/xAxis/ticks/length/number.mjs | 224 +- .../plot/xAxis/ticks/length/pixel.mjs | 224 +- .../plot/xAxis/ticks/lineWidth.mjs | 224 +- .../style_tests/plot/xAxis/ticks/position.mjs | 456 +- .../style_tests/plot/yAxis/color/hexa.mjs | 228 +- .../plot/yAxis/interlacing/color/hexa.mjs | 260 +- .../plot/yAxis/ticks/color/hexa.mjs | 284 +- .../ticks/length/elementFontPercentage.mjs | 224 +- .../yAxis/ticks/length/elementPercentage.mjs | 224 +- .../plot/yAxis/ticks/length/number.mjs | 224 +- .../plot/yAxis/ticks/length/pixel.mjs | 224 +- .../plot/yAxis/ticks/lineWidth.mjs | 188 +- .../style_tests/plot/yAxis/ticks/position.mjs | 456 +- .../tools/manual/client/frame.html | 31 +- test/integration/tools/manual/client/frame.js | 191 +- .../tools/manual/client/index.html | 58 +- test/integration/tools/manual/client/index.js | 422 +- .../tools/manual/client/test-case.js | 162 +- .../tools/manual/client/test-lib.js | 20 +- test/integration/tools/manual/client/url.js | 20 +- .../tools/manual/server/handlers/libs.cjs | 157 +- .../manual/server/handlers/test-case.cjs | 474 +- .../tools/manual/server/handlers/tests.cjs | 124 +- test/integration/tools/manual/server/main.cjs | 108 +- .../tools/manual/shared/test-case.js | 46 +- test/integration/utils/lastanimation.mjs | 42 +- test/integration/utils/mouse.mjs | 96 +- test/integration/utils/testcontrol.mjs | 18 +- .../utils/vizzu-markerdropshadow.mjs | 148 +- test/integration/utils/vizzu-pptxgen.mjs | 108 +- test/integration/utils/vizzu-videocapture.mjs | 100 +- test/unit/apps/weblib/js-api/cssutils.test.js | 241 +- test/unit/apps/weblib/js-api/unpivot.test.js | 594 +- test/unit/jest.config.js | 34 +- tools/ci/gcp/cloudbucket/CORS/cors.json | 14 +- tools/ci/gcp/cloudbuild/cloudbuild.yaml | 528 +- .../gcp/cloudfunctions/getVizzuList/index.js | 54 +- .../cloudfunctions/getVizzuList/package.json | 18 +- tools/ci/purge.cjs | 128 +- tools/ci/rollup.config.cjs | 36 +- tools/ci/sizeCheck.cjs | 42 +- tools/ci/type/gen-canvas-h.cjs | 26 +- tools/ci/type/gen-canvas-js.cjs | 26 +- tools/ci/type/gen-canvas-ts.cjs | 26 +- tools/ci/type/gen-dts.cjs | 562 +- tools/ci/type/gen-presets.cjs | 222 +- tools/ci/type/gen-simple.cjs | 52 +- tools/ci/version.cjs | 8 +- tools/docs/examples/gen_webcontent_hash.cjs | 54 +- tools/docs/examples/mjs2csv.mjs | 74 +- tools/docs/examples/mjs2js.mjs | 4 +- tools/docs/examples/mjs2md.mjs | 162 +- tools/docs/mkdocs.yml | 240 +- tools/docs/overrides/main.html | 14 +- tools/docs/overrides/mike/redirect.html | 70 +- tools/docs/reference/gen_reference.cjs | 48 +- tools/docs/style/gen_style_reference.mjs | 100 +- 1395 files changed, 122147 insertions(+), 121850 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 79fc5670c..f20d9e195 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,31 +1,31 @@ module.exports = { - env: { - browser: true, - jest: true - }, - extends: ['standard', 'prettier'], - root: true, - parserOptions: { - ecmaVersion: 'latest' - }, - overrides: [ - { - files: ['test/integration/test_cases/**', 'test/integration/test_data/**'], - rules: { - camelcase: 'off' - } - }, - { - files: ['*.ts', '*.tsx'], - extends: ['standard', 'prettier', 'plugin:@typescript-eslint/recommended'], - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], - rules: { - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': 'error', - '@typescript-eslint/explicit-function-return-type': ['error'] - } - } - ], - ignorePatterns: ['**/dist/**', '!.puppeteerrc.cjs'] + env: { + browser: true, + jest: true + }, + extends: ['standard', 'prettier'], + root: true, + parserOptions: { + ecmaVersion: 'latest' + }, + overrides: [ + { + files: ['test/integration/test_cases/**', 'test/integration/test_data/**'], + rules: { + camelcase: 'off' + } + }, + { + files: ['*.ts', '*.tsx'], + extends: ['standard', 'prettier', 'plugin:@typescript-eslint/recommended'], + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + rules: { + 'no-use-before-define': 'off', + '@typescript-eslint/no-use-before-define': 'error', + '@typescript-eslint/explicit-function-return-type': ['error'] + } + } + ], + ignorePatterns: ['**/dist/**', '!.puppeteerrc.cjs'] } diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 7eb5414b9..e63f33248 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -1,14 +1,14 @@ name: CD on: - release: - types: [published] + release: + types: [published] jobs: - publish: - runs-on: ubuntu-22.04 + publish: + runs-on: ubuntu-22.04 - steps: - - name: Trigger Cloud Build - run: | - curl -X POST -H "Content-type: application/json" "https://cloudbuild.googleapis.com/v1/projects/vizzu-ci/triggers/vizzu-lib-release:webhook?key=${{ secrets.VIZZUHQ_GCP_BUILD }}" -d "{}" + steps: + - name: Trigger Cloud Build + run: | + curl -X POST -H "Content-type: application/json" "https://cloudbuild.googleapis.com/v1/projects/vizzu-ci/triggers/vizzu-lib-release:webhook?key=${{ secrets.VIZZUHQ_GCP_BUILD }}" -d "{}" diff --git a/.github/workflows/docker-vizzu-dev-desktop.yml b/.github/workflows/docker-vizzu-dev-desktop.yml index e0174fb99..ea044f996 100644 --- a/.github/workflows/docker-vizzu-dev-desktop.yml +++ b/.github/workflows/docker-vizzu-dev-desktop.yml @@ -1,29 +1,29 @@ name: Docker publish vizzu-dev-desktop on: - push: - branches-ignore: - - main - paths: - - '**/vizzu-dev-desktop' - - '**/docker-vizzu-dev-desktop.yml' + push: + branches-ignore: + - main + paths: + - '**/vizzu-dev-desktop' + - '**/docker-vizzu-dev-desktop.yml' jobs: - publish: - runs-on: ubuntu-22.04 + publish: + runs-on: ubuntu-22.04 - steps: - - name: Checkout repo - uses: actions/checkout@v3 - with: - fetch-depth: 1 + steps: + - name: Checkout repo + uses: actions/checkout@v3 + with: + fetch-depth: 1 - - name: Login to Docker - run: echo ${{ secrets.VIZZUHQ_DOCKER_API }} | docker login -u ${{ secrets.VIZZUHQ_DOCKER_USER }} --password-stdin + - name: Login to Docker + run: echo ${{ secrets.VIZZUHQ_DOCKER_API }} | docker login -u ${{ secrets.VIZZUHQ_DOCKER_USER }} --password-stdin - - name: Build and Publish - run: | - IMAGE="vizzu-dev-desktop" - IMAGE_NAME="vizzu/$IMAGE:0.9" - docker build -t $IMAGE_NAME -f tools/ci/docker/$IMAGE . - docker push $IMAGE_NAME + - name: Build and Publish + run: | + IMAGE="vizzu-dev-desktop" + IMAGE_NAME="vizzu/$IMAGE:0.9" + docker build -t $IMAGE_NAME -f tools/ci/docker/$IMAGE . + docker push $IMAGE_NAME diff --git a/.github/workflows/docker-vizzu-dev-wasm.yml b/.github/workflows/docker-vizzu-dev-wasm.yml index ea8359038..2be21bdd2 100644 --- a/.github/workflows/docker-vizzu-dev-wasm.yml +++ b/.github/workflows/docker-vizzu-dev-wasm.yml @@ -1,29 +1,29 @@ name: Docker publish vizzu-dev-wasm on: - push: - branches-ignore: - - main - paths: - - '**/vizzu-dev-wasm' - - '**/docker-vizzu-dev-wasm.yml' + push: + branches-ignore: + - main + paths: + - '**/vizzu-dev-wasm' + - '**/docker-vizzu-dev-wasm.yml' jobs: - publish: - runs-on: ubuntu-22.04 + publish: + runs-on: ubuntu-22.04 - steps: - - name: Checkout repo - uses: actions/checkout@v3 - with: - fetch-depth: 1 + steps: + - name: Checkout repo + uses: actions/checkout@v3 + with: + fetch-depth: 1 - - name: Login to Docker - run: echo ${{ secrets.VIZZUHQ_DOCKER_API }} | docker login -u ${{ secrets.VIZZUHQ_DOCKER_USER }} --password-stdin + - name: Login to Docker + run: echo ${{ secrets.VIZZUHQ_DOCKER_API }} | docker login -u ${{ secrets.VIZZUHQ_DOCKER_USER }} --password-stdin - - name: Build and Publish - run: | - IMAGE="vizzu-dev-wasm" - IMAGE_NAME="vizzu/$IMAGE:0.9" - docker build -t $IMAGE_NAME -f tools/ci/docker/$IMAGE . - docker push $IMAGE_NAME + - name: Build and Publish + run: | + IMAGE="vizzu-dev-wasm" + IMAGE_NAME="vizzu/$IMAGE:0.9" + docker build -t $IMAGE_NAME -f tools/ci/docker/$IMAGE . + docker push $IMAGE_NAME diff --git a/.puppeteerrc.cjs b/.puppeteerrc.cjs index 2bec0d29e..c3a93fc4b 100644 --- a/.puppeteerrc.cjs +++ b/.puppeteerrc.cjs @@ -1,5 +1,5 @@ const { join } = require('path') module.exports = { - cacheDirectory: join(__dirname, 'node_modules', '.cache', 'puppeteer') + cacheDirectory: join(__dirname, 'node_modules', '.cache', 'puppeteer') } diff --git a/docs/assets/data/music_data.js b/docs/assets/data/music_data.js index 7eaa5bccf..2e7facc1a 100644 --- a/docs/assets/data/music_data.js +++ b/docs/assets/data/music_data.js @@ -1,47 +1,47 @@ const data = { - series: [ - { - name: 'Genres', - type: 'dimension', - values: [ - 'Pop', - 'Rock', - 'Jazz', - 'Metal', - 'Pop', - 'Rock', - 'Jazz', - 'Metal', - 'Pop', - 'Rock', - 'Jazz', - 'Metal' - ] - }, - { - name: 'Kinds', - type: 'dimension', - values: [ - 'Hard', - 'Hard', - 'Hard', - 'Hard', - 'Smooth', - 'Experimental', - 'Smooth', - 'Smooth', - 'Experimental', - 'Experimental', - 'Experimental', - 'Experimental' - ] - }, - { - name: 'Popularity', - type: 'measure', - values: [114, 96, 78, 52, 56, 36, 174, 121, 127, 83, 94, 58] - } - ] + series: [ + { + name: 'Genres', + type: 'dimension', + values: [ + 'Pop', + 'Rock', + 'Jazz', + 'Metal', + 'Pop', + 'Rock', + 'Jazz', + 'Metal', + 'Pop', + 'Rock', + 'Jazz', + 'Metal' + ] + }, + { + name: 'Kinds', + type: 'dimension', + values: [ + 'Hard', + 'Hard', + 'Hard', + 'Hard', + 'Smooth', + 'Experimental', + 'Smooth', + 'Smooth', + 'Experimental', + 'Experimental', + 'Experimental', + 'Experimental' + ] + }, + { + name: 'Popularity', + type: 'measure', + values: [114, 96, 78, 52, 56, 36, 174, 121, 127, 83, 94, 58] + } + ] } export default data diff --git a/docs/assets/data/music_data.json b/docs/assets/data/music_data.json index 6122ee6c4..ad77c4cbf 100644 --- a/docs/assets/data/music_data.json +++ b/docs/assets/data/music_data.json @@ -1,16 +1,16 @@ { - "dimensions": [ - { "name": "Genres", "values": ["Pop", "Rock", "Jazz", "Metal"] }, - { "name": "Kinds", "values": ["Hard", "Smooth", "Experimental"] } - ], - "measures": [ - { - "name": "Popularity", - "values": [ - [114, 96, 78, 52], - [56, 36, 174, 121], - [127, 83, 94, 58] - ] - } - ] + "dimensions": [ + { "name": "Genres", "values": ["Pop", "Rock", "Jazz", "Metal"] }, + { "name": "Kinds", "values": ["Hard", "Smooth", "Experimental"] } + ], + "measures": [ + { + "name": "Popularity", + "values": [ + [114, 96, 78, 52], + [56, 36, 174, 121], + [127, 83, 94, 58] + ] + } + ] } diff --git a/docs/assets/javascripts/analytics/head.js b/docs/assets/javascripts/analytics/head.js index dcafd5700..42d4658d3 100644 --- a/docs/assets/javascripts/analytics/head.js +++ b/docs/assets/javascripts/analytics/head.js @@ -5,7 +5,7 @@ plausibleBasic.src = 'https://plausible.io/js/script.outbound-links.js' const plausibleOutboundLinkTracking = document.createElement('script') plausibleOutboundLinkTracking.textContent = - 'window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }' + 'window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }' const documentHeadElement = document.getElementsByTagName('head')[0] documentHeadElement.appendChild(plausibleBasic) diff --git a/docs/assets/javascripts/csv2js.js b/docs/assets/javascripts/csv2js.js index a9058096e..8ebcf6361 100644 --- a/docs/assets/javascripts/csv2js.js +++ b/docs/assets/javascripts/csv2js.js @@ -1,48 +1,49 @@ import * as d3 from 'https://cdn.jsdelivr.net/npm/d3@7/+esm' class Csv2Js { - static csv(csv, dimensions, measures) { - return new Promise((resolve, reject) => { - if (!dimensions) { - dimensions = [] - } - if (!measures) { - measures = [] - } - const detectedDimensions = {} - const data = { series: [], records: [] } - const csvLoaded = d3.csv(csv) + static csv(csv, dimensions, measures) { + return new Promise((resolve, reject) => { + if (!dimensions) { + dimensions = [] + } + if (!measures) { + measures = [] + } + const detectedDimensions = {} + const data = { series: [], records: [] } + const csvLoaded = d3.csv(csv) - csvLoaded.then((csvData) => { - for (let i = 0; i < csvData.length; i++) { - const record = [] - const keys = Object.keys(csvData[i]) - for (const key of keys) { - const numValue = +csvData[i][key] - if (csvData[i][key] !== '' && !isNaN(numValue)) { - record.push(numValue) - } else { - record.push(csvData[i][key]) - detectedDimensions[key] = true - } - } - data.records.push(record) - } - for (let i = 0; i < csvData.columns.length; i++) { - const key = csvData.columns[i] - const series = { - name: key, - type: - dimensions.includes(key) || (detectedDimensions[key] && !measures.includes(key)) - ? 'dimension' - : 'measure' - } - data.series.push(series) - } - return resolve(data) - }) - }) - } + csvLoaded.then((csvData) => { + for (let i = 0; i < csvData.length; i++) { + const record = [] + const keys = Object.keys(csvData[i]) + for (const key of keys) { + const numValue = +csvData[i][key] + if (csvData[i][key] !== '' && !isNaN(numValue)) { + record.push(numValue) + } else { + record.push(csvData[i][key]) + detectedDimensions[key] = true + } + } + data.records.push(record) + } + for (let i = 0; i < csvData.columns.length; i++) { + const key = csvData.columns[i] + const series = { + name: key, + type: + dimensions.includes(key) || + (detectedDimensions[key] && !measures.includes(key)) + ? 'dimension' + : 'measure' + } + data.series.push(series) + } + return resolve(data) + }) + }) + } } export default Csv2Js diff --git a/docs/assets/javascripts/extlinks.js b/docs/assets/javascripts/extlinks.js index 8c2c44658..66e982f56 100644 --- a/docs/assets/javascripts/extlinks.js +++ b/docs/assets/javascripts/extlinks.js @@ -1,19 +1,19 @@ function changeTarget(links, target) { - for (let i = 0; i < links.length; i++) { - if (links[i].hostname !== window.location.hostname || links[i].href.includes('/assets/')) { - links[i].target = target - } - } + for (let i = 0; i < links.length; i++) { + if (links[i].hostname !== window.location.hostname || links[i].href.includes('/assets/')) { + links[i].target = target + } + } } document.addEventListener('DOMContentLoaded', (event) => { - const target = '_blank' - changeTarget(document.links, target) + const target = '_blank' + changeTarget(document.links, target) - const iframe = document.getElementById('coviframe') - if (iframe) { - iframe.addEventListener('load', (event) => { - changeTarget(iframe.contentWindow.document.getElementsByTagName('a'), target) - }) - } + const iframe = document.getElementById('coviframe') + if (iframe) { + iframe.addEventListener('load', (event) => { + changeTarget(iframe.contentWindow.document.getElementsByTagName('a'), target) + }) + } }) diff --git a/docs/assets/javascripts/highlight.js b/docs/assets/javascripts/highlight.js index 1cafce2a6..6e9b77a71 100644 --- a/docs/assets/javascripts/highlight.js +++ b/docs/assets/javascripts/highlight.js @@ -1,15 +1,15 @@ document.addEventListener('DOMContentLoaded', (event) => { - document.querySelectorAll('pre code').forEach((el) => { - if (window.location.href.includes('LICENSE')) { - return - } + document.querySelectorAll('pre code').forEach((el) => { + if (window.location.href.includes('LICENSE')) { + return + } - hljs.highlightElement(el) // eslint-disable-line no-undef - if ( - window.location.href.includes('/examples/') || - window.location.href.includes('/showcases/') - ) { - hljs.lineNumbersBlock(el) // eslint-disable-line no-undef - } - }) + hljs.highlightElement(el) // eslint-disable-line no-undef + if ( + window.location.href.includes('/examples/') || + window.location.href.includes('/showcases/') + ) { + hljs.lineNumbersBlock(el) // eslint-disable-line no-undef + } + }) }) diff --git a/docs/assets/javascripts/iframe/autoheight.js b/docs/assets/javascripts/iframe/autoheight.js index 66a21e892..fc9b3cde5 100644 --- a/docs/assets/javascripts/iframe/autoheight.js +++ b/docs/assets/javascripts/iframe/autoheight.js @@ -1,14 +1,14 @@ const iframe = document.getElementById('showcase') iframe.addEventListener('load', function () { - const childBody = iframe.contentWindow.document.body + const childBody = iframe.contentWindow.document.body - function resizeIframe() { - const childHeight = childBody.scrollHeight - iframe.style.height = childHeight + 50 + 'px' // todo: get showcase explorers size correctly - } + function resizeIframe() { + const childHeight = childBody.scrollHeight + iframe.style.height = childHeight + 50 + 'px' // todo: get showcase explorers size correctly + } - resizeIframe() + resizeIframe() - iframe.contentWindow.addEventListener('resize', resizeIframe) + iframe.contentWindow.addEventListener('resize', resizeIframe) }) diff --git a/docs/assets/javascripts/iframe/autoscale.js b/docs/assets/javascripts/iframe/autoscale.js index 79adaf2c3..cbaaaa103 100644 --- a/docs/assets/javascripts/iframe/autoscale.js +++ b/docs/assets/javascripts/iframe/autoscale.js @@ -1,19 +1,19 @@ const parent = window.frameElement if (parent) { - window.addEventListener('resize', () => { - const zoomElement = document.getElementById('zoom') - let availableWidth = parent.clientWidth - if (parent.clientWidth / parent.clientHeight > 1280 / 720) { - availableWidth = (1280 * parent.clientHeight) / 720 - } - const scale = availableWidth / 1280 - const translateY = (100 * (scale - 1)) / 2 - const translateX = (100 * (parent.clientWidth / 1280 - 1)) / 2 - const transform = `translate(${translateX}%, ${translateY}%) scale(${scale - 0.01})` - zoomElement.style.transform = transform - zoomElement.style.height = `${720 * scale}px` - if (window.autoAdjustHeight) { - window.autoAdjustHeight() - } - }) + window.addEventListener('resize', () => { + const zoomElement = document.getElementById('zoom') + let availableWidth = parent.clientWidth + if (parent.clientWidth / parent.clientHeight > 1280 / 720) { + availableWidth = (1280 * parent.clientHeight) / 720 + } + const scale = availableWidth / 1280 + const translateY = (100 * (scale - 1)) / 2 + const translateX = (100 * (parent.clientWidth / 1280 - 1)) / 2 + const transform = `translate(${translateX}%, ${translateY}%) scale(${scale - 0.01})` + zoomElement.style.transform = transform + zoomElement.style.height = `${720 * scale}px` + if (window.autoAdjustHeight) { + window.autoAdjustHeight() + } + }) } diff --git a/docs/assets/javascripts/iframe/click.js b/docs/assets/javascripts/iframe/click.js index 66885c7b4..662d8e122 100644 --- a/docs/assets/javascripts/iframe/click.js +++ b/docs/assets/javascripts/iframe/click.js @@ -1,7 +1,7 @@ const collection = document.getElementsByClassName('showcase') if (collection) { - collection[0].addEventListener('click', () => { - const iframe = document.getElementById('showcase') - iframe.src = iframe.src // eslint-disable-line no-self-assign - }) + collection[0].addEventListener('click', () => { + const iframe = document.getElementById('showcase') + iframe.src = iframe.src // eslint-disable-line no-self-assign + }) } diff --git a/docs/assets/javascripts/mdchart.js b/docs/assets/javascripts/mdchart.js index 3a8cf0cf6..2be79532b 100644 --- a/docs/assets/javascripts/mdchart.js +++ b/docs/assets/javascripts/mdchart.js @@ -1,96 +1,96 @@ import Vizzu from '../dist/vizzu.min.js' class MdChart { - constructor(data, id) { - this.data = data - this.id = id - } + constructor(data, id) { + this.data = data + this.id = id + } - create(snippets) { - let chart = Promise.resolve() - for (let i = 0; i < snippets.length; i++) { - const number = i + 1 - chart = this.animate(('0' + number).slice(-2), snippets[i], chart) - } - } + create(snippets) { + let chart = Promise.resolve() + for (let i = 0; i < snippets.length; i++) { + const number = i + 1 + chart = this.animate(('0' + number).slice(-2), snippets[i], chart) + } + } - restore(number, snippet, prevChart, snapshot, chart) { - const div = document.getElementById(this.id + '_' + number) + restore(number, snippet, prevChart, snapshot, chart) { + const div = document.getElementById(this.id + '_' + number) - return Promise.all([chart, prevChart]).then((results) => { - let chart = results[0] - const prevChart = results[1] - div.classList.remove('loading') - div.classList.add('playing') - let animTarget - if (snapshot && !prevChart) { - animTarget = snapshot - } else { - animTarget = {} - if (prevChart) { - animTarget.config = Object.assign({}, prevChart.config) - animTarget.style = Object.assign({}, prevChart.style) - // remove if it can be found in the prevChart - if (snippet.initDataFilter) { - animTarget.data = { filter: snippet.initDataFilter } - } - } - } - chart = chart.animate(animTarget) - chart.activated.then((control) => control.seek('100%')) - return chart - }) - } + return Promise.all([chart, prevChart]).then((results) => { + let chart = results[0] + const prevChart = results[1] + div.classList.remove('loading') + div.classList.add('playing') + let animTarget + if (snapshot && !prevChart) { + animTarget = snapshot + } else { + animTarget = {} + if (prevChart) { + animTarget.config = Object.assign({}, prevChart.config) + animTarget.style = Object.assign({}, prevChart.style) + // remove if it can be found in the prevChart + if (snippet.initDataFilter) { + animTarget.data = { filter: snippet.initDataFilter } + } + } + } + chart = chart.animate(animTarget) + chart.activated.then((control) => control.seek('100%')) + return chart + }) + } - animate(number, snippet, prevChart) { - const div = document.getElementById(this.id + '_' + number) - div.classList.add('loading') + animate(number, snippet, prevChart) { + const div = document.getElementById(this.id + '_' + number) + div.classList.add('loading') - let snapshot + let snapshot - let chart = new Vizzu(div, { data: this.data }).initializing + let chart = new Vizzu(div, { data: this.data }).initializing - chart = this.restore(number, snippet, prevChart, snapshot, chart) + chart = this.restore(number, snippet, prevChart, snapshot, chart) - chart = chart.then((chart) => { - snapshot = chart.store() - return chart - }) + chart = chart.then((chart) => { + snapshot = chart.store() + return chart + }) - let firstRun = true - let clicked = false - div.onclick = () => { - if (!clicked) { - clicked = true + let firstRun = true + let clicked = false + div.onclick = () => { + if (!clicked) { + clicked = true - chart = this.restore(number, snippet, prevChart, snapshot, chart) - chart.then(() => { - div.classList.remove('replay') - div.classList.add('playing') - }) - for (let i = 0; i < snippet.anims.length; i++) { - chart = chart.then((chart) => { - chart = snippet.anims[i](chart, {}) - if (this.id === 'tutorial' && firstRun && chart.activated) { - chart.activated.then((control) => control.seek('100%')) - } - return chart - }) - } - chart.then(() => { - div.classList.remove('playing') - div.classList.add('replay') - clicked = false - firstRun = false - }) + chart = this.restore(number, snippet, prevChart, snapshot, chart) + chart.then(() => { + div.classList.remove('replay') + div.classList.add('playing') + }) + for (let i = 0; i < snippet.anims.length; i++) { + chart = chart.then((chart) => { + chart = snippet.anims[i](chart, {}) + if (this.id === 'tutorial' && firstRun && chart.activated) { + chart.activated.then((control) => control.seek('100%')) + } + return chart + }) + } + chart.then(() => { + div.classList.remove('playing') + div.classList.add('replay') + clicked = false + firstRun = false + }) - return chart - } - } - div.click() + return chart + } + } + div.click() - return chart - } + return chart + } } export default MdChart diff --git a/docs/assets/javascripts/style_ref_allbtn.js b/docs/assets/javascripts/style_ref_allbtn.js index baec4b585..2abb48d9d 100644 --- a/docs/assets/javascripts/style_ref_allbtn.js +++ b/docs/assets/javascripts/style_ref_allbtn.js @@ -1,17 +1,17 @@ const pAll = document.getElementById('allbtn-style') const btnAll = pAll.getElementsByTagName('button')[0] pAll.addEventListener('click', function () { - const collapsible = btnAll.textContent.includes('-') - const coll = document.getElementsByClassName('collapsible-style') - for (let i = 0; i < coll.length; i++) { - const button = coll[i].getElementsByTagName('button')[0] - if (collapsible && button.textContent.includes('-')) { - coll[i].click() - btnAll.textContent = '+ expand all' - } - if (!collapsible && button.textContent.includes('+')) { - coll[i].click() - btnAll.textContent = '- collapse all' - } - } + const collapsible = btnAll.textContent.includes('-') + const coll = document.getElementsByClassName('collapsible-style') + for (let i = 0; i < coll.length; i++) { + const button = coll[i].getElementsByTagName('button')[0] + if (collapsible && button.textContent.includes('-')) { + coll[i].click() + btnAll.textContent = '+ expand all' + } + if (!collapsible && button.textContent.includes('+')) { + coll[i].click() + btnAll.textContent = '- collapse all' + } + } }) diff --git a/docs/assets/javascripts/style_ref_clickevent.js b/docs/assets/javascripts/style_ref_clickevent.js index 610020a9c..8501bdd75 100644 --- a/docs/assets/javascripts/style_ref_clickevent.js +++ b/docs/assets/javascripts/style_ref_clickevent.js @@ -1,30 +1,30 @@ function calcMaxHeight(elem) { - const content = elem.nextElementSibling - const button = elem.getElementsByTagName('button')[0] - if (button.textContent.includes('-')) { - content.style.maxHeight = content.scrollHeight + 'px' - } else { - content.style.maxHeight = '0' - } - const nextParentContent = elem.closest('.collapsible-style-content') - if (nextParentContent !== null) { - const nextParentCollapsible = nextParentContent.previousElementSibling - setTimeout(function () { - calcMaxHeight(nextParentCollapsible) - }, animationDelay) - } + const content = elem.nextElementSibling + const button = elem.getElementsByTagName('button')[0] + if (button.textContent.includes('-')) { + content.style.maxHeight = content.scrollHeight + 'px' + } else { + content.style.maxHeight = '0' + } + const nextParentContent = elem.closest('.collapsible-style-content') + if (nextParentContent !== null) { + const nextParentCollapsible = nextParentContent.previousElementSibling + setTimeout(function () { + calcMaxHeight(nextParentCollapsible) + }, animationDelay) + } } const coll = document.getElementsByClassName('collapsible-style') const animationDelay = 110 for (let i = 0; i < coll.length; i++) { - coll[i].addEventListener('click', function () { - const button = this.getElementsByTagName('button')[0] - if (button.textContent.includes('+')) { - button.textContent = button.textContent.replace('+', '-') - } else { - button.textContent = button.textContent.replace('-', '+') - } - calcMaxHeight(this) - }) + coll[i].addEventListener('click', function () { + const button = this.getElementsByTagName('button')[0] + if (button.textContent.includes('+')) { + button.textContent = button.textContent.replace('+', '-') + } else { + button.textContent = button.textContent.replace('-', '+') + } + calcMaxHeight(this) + }) } diff --git a/docs/assets/javascripts/thumbs.js b/docs/assets/javascripts/thumbs.js index 0b42acbbf..de08c6922 100644 --- a/docs/assets/javascripts/thumbs.js +++ b/docs/assets/javascripts/thumbs.js @@ -1,32 +1,32 @@ function setupVideos() { - const videos = document.querySelectorAll('video.image-gallery') - videos.forEach((video) => { - const playPromise = video.play() - if (playPromise !== undefined) { - playPromise.then((_) => { - const observer = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - if (entry.intersectionRatio !== 1 && !video.paused) { - video.pause() - } else if (video.paused) { - video.play() - } - }) - }, - { threshold: 0.2 } - ) - observer.observe(video) - }) - } - }) + const videos = document.querySelectorAll('video.image-gallery') + videos.forEach((video) => { + const playPromise = video.play() + if (playPromise !== undefined) { + playPromise.then((_) => { + const observer = new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + if (entry.intersectionRatio !== 1 && !video.paused) { + video.pause() + } else if (video.paused) { + video.play() + } + }) + }, + { threshold: 0.2 } + ) + observer.observe(video) + }) + } + }) } const currentScript = document.currentScript document.addEventListener('DOMContentLoaded', (event) => { - const parentContainer = currentScript.nextElementSibling - parentContainer.style.display = 'flex' - parentContainer.style['flex-wrap'] = 'wrap' - parentContainer.style.justifyContent = 'center' - setupVideos() + const parentContainer = currentScript.nextElementSibling + parentContainer.style.display = 'flex' + parentContainer.style['flex-wrap'] = 'wrap' + parentContainer.style.justifyContent = 'center' + setupVideos() }) diff --git a/docs/assets/stylesheets/chart.css b/docs/assets/stylesheets/chart.css index 079147846..6c152096e 100644 --- a/docs/assets/stylesheets/chart.css +++ b/docs/assets/stylesheets/chart.css @@ -1,35 +1,35 @@ .loading:before { - content: 'Loading...'; - color: #4171cd; - font-size: 0.95em; - width: auto; - display: block; - text-align: right; + content: 'Loading...'; + color: #4171cd; + font-size: 0.95em; + width: auto; + display: block; + text-align: right; } .playing:before { - content: 'Playing...'; - color: #4171cd; - font-size: 0.95em; - width: auto; - display: block; - text-align: right; + content: 'Playing...'; + color: #4171cd; + font-size: 0.95em; + width: auto; + display: block; + text-align: right; } .replay:before { - content: 'Tap to play'; - color: #4171cd; - font-size: 0.95em; - width: auto; - display: block; - text-align: right; + content: 'Tap to play'; + color: #4171cd; + font-size: 0.95em; + width: auto; + display: block; + text-align: right; } .showcase:before { - content: 'Tap to reload'; - color: #4171cd; - font-size: 0.95em; - width: auto; - display: block; - text-align: left; + content: 'Tap to reload'; + color: #4171cd; + font-size: 0.95em; + width: auto; + display: block; + text-align: left; } diff --git a/docs/assets/stylesheets/gallery.css b/docs/assets/stylesheets/gallery.css index 9ccb978c8..3eb568139 100644 --- a/docs/assets/stylesheets/gallery.css +++ b/docs/assets/stylesheets/gallery.css @@ -1,29 +1,29 @@ .image-gallery { - max-width: 320px; - border: 1px solid #ddd; - margin: 20px; + max-width: 320px; + border: 1px solid #ddd; + margin: 20px; } .image-gallery-w-caption { - max-width: 320px; - border: 1px solid #ddd; - margin: 20px; - margin-bottom: 0px !important; + max-width: 320px; + border: 1px solid #ddd; + margin: 20px; + margin-bottom: 0px !important; } .image-figure { - margin: 0px !important; + margin: 0px !important; } .image-caption { - margin: 0px; - margin-bottom: 20px !important; - font-family: 'Roboto' !important; - font-style: normal !important; + margin: 0px; + margin-bottom: 20px !important; + font-family: 'Roboto' !important; + font-style: normal !important; } .image-center { - display: block; - margin-left: auto; - margin-right: auto; + display: block; + margin-left: auto; + margin-right: auto; } diff --git a/docs/assets/stylesheets/highlight.css b/docs/assets/stylesheets/highlight.css index 4f9d5b9f0..e2c5b60cb 100644 --- a/docs/assets/stylesheets/highlight.css +++ b/docs/assets/stylesheets/highlight.css @@ -1,70 +1,70 @@ .highlight { - background-color: #f8f9fa !important; + background-color: #f8f9fa !important; } .hljs { - background-color: #f9f9fb00 !important; + background-color: #f9f9fb00 !important; } .hljs-title { - color: #f4941b !important; + color: #f4941b !important; } .hljs-property, .hljs-attr { - color: #4171cd !important; + color: #4171cd !important; } .hljs-literal { - color: #03ae71 !important; + color: #03ae71 !important; } .hljs-string { - color: #f25456 !important; + color: #f25456 !important; } .hljs-number { - color: #f25456 !important; + color: #f25456 !important; } .hljs-built_in, .hljs-keyword { - color: #03ae71 !important; + color: #03ae71 !important; } .hljs-keyword { - color: #03ae71 !important; + color: #03ae71 !important; } .hljs-meta { - color: #d49664ff !important; + color: #d49664ff !important; } .hljs-params, .hljs-comment { - color: #4c7450ff !important; + color: #4c7450ff !important; } .hljs-ln-numbers { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; - text-align: center; - color: #ccc; - border-right: 1px solid #ccc; - vertical-align: top; - padding-right: 5px !important; + text-align: center; + color: #ccc; + border-right: 1px solid #ccc; + vertical-align: top; + padding-right: 5px !important; } .hljs-ln-code { - padding-left: 10px !important; + padding-left: 10px !important; } .snippet:focus { - color: #93a49a70 !important; - transition: 200ms; + color: #93a49a70 !important; + transition: 200ms; } diff --git a/docs/assets/stylesheets/style_reference.css b/docs/assets/stylesheets/style_reference.css index 3550d9074..9ca8230e2 100644 --- a/docs/assets/stylesheets/style_reference.css +++ b/docs/assets/stylesheets/style_reference.css @@ -1,23 +1,23 @@ .not-collapsible-style { - text-align: left; - font-size: 0.8rem; - margin: 5px; + text-align: left; + font-size: 0.8rem; + margin: 5px; } .collapsible-style, .allbtn-style { - cursor: pointer; - font-size: 0.8rem; - margin: 5px; + cursor: pointer; + font-size: 0.8rem; + margin: 5px; } .collapsible-style:hover button, .allbtn-style:hover button { - color: #4171cd; + color: #4171cd; } .collapsible-style-content { - max-height: 0; - overflow: hidden; - transition: max-height 0.1s ease-out; + max-height: 0; + overflow: hidden; + transition: max-height 0.1s ease-out; } diff --git a/docs/assets/stylesheets/vizzu.css b/docs/assets/stylesheets/vizzu.css index e8d3515b9..fd2c3a3ee 100644 --- a/docs/assets/stylesheets/vizzu.css +++ b/docs/assets/stylesheets/vizzu.css @@ -1,9 +1,9 @@ [data-md-color-scheme='vizzu'] { - --md-primary-fg-color: #333; - --md-primary-fg-color--dark: #666; - --md-default-fg-color: #666; - --md-typeset-color: #666; - --md-typeset-a-color: #4171cd; + --md-primary-fg-color: #333; + --md-primary-fg-color--dark: #666; + --md-default-fg-color: #666; + --md-typeset-color: #666; + --md-typeset-a-color: #4171cd; } .md-typeset details.tip, @@ -14,78 +14,78 @@ .md-typeset .admonition.info, .md-typeset details.example, .md-typeset .admonition.example { - color: #666 !important; - border-color: #ccc !important; + color: #666 !important; + border-color: #ccc !important; } .md-typeset .tip > .admonition-title, .md-typeset .tip > summary { - color: #666 !important; - border-color: #ccc !important; - background-color: #f8f9fa !important; + color: #666 !important; + border-color: #ccc !important; + background-color: #f8f9fa !important; } .md-typeset .tip > .admonition-title::before, .md-typeset .tip > summary::before { - background-color: #ccc !important; - -webkit-mask-image: var(--md-admonition-icon--tip); - mask-image: var(--md-admonition-icon--tip); + background-color: #ccc !important; + -webkit-mask-image: var(--md-admonition-icon--tip); + mask-image: var(--md-admonition-icon--tip); } .md-typeset .tip > summary::after { - background-color: #ccc !important; - -webkit-mask-image: var(--md-details-icon); - mask-image: var(--md-details-icon); + background-color: #ccc !important; + -webkit-mask-image: var(--md-details-icon); + mask-image: var(--md-details-icon); } .md-typeset .note > .admonition-title, .md-typeset .note > summary { - color: #666 !important; - border-color: #ccc !important; - background-color: #f8f9fa !important; + color: #666 !important; + border-color: #ccc !important; + background-color: #f8f9fa !important; } .md-typeset .note > .admonition-title::before, .md-typeset .note > summary::before { - background-color: #ccc !important; - -webkit-mask-image: var(--md-admonition-icon--note); - mask-image: var(--md-admonition-icon--note); + background-color: #ccc !important; + -webkit-mask-image: var(--md-admonition-icon--note); + mask-image: var(--md-admonition-icon--note); } .md-typeset .note > summary::after { - background-color: #ccc !important; - -webkit-mask-image: var(--md-details-icon); - mask-image: var(--md-details-icon); + background-color: #ccc !important; + -webkit-mask-image: var(--md-details-icon); + mask-image: var(--md-details-icon); } .md-typeset .info > .admonition-title, .md-typeset .info > summary { - color: #666 !important; - border-color: #ccc !important; - background-color: #f8f9fa !important; + color: #666 !important; + border-color: #ccc !important; + background-color: #f8f9fa !important; } .md-typeset .info > .admonition-title::before, .md-typeset .info > summary::before { - background-color: #ccc !important; - -webkit-mask-image: var(--md-admonition-icon--info); - mask-image: var(--md-admonition-icon--info); + background-color: #ccc !important; + -webkit-mask-image: var(--md-admonition-icon--info); + mask-image: var(--md-admonition-icon--info); } .md-typeset .info > summary::after { - background-color: #ccc !important; - -webkit-mask-image: var(--md-details-icon); - mask-image: var(--md-details-icon); + background-color: #ccc !important; + -webkit-mask-image: var(--md-details-icon); + mask-image: var(--md-details-icon); } .md-typeset .example > .admonition-title, .md-typeset .example > summary { - color: #666 !important; - border-color: #ccc !important; - background-color: #f8f9fa !important; + color: #666 !important; + border-color: #ccc !important; + background-color: #f8f9fa !important; } .md-typeset .example > .admonition-title::before, .md-typeset .example > summary::before { - background-color: #ccc !important; - -webkit-mask-image: var(--md-admonition-icon--example); - mask-image: var(--md-admonition-icon--example); + background-color: #ccc !important; + -webkit-mask-image: var(--md-admonition-icon--example); + mask-image: var(--md-admonition-icon--example); } .md-typeset .example > summary::after { - background-color: #ccc !important; - -webkit-mask-image: var(--md-details-icon); - mask-image: var(--md-details-icon); + background-color: #ccc !important; + -webkit-mask-image: var(--md-details-icon); + mask-image: var(--md-details-icon); } diff --git a/docs/tutorial/aggregating_data.js b/docs/tutorial/aggregating_data.js index d0cfd91eb..b14ce3be1 100644 --- a/docs/tutorial/aggregating_data.js +++ b/docs/tutorial/aggregating_data.js @@ -2,166 +2,166 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Sum of all Popularity Values' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - title: 'Sum of Popularity by Genre' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - x: { set: 'Genres' } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Minimum of Popularity by Genre' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { set: 'min(Popularity)' } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Maximum of Popularity by Genre' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { set: 'max(Popularity)' } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Mean of Popularity by Genre' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { set: 'mean(Popularity)' } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Count of items by Genre' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { set: 'count()' } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Distinct Kinds by Genre' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { set: 'distinct(Kinds)' } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Sum of Popularity by Genre' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { set: 'sum(Popularity)' } - } - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Sum of all Popularity Values' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + title: 'Sum of Popularity by Genre' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + x: { set: 'Genres' } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Minimum of Popularity by Genre' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { set: 'min(Popularity)' } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Maximum of Popularity by Genre' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { set: 'max(Popularity)' } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Mean of Popularity by Genre' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { set: 'mean(Popularity)' } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Count of items by Genre' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { set: 'count()' } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Distinct Kinds by Genre' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { set: 'distinct(Kinds)' } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Sum of Popularity by Genre' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { set: 'sum(Popularity)' } + } + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/align_range.js b/docs/tutorial/align_range.js index e910341ba..1b2b7c901 100644 --- a/docs/tutorial/align_range.js +++ b/docs/tutorial/align_range.js @@ -2,159 +2,159 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Align: center', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - align: 'center', - channels: { - y: { - labels: false - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Align: stretch = % view' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - align: 'stretch' - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Align: none - default' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - align: 'none', - channels: { - y: { - labels: true - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Axis range set proportionally to shown values' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { - range: { - max: '150%' - } - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Axis range set explicitly on an axis with discrete series' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - x: { - range: { - min: -2, - max: 3 - } - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Back to the default ranges' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { - range: { - max: 'auto' - } - }, - x: { - range: { - min: 'auto', - max: 'auto' - } - } - } - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Align: center', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + align: 'center', + channels: { + y: { + labels: false + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Align: stretch = % view' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + align: 'stretch' + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Align: none - default' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + align: 'none', + channels: { + y: { + labels: true + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Axis range set proportionally to shown values' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { + range: { + max: '150%' + } + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Axis range set explicitly on an axis with discrete series' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + x: { + range: { + min: -2, + max: 3 + } + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Back to the default ranges' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { + range: { + max: 'auto' + } + }, + x: { + range: { + min: 'auto', + max: 'auto' + } + } + } + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/animation_control_keyframes.js b/docs/tutorial/animation_control_keyframes.js index fd1aa7831..797ddbd4d 100644 --- a/docs/tutorial/animation_control_keyframes.js +++ b/docs/tutorial/animation_control_keyframes.js @@ -2,126 +2,126 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Jumping from 0% to 50% progress at the begining of the animation', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - chart = chart.animate({ - config: { - channels: { - x: { - attach: 'Kinds' - }, - y: { - detach: 'Kinds' - } - } - } - }) - chart.activated.then((control) => control.seek('50%')) - return chart - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Using initial animation control parameters' - } - }) - }, - (chart) => { - chart = chart.animate( - { - config: { - channels: { - x: { - detach: ['Kinds'] - }, - y: { - attach: ['Kinds'] - } - } - } - }, - { - playState: 'paused', - position: 0.5 - } - ) - chart.activated.then((control) => control.play()) - return chart - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Using keyframes' - } - }) - }, - (chart) => { - return chart.animate([ - { - target: { - config: { - channels: { - x: { - attach: ['Kinds'] - }, - y: { - detach: ['Kinds'] - } - }, - title: 'Using keyframes' - } - }, - options: { - duration: 0.5 - } - }, - { - target: { - config: { - channels: { - x: { - detach: ['Kinds'] - }, - y: { - attach: ['Kinds'] - } - } - } - }, - options: { - duration: 1 - } - } - ]) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Jumping from 0% to 50% progress at the begining of the animation', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + chart = chart.animate({ + config: { + channels: { + x: { + attach: 'Kinds' + }, + y: { + detach: 'Kinds' + } + } + } + }) + chart.activated.then((control) => control.seek('50%')) + return chart + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Using initial animation control parameters' + } + }) + }, + (chart) => { + chart = chart.animate( + { + config: { + channels: { + x: { + detach: ['Kinds'] + }, + y: { + attach: ['Kinds'] + } + } + } + }, + { + playState: 'paused', + position: 0.5 + } + ) + chart.activated.then((control) => control.play()) + return chart + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Using keyframes' + } + }) + }, + (chart) => { + return chart.animate([ + { + target: { + config: { + channels: { + x: { + attach: ['Kinds'] + }, + y: { + detach: ['Kinds'] + } + }, + title: 'Using keyframes' + } + }, + options: { + duration: 0.5 + } + }, + { + target: { + config: { + channels: { + x: { + detach: ['Kinds'] + }, + y: { + attach: ['Kinds'] + } + } + } + }, + options: { + duration: 1 + } + } + ]) + } + ] + } + ]) }) diff --git a/docs/tutorial/animation_options.js b/docs/tutorial/animation_options.js index d9d385060..98820dbc6 100644 --- a/docs/tutorial/animation_options.js +++ b/docs/tutorial/animation_options.js @@ -2,203 +2,203 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Default options - step 1', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { - detach: 'Kinds' - }, - x: { - attach: 'Kinds' - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Default options - step 2' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - x: { - detach: 'Kinds' - }, - y: { - attach: 'Kinds' - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Custom animation settings for specific groups' - } - }) - }, - (chart) => { - return chart.animate( - { - config: { - channels: { - x: { - attach: 'Kinds' - }, - y: { - detach: 'Kinds' - } - } - } - }, - { - y: { - duration: 2, - delay: 2 - }, - style: { - duration: 2, - delay: 4 - } - } - ) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Custom options for the whole animation' - } - }) - }, - (chart) => { - return chart.animate( - { - config: { - channels: { - x: { - detach: 'Kinds' - }, - y: { - attach: 'Kinds' - } - } - } - }, - { - duration: 1, - easing: 'linear' - } - ) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Custom settings for both' - } - }) - }, - (chart) => { - return chart.animate( - { - config: { - channels: { - x: { - attach: 'Kinds' - }, - y: { - detach: 'Kinds' - } - } - } - }, - { - duration: 1, - easing: 'linear', - y: { - duration: 2, - delay: 2 - }, - style: { - duration: 2, - delay: 4 - } - } - ) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Custom unit for duration' - } - }) - }, - (chart) => { - return chart.animate( - { - config: { - channels: { - x: { - detach: 'Kinds' - }, - y: { - attach: 'Kinds' - } - } - } - }, - { - duration: '500ms' - } - ) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Default options - step 1', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { + detach: 'Kinds' + }, + x: { + attach: 'Kinds' + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Default options - step 2' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + x: { + detach: 'Kinds' + }, + y: { + attach: 'Kinds' + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Custom animation settings for specific groups' + } + }) + }, + (chart) => { + return chart.animate( + { + config: { + channels: { + x: { + attach: 'Kinds' + }, + y: { + detach: 'Kinds' + } + } + } + }, + { + y: { + duration: 2, + delay: 2 + }, + style: { + duration: 2, + delay: 4 + } + } + ) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Custom options for the whole animation' + } + }) + }, + (chart) => { + return chart.animate( + { + config: { + channels: { + x: { + detach: 'Kinds' + }, + y: { + attach: 'Kinds' + } + } + } + }, + { + duration: 1, + easing: 'linear' + } + ) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Custom settings for both' + } + }) + }, + (chart) => { + return chart.animate( + { + config: { + channels: { + x: { + attach: 'Kinds' + }, + y: { + detach: 'Kinds' + } + } + } + }, + { + duration: 1, + easing: 'linear', + y: { + duration: 2, + delay: 2 + }, + style: { + duration: 2, + delay: 4 + } + } + ) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Custom unit for duration' + } + }) + }, + (chart) => { + return chart.animate( + { + config: { + channels: { + x: { + detach: 'Kinds' + }, + y: { + attach: 'Kinds' + } + } + } + }, + { + duration: '500ms' + } + ) + } + ] + } + ]) }) diff --git a/docs/tutorial/axes_title_tooltip.js b/docs/tutorial/axes_title_tooltip.js index 54f85f66b..6cc906870 100644 --- a/docs/tutorial/axes_title_tooltip.js +++ b/docs/tutorial/axes_title_tooltip.js @@ -2,80 +2,80 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - channels: { - y: { set: 'Popularity' }, - x: { set: 'Genres' } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: ['Genres', 'Popularity'] } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - channels: { - y: { detach: 'Popularity' }, - x: { attach: 'Popularity' } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - console.log(chart.config) // eslint-disable-line no-console - return chart - }, - (chart) => { - return chart.animate({ title: 'My first chart' }) - } - ] - }, - { - anims: [ - (chart) => - chart.animate({ - subtitle: 'with fancy animations', - caption: 'Source: Vizzu tutorial' - }) - ] - }, - { - anims: [ - (chart) => { - chart.feature('tooltip', true) - return chart - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + channels: { + y: { set: 'Popularity' }, + x: { set: 'Genres' } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: ['Genres', 'Popularity'] } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + channels: { + y: { detach: 'Popularity' }, + x: { attach: 'Popularity' } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + console.log(chart.config) // eslint-disable-line no-console + return chart + }, + (chart) => { + return chart.animate({ title: 'My first chart' }) + } + ] + }, + { + anims: [ + (chart) => + chart.animate({ + subtitle: 'with fancy animations', + caption: 'Source: Vizzu tutorial' + }) + ] + }, + { + anims: [ + (chart) => { + chart.feature('tooltip', true) + return chart + } + ] + } + ]) }) diff --git a/docs/tutorial/changing_dimensions.js b/docs/tutorial/changing_dimensions.js index a5bd97206..e183f3757 100644 --- a/docs/tutorial/changing_dimensions.js +++ b/docs/tutorial/changing_dimensions.js @@ -2,127 +2,127 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Aggregate', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - x: { - set: null - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Changing dimensions' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { detach: ['Kinds'] }, - x: { set: ['Genres'] }, - color: { set: null } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Changing dimensions by drilling down' - } - }) - }, - (chart) => { - return chart.animate( - { - config: { - channels: { - x: { detach: ['Genres'], attach: ['Kinds'] } - } - } - }, - { regroupStrategy: 'drilldown' } - ) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Changing dimensions with fading' - } - }) - }, - (chart) => { - return chart.animate( - { - config: { - channels: { - x: { detach: ['Kinds'], attach: ['Genres'] } - } - } - }, - { regroupStrategy: 'fade' } - ) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Drill-down' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { attach: ['Kinds'] }, - color: { set: ['Kinds'] } - } - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Aggregate', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + x: { + set: null + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Changing dimensions' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { detach: ['Kinds'] }, + x: { set: ['Genres'] }, + color: { set: null } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Changing dimensions by drilling down' + } + }) + }, + (chart) => { + return chart.animate( + { + config: { + channels: { + x: { detach: ['Genres'], attach: ['Kinds'] } + } + } + }, + { regroupStrategy: 'drilldown' } + ) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Changing dimensions with fading' + } + }) + }, + (chart) => { + return chart.animate( + { + config: { + channels: { + x: { detach: ['Kinds'], attach: ['Genres'] } + } + } + }, + { regroupStrategy: 'fade' } + ) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Drill-down' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { attach: ['Kinds'] }, + color: { set: ['Kinds'] } + } + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/channels_legend.js b/docs/tutorial/channels_legend.js index b090a46f9..18a72f438 100644 --- a/docs/tutorial/channels_legend.js +++ b/docs/tutorial/channels_legend.js @@ -2,108 +2,108 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Label', - channels: { - y: { set: 'Popularity' }, - x: { set: 'Genres' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - label: { - attach: 'Popularity' - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Lightness - legend on' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - lightness: { - attach: 'Popularity' - } - }, - legend: 'lightness' - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Color' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - lightness: { - set: null - }, - color: { - attach: 'Genres' - } - }, - legend: 'color' - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Size - change of geometry required' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - size: { - set: 'Popularity' - } - }, - geometry: 'circle' - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Label', + channels: { + y: { set: 'Popularity' }, + x: { set: 'Genres' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + label: { + attach: 'Popularity' + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Lightness - legend on' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + lightness: { + attach: 'Popularity' + } + }, + legend: 'lightness' + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Color' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + lightness: { + set: null + }, + color: { + attach: 'Genres' + } + }, + legend: 'color' + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Size - change of geometry required' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + size: { + set: 'Popularity' + } + }, + geometry: 'circle' + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/chart_layout.js b/docs/tutorial/chart_layout.js index 4cec297f2..f2338a68d 100644 --- a/docs/tutorial/chart_layout.js +++ b/docs/tutorial/chart_layout.js @@ -2,147 +2,147 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Plot, title and legend background', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - style: { - title: { - backgroundColor: '#A0A0A0' - }, - plot: { - backgroundColor: '#D2D2D2' - }, - legend: { - backgroundColor: '#808080' - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Legend width' - } - }) - }, - (chart) => { - return chart.animate({ - style: { - legend: { - width: 50 - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - style: { - legend: { - width: null - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Title padding' - } - }) - }, - (chart) => { - return chart.animate({ - style: { - title: { - paddingTop: 20, - paddingBottom: 20, - paddingLeft: 200 - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - style: { - title: { - paddingTop: null, - paddingBottom: null, - paddingLeft: null - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Plot padding' - } - }) - }, - (chart) => { - return chart.animate({ - style: { - plot: { - paddingLeft: 100, - paddingRight: 100 - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - style: { - plot: { - paddingLeft: null, - paddingRight: null - } - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Plot, title and legend background', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + style: { + title: { + backgroundColor: '#A0A0A0' + }, + plot: { + backgroundColor: '#D2D2D2' + }, + legend: { + backgroundColor: '#808080' + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Legend width' + } + }) + }, + (chart) => { + return chart.animate({ + style: { + legend: { + width: 50 + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + style: { + legend: { + width: null + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Title padding' + } + }) + }, + (chart) => { + return chart.animate({ + style: { + title: { + paddingTop: 20, + paddingBottom: 20, + paddingLeft: 200 + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + style: { + title: { + paddingTop: null, + paddingBottom: null, + paddingLeft: null + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Plot padding' + } + }) + }, + (chart) => { + return chart.animate({ + style: { + plot: { + paddingLeft: 100, + paddingRight: 100 + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + style: { + plot: { + paddingLeft: null, + paddingRight: null + } + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/chart_presets.js b/docs/tutorial/chart_presets.js index 58b5f392d..b24ed18c1 100644 --- a/docs/tutorial/chart_presets.js +++ b/docs/tutorial/chart_presets.js @@ -2,73 +2,73 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Using a preset' - } - }) - }, - (chart) => { - return chart.animate( - chart.constructor.presets.stackedBubble({ - size: 'Popularity', - color: 'Kinds', - stackedBy: 'Genres' - }) - ) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Set sorting for a chart preset' - } - }) - }, - (chart) => { - return chart.animate( - chart.constructor.presets.radialStackedBar({ - angle: 'Popularity', - radius: 'Genres', - stackedBy: 'Kinds', - sort: 'byValue' - }) - ) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Setting style for a preset' - } - }) - }, - (chart) => { - return chart.animate({ - config: chart.constructor.presets.radialBar({ - angle: 'Popularity', - radius: 'Genres' - }), - style: { - 'plot.xAxis.interlacing.color': '#ffffff00' - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Using a preset' + } + }) + }, + (chart) => { + return chart.animate( + chart.constructor.presets.stackedBubble({ + size: 'Popularity', + color: 'Kinds', + stackedBy: 'Genres' + }) + ) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Set sorting for a chart preset' + } + }) + }, + (chart) => { + return chart.animate( + chart.constructor.presets.radialStackedBar({ + angle: 'Popularity', + radius: 'Genres', + stackedBy: 'Kinds', + sort: 'byValue' + }) + ) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Setting style for a preset' + } + }) + }, + (chart) => { + return chart.animate({ + config: chart.constructor.presets.radialBar({ + angle: 'Popularity', + radius: 'Genres' + }), + style: { + 'plot.xAxis.interlacing.color': '#ffffff00' + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/color_palette_fonts.js b/docs/tutorial/color_palette_fonts.js index 31049aed3..32915436b 100644 --- a/docs/tutorial/color_palette_fonts.js +++ b/docs/tutorial/color_palette_fonts.js @@ -2,116 +2,116 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Color palette', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - style: { - plot: { - marker: { - colorPalette: '#9355e8FF #123456FF #BDAF10FF' - } - } - } - }) - }, - (chart) => { - console.log(chart.style) // eslint-disable-line no-console - return chart - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Title font size' - } - }) - }, - (chart) => { - return chart.animate({ - style: { - title: { - fontSize: 50 - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Title font size - back to default' - } - }) - }, - (chart) => { - return chart.animate({ - style: { - title: { - fontSize: null - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Setting all font sizes in one step' - } - }) - }, - (chart) => { - return chart.animate({ - style: { - fontSize: 20 - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Setting all style settings back to default' - } - }) - }, - (chart) => { - return chart.animate({ - style: null - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Color palette', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + style: { + plot: { + marker: { + colorPalette: '#9355e8FF #123456FF #BDAF10FF' + } + } + } + }) + }, + (chart) => { + console.log(chart.style) // eslint-disable-line no-console + return chart + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Title font size' + } + }) + }, + (chart) => { + return chart.animate({ + style: { + title: { + fontSize: 50 + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Title font size - back to default' + } + }) + }, + (chart) => { + return chart.animate({ + style: { + title: { + fontSize: null + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Setting all font sizes in one step' + } + }) + }, + (chart) => { + return chart.animate({ + style: { + fontSize: 20 + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Setting all style settings back to default' + } + }) + }, + (chart) => { + return chart.animate({ + style: null + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/events.js b/docs/tutorial/events.js index 69d0b76bf..cba84feda 100644 --- a/docs/tutorial/events.js +++ b/docs/tutorial/events.js @@ -2,139 +2,139 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - const clickHandler = (event) => { - alert(JSON.stringify(event.target)) // eslint-disable-line no-alert - } + const clickHandler = (event) => { + alert(JSON.stringify(event.target)) // eslint-disable-line no-alert + } - const labelDrawHandler = (event) => { - event.renderingContext.fillStyle = event.target.value === 'Jazz' ? 'red' : 'gray' - } + const labelDrawHandler = (event) => { + event.renderingContext.fillStyle = event.target.value === 'Jazz' ? 'red' : 'gray' + } - const logoDrawHandler = (event) => { - event.preventDefault() - } + const logoDrawHandler = (event) => { + event.preventDefault() + } - const image = new Image() - image.src = - 'data:image/gif;base64,R0lGODlhAwACAPIAAJLf6q/i7M/r8un0+PT6+/n8/QAAAAAAACH5BAQAAAAALAAAAAADAAIAAAMEWBMkkAA7' + const image = new Image() + image.src = + 'data:image/gif;base64,R0lGODlhAwACAPIAAJLf6q/i7M/r8un0+PT6+/n8/QAAAAAAACH5BAQAAAAALAAAAAADAAIAAAMEWBMkkAA7' - const backgroundImageHandler = (event) => { - event.renderingContext.drawImage( - image, - 0, - 0, - event.detail.rect.size.x, - event.detail.rect.size.y - ) - event.preventDefault() - } + const backgroundImageHandler = (event) => { + event.renderingContext.drawImage( + image, + 0, + 0, + event.detail.rect.size.x, + event.detail.rect.size.y + ) + event.preventDefault() + } - mdchart.create([ - { - anims: [ - (chart) => { - try { - chart.off('click', clickHandler) - } catch (error) { - if (!error.toString().includes('unknown event handler')) { - throw error - } - } - return chart.animate({ - config: { - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - }, - title: 'Click event added to markers' - } - }) - }, - (chart) => { - chart.on('click', clickHandler) - chart.feature.rendering.update() - return chart - } - ] - }, - { - anims: [ - (chart) => { - try { - chart.off('plot-axis-label-draw', labelDrawHandler) - } catch (error) { - if (!error.toString().includes('unknown event handler')) { - throw error - } - } - return chart.animate({ - config: { - title: 'Changing the canvas context before label draw' - } - }) - }, - (chart) => { - chart.on('plot-axis-label-draw', labelDrawHandler) - chart.feature.rendering.update() - return chart - } - ] - }, - { - anims: [ - (chart) => { - try { - chart.off('logo-draw', logoDrawHandler) - } catch (error) { - if (!error.toString().includes('unknown event handler')) { - throw error - } - } - return chart.animate({ - config: { - title: 'Prevent default behavior' - } - }) - }, - (chart) => { - chart.on('logo-draw', logoDrawHandler) - chart.feature.rendering.update() - return chart - } - ] - }, - { - anims: [ - (chart) => { - try { - chart.off('background-draw', backgroundImageHandler) - } catch (error) { - if (!error.toString().includes('unknown event handler')) { - throw error - } - } - return chart.animate({ - config: { - title: 'Add background image' - } - }) - }, - (chart) => { - const registerHandler = () => { - chart.on('background-draw', backgroundImageHandler) - chart.feature.rendering.update() - } - if (!image.complete) image.onload = registerHandler - else registerHandler() - return chart - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + try { + chart.off('click', clickHandler) + } catch (error) { + if (!error.toString().includes('unknown event handler')) { + throw error + } + } + return chart.animate({ + config: { + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + }, + title: 'Click event added to markers' + } + }) + }, + (chart) => { + chart.on('click', clickHandler) + chart.feature.rendering.update() + return chart + } + ] + }, + { + anims: [ + (chart) => { + try { + chart.off('plot-axis-label-draw', labelDrawHandler) + } catch (error) { + if (!error.toString().includes('unknown event handler')) { + throw error + } + } + return chart.animate({ + config: { + title: 'Changing the canvas context before label draw' + } + }) + }, + (chart) => { + chart.on('plot-axis-label-draw', labelDrawHandler) + chart.feature.rendering.update() + return chart + } + ] + }, + { + anims: [ + (chart) => { + try { + chart.off('logo-draw', logoDrawHandler) + } catch (error) { + if (!error.toString().includes('unknown event handler')) { + throw error + } + } + return chart.animate({ + config: { + title: 'Prevent default behavior' + } + }) + }, + (chart) => { + chart.on('logo-draw', logoDrawHandler) + chart.feature.rendering.update() + return chart + } + ] + }, + { + anims: [ + (chart) => { + try { + chart.off('background-draw', backgroundImageHandler) + } catch (error) { + if (!error.toString().includes('unknown event handler')) { + throw error + } + } + return chart.animate({ + config: { + title: 'Add background image' + } + }) + }, + (chart) => { + const registerHandler = () => { + chart.on('background-draw', backgroundImageHandler) + chart.feature.rendering.update() + } + if (!image.complete) image.onload = registerHandler + else registerHandler() + return chart + } + ] + } + ]) }) diff --git a/docs/tutorial/filter_add_new_records.js b/docs/tutorial/filter_add_new_records.js index c3d5793c9..7804d7434 100644 --- a/docs/tutorial/filter_add_new_records.js +++ b/docs/tutorial/filter_add_new_records.js @@ -2,110 +2,111 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Filter by one dimension', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - data: { - filter: (record) => record.Genres === 'Pop' || record.Genres === 'Metal' - } - }) - } - ] - }, - { - initDataFilter: (record) => record.Genres === 'Pop' || record.Genres === 'Metal', - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Filter by two dimensions' - } - }) - }, - (chart) => { - return chart.animate({ - data: { - filter: (record) => - (record.Genres === 'Pop' || record.Genres === 'Metal') && record.Kinds === 'Smooth' - } - }) - } - ] - }, - { - initDataFilter: (record) => - (record.Genres === 'Pop' || record.Genres === 'Metal') && record.Kinds === 'Smooth', - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Filter off' - } - }) - }, - (chart) => { - return chart.animate({ - data: { - filter: null - } - }) - } - ] - }, - { - initDataFilter: (record) => record.Genres !== 'Soul', - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Adding new records' - } - }) - }, - (chart) => { - const expandedData = JSON.parse(JSON.stringify(data)) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Filter by one dimension', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + data: { + filter: (record) => record.Genres === 'Pop' || record.Genres === 'Metal' + } + }) + } + ] + }, + { + initDataFilter: (record) => record.Genres === 'Pop' || record.Genres === 'Metal', + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Filter by two dimensions' + } + }) + }, + (chart) => { + return chart.animate({ + data: { + filter: (record) => + (record.Genres === 'Pop' || record.Genres === 'Metal') && + record.Kinds === 'Smooth' + } + }) + } + ] + }, + { + initDataFilter: (record) => + (record.Genres === 'Pop' || record.Genres === 'Metal') && record.Kinds === 'Smooth', + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Filter off' + } + }) + }, + (chart) => { + return chart.animate({ + data: { + filter: null + } + }) + } + ] + }, + { + initDataFilter: (record) => record.Genres !== 'Soul', + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Adding new records' + } + }) + }, + (chart) => { + const expandedData = JSON.parse(JSON.stringify(data)) - expandedData.series[0].values.splice(5, 0, 'Soul') - expandedData.series[0].values.splice(9, 0, 'Soul') - expandedData.series[0].values.splice(14, 0, 'Soul') + expandedData.series[0].values.splice(5, 0, 'Soul') + expandedData.series[0].values.splice(9, 0, 'Soul') + expandedData.series[0].values.splice(14, 0, 'Soul') - expandedData.series[1].values.splice(5, 0, 'Hard') - expandedData.series[1].values.splice(9, 0, 'Smooth') - expandedData.series[1].values.splice(14, 0, 'Experimental') + expandedData.series[1].values.splice(5, 0, 'Hard') + expandedData.series[1].values.splice(9, 0, 'Smooth') + expandedData.series[1].values.splice(14, 0, 'Experimental') - expandedData.series[2].values.splice(5, 0, 91) - expandedData.series[2].values.splice(9, 0, 57) - expandedData.series[2].values.splice(14, 0, 115) + expandedData.series[2].values.splice(5, 0, 91) + expandedData.series[2].values.splice(9, 0, 57) + expandedData.series[2].values.splice(14, 0, 115) - expandedData.filter = null + expandedData.filter = null - return chart.animate( - { - data: expandedData - }, - 2 - ) - } - ] - } - ]) + return chart.animate( + { + data: expandedData + }, + 2 + ) + } + ] + } + ]) }) diff --git a/docs/tutorial/geometry.js b/docs/tutorial/geometry.js index 57153f9f1..854fd9eb1 100644 --- a/docs/tutorial/geometry.js +++ b/docs/tutorial/geometry.js @@ -2,72 +2,72 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Geometry: area', - channels: { - y: { set: 'Popularity' }, - x: { set: 'Genres' } - } - } - }) - }, - (chart) => { - return chart.animate({ - geometry: 'area' - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - title: 'Geometry: line' - }) - }, - (chart) => { - return chart.animate({ - geometry: 'line' - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - title: 'Geometry: circle' - }) - }, - (chart) => { - return chart.animate({ - geometry: 'circle' - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - title: 'Geometry: rectangle - default' - }) - }, - (chart) => { - return chart.animate({ - geometry: 'rectangle' - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Geometry: area', + channels: { + y: { set: 'Popularity' }, + x: { set: 'Genres' } + } + } + }) + }, + (chart) => { + return chart.animate({ + geometry: 'area' + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + title: 'Geometry: line' + }) + }, + (chart) => { + return chart.animate({ + geometry: 'line' + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + title: 'Geometry: circle' + }) + }, + (chart) => { + return chart.animate({ + geometry: 'circle' + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + title: 'Geometry: rectangle - default' + }) + }, + (chart) => { + return chart.animate({ + geometry: 'rectangle' + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/group_stack.js b/docs/tutorial/group_stack.js index 976109c51..7270deebe 100644 --- a/docs/tutorial/group_stack.js +++ b/docs/tutorial/group_stack.js @@ -2,101 +2,101 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Creating a stacked chart', - channels: { - y: { set: 'Popularity' }, - x: { set: 'Genres' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { - attach: 'Kinds' - }, - color: { - attach: 'Kinds' - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: '...then you can add it to another channel = group elements' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { detach: 'Kinds' }, - x: { attach: 'Kinds' } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Regrouping the chart' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - x: { set: ['Kinds', 'Genres'] } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: '...doing it the other way is how you stack your chart' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - x: { detach: 'Kinds' }, - y: { attach: 'Kinds' } - } - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Creating a stacked chart', + channels: { + y: { set: 'Popularity' }, + x: { set: 'Genres' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { + attach: 'Kinds' + }, + color: { + attach: 'Kinds' + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: '...then you can add it to another channel = group elements' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { detach: 'Kinds' }, + x: { attach: 'Kinds' } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Regrouping the chart' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + x: { set: ['Kinds', 'Genres'] } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: '...doing it the other way is how you stack your chart' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + x: { detach: 'Kinds' }, + y: { attach: 'Kinds' } + } + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/orientation_split_polar.js b/docs/tutorial/orientation_split_polar.js index c8bf5c0c4..0e2fca85b 100644 --- a/docs/tutorial/orientation_split_polar.js +++ b/docs/tutorial/orientation_split_polar.js @@ -2,124 +2,124 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Switch the orientation = arrange by other axis', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { - detach: 'Popularity' - }, - x: { - attach: 'Popularity' - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Split stacked values = show side-by-side' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - split: true - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Merge' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - split: false - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Aggregate' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - x: { - detach: 'Genres' - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Polar coordinates' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { - range: { - min: '-30%' - } - } - }, - coordSystem: 'polar' - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Switch the orientation = arrange by other axis', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { + detach: 'Popularity' + }, + x: { + attach: 'Popularity' + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Split stacked values = show side-by-side' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + split: true + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Merge' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + split: false + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Aggregate' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + x: { + detach: 'Genres' + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Polar coordinates' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { + range: { + min: '-30%' + } + } + }, + coordSystem: 'polar' + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/shorthands_store.js b/docs/tutorial/shorthands_store.js index f55a97876..3840a3fc2 100644 --- a/docs/tutorial/shorthands_store.js +++ b/docs/tutorial/shorthands_store.js @@ -2,212 +2,212 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'When only the config property is used', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - align: 'stretch' - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Store function' - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'When just one series is used' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { detach: 'Kinds' }, - x: { attach: 'Kinds' } - }, - align: 'none' - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'When you use set and no other channel options' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: ['Kinds', 'Popularity'], - x: 'Genres' - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: "You don't have to use the channel object" - } - }) - }, - (chart) => { - return chart.animate({ - config: { - y: 'Kinds', - x: ['Genres', 'Popularity'] - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: "You don't have to use the keyframe object" - } - }) - }, - (chart) => { - return chart.animate([ - { - y: ['Genres', 'Popularity'], - x: 'Kinds' - }, - { - y: 'Kinds', - x: ['Genres', 'Popularity'] - } - ]) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Shorthand for styles' - } - }) - }, - (chart) => { - return chart.animate({ - style: { - 'plot.xAxis.label.fontSize': '150%', - 'title.backgroundColor': '#A0A0A0' - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate( - { - style: null, - config: { - title: 'Store function', - align: 'stretch', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - label: { attach: 'Popularity' } - }, - color: { set: 'Kinds' } - } - }, - 0 - ) - }, - (chart) => { - return chart.animate({ - config: { - title: 'When you use set and no other channel options' - } - }) - }, - (chart) => { - return chart.animate({ - channels: { - // x: { attach: [ 'Kinds' ] }, - x: { - attach: 'Kinds' - }, - // y: { detach: [ 'Kinds' ] }, - y: { - detach: 'Kinds' - } - }, - align: 'none' - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - style: null, - config: { - title: 'Store function', - align: 'stretch', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - label: { attach: 'Popularity' } - }, - color: { set: 'Kinds' } - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'When only the config property is used', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + align: 'stretch' + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Store function' + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'When just one series is used' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { detach: 'Kinds' }, + x: { attach: 'Kinds' } + }, + align: 'none' + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'When you use set and no other channel options' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: ['Kinds', 'Popularity'], + x: 'Genres' + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: "You don't have to use the channel object" + } + }) + }, + (chart) => { + return chart.animate({ + config: { + y: 'Kinds', + x: ['Genres', 'Popularity'] + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: "You don't have to use the keyframe object" + } + }) + }, + (chart) => { + return chart.animate([ + { + y: ['Genres', 'Popularity'], + x: 'Kinds' + }, + { + y: 'Kinds', + x: ['Genres', 'Popularity'] + } + ]) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Shorthand for styles' + } + }) + }, + (chart) => { + return chart.animate({ + style: { + 'plot.xAxis.label.fontSize': '150%', + 'title.backgroundColor': '#A0A0A0' + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate( + { + style: null, + config: { + title: 'Store function', + align: 'stretch', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + label: { attach: 'Popularity' } + }, + color: { set: 'Kinds' } + } + }, + 0 + ) + }, + (chart) => { + return chart.animate({ + config: { + title: 'When you use set and no other channel options' + } + }) + }, + (chart) => { + return chart.animate({ + channels: { + // x: { attach: [ 'Kinds' ] }, + x: { + attach: 'Kinds' + }, + // y: { detach: [ 'Kinds' ] }, + y: { + detach: 'Kinds' + } + }, + align: 'none' + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + style: null, + config: { + title: 'Store function', + align: 'stretch', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + label: { attach: 'Popularity' } + }, + color: { set: 'Kinds' } + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/sorting.js b/docs/tutorial/sorting.js index e1c0d7947..5e30c4df9 100644 --- a/docs/tutorial/sorting.js +++ b/docs/tutorial/sorting.js @@ -2,118 +2,118 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Switch to ascending order...', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - sort: 'byValue' - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: '...or descending order.' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - reverse: true - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: "Let's get back to where we were" - } - }) - }, - (chart) => { - return chart.animate({ - config: { - sort: 'none', - reverse: false - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'With two discretes on one axis...' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { - detach: 'Kinds' - }, - x: { - set: ['Genres', 'Kinds'] - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: '...grouping is determined by their order.' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - x: { - set: ['Kinds', 'Genres'] - } - } - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Switch to ascending order...', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + sort: 'byValue' + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: '...or descending order.' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + reverse: true + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: "Let's get back to where we were" + } + }) + }, + (chart) => { + return chart.animate({ + config: { + sort: 'none', + reverse: false + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'With two discretes on one axis...' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { + detach: 'Kinds' + }, + x: { + set: ['Genres', 'Kinds'] + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: '...grouping is determined by their order.' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + x: { + set: ['Kinds', 'Genres'] + } + } + } + }) + } + ] + } + ]) }) diff --git a/docs/tutorial/stacking_explanation.js b/docs/tutorial/stacking_explanation.js index e43be1737..e3ca37300 100644 --- a/docs/tutorial/stacking_explanation.js +++ b/docs/tutorial/stacking_explanation.js @@ -1,141 +1,147 @@ const mdChartLoaded = import('../assets/javascripts/mdchart.js') const animOptions = { - duration: 2, - delay: 3 + duration: 2, + delay: 3 } Promise.all([mdChartLoaded]).then((results) => { - const MdChart = results[0].default - const data = { - series: [ - { name: 'D', values: ['A', 'B', 'C'] }, - { name: 'M', values: [6.1, 3.5, 1.4] }, - { name: 'i', values: [1, 1, 1] } - ] - } - const mdchart = new MdChart(data, 'tutorial') + const MdChart = results[0].default + const data = { + series: [ + { name: 'D', values: ['A', 'B', 'C'] }, + { name: 'M', values: [6.1, 3.5, 1.4] }, + { name: 'i', values: [1, 1, 1] } + ] + } + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - // tutorial_01 - { - anims: [ - (chart) => - chart.animate( - { - config: { - title: 'Dimension only', - channels: { - x: { - set: ['D', 'i'], - range: { max: 3 }, - axis: true, - labels: false, - title: 'x: [ dimension ]', - interlacing: false, - markerGuides: true, - ticks: false - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - }, - legend: null - } - }, - { ...animOptions, delay: 0 } - ), - (chart) => - chart.animate( - { - config: { - title: 'Measure and dimension', - channels: { - x: { - set: ['D', 'M'], - range: { max: 12 }, - axis: true, - labels: true, - title: 'x: [ measure, dimension ]', - interlacing: false, - markerGuides: true, - ticks: true - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - } - } - }, - animOptions - ), - (chart) => - chart.animate( - { - config: { - title: 'Measure only', - channels: { - x: { - set: 'M', - range: { max: 7 }, - axis: true, - labels: true, - title: 'x: [ measure ]', - interlacing: false, - markerGuides: true, - ticks: true - }, - y: { - set: null, - axis: true, - labels: false, - title: null, - interlacing: false - }, - color: 'D', - label: ['D'] - } - } - }, - animOptions - ), - (chart) => - chart.animate( - { - config: { - title: 'Dimension only', - channels: { - x: { - set: ['D', 'i'], - range: { max: 3 }, - axis: true, - labels: false, - title: 'x: [ dimension ]', - interlacing: false, - markerGuides: true, - ticks: false - }, - y: { set: null, axis: true, labels: false, title: null, interlacing: false }, - color: 'D', - label: ['D'] - }, - legend: null - } - }, - animOptions - ) - ] - } - ]) + mdchart.create([ + // tutorial_01 + { + anims: [ + (chart) => + chart.animate( + { + config: { + title: 'Dimension only', + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + }, + legend: null + } + }, + { ...animOptions, delay: 0 } + ), + (chart) => + chart.animate( + { + config: { + title: 'Measure and dimension', + channels: { + x: { + set: ['D', 'M'], + range: { max: 12 }, + axis: true, + labels: true, + title: 'x: [ measure, dimension ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } + }, + animOptions + ), + (chart) => + chart.animate( + { + config: { + title: 'Measure only', + channels: { + x: { + set: 'M', + range: { max: 7 }, + axis: true, + labels: true, + title: 'x: [ measure ]', + interlacing: false, + markerGuides: true, + ticks: true + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + } + } + }, + animOptions + ), + (chart) => + chart.animate( + { + config: { + title: 'Dimension only', + channels: { + x: { + set: ['D', 'i'], + range: { max: 3 }, + axis: true, + labels: false, + title: 'x: [ dimension ]', + interlacing: false, + markerGuides: true, + ticks: false + }, + y: { + set: null, + axis: true, + labels: false, + title: null, + interlacing: false + }, + color: 'D', + label: ['D'] + }, + legend: null + } + }, + animOptions + ) + ] + } + ]) }) diff --git a/docs/tutorial/without_coordinates_noop_channel.js b/docs/tutorial/without_coordinates_noop_channel.js index 56153f006..9ad5d44a1 100644 --- a/docs/tutorial/without_coordinates_noop_channel.js +++ b/docs/tutorial/without_coordinates_noop_channel.js @@ -2,87 +2,87 @@ const dataLoaded = import('../assets/data/music_data.js') const mdChartLoaded = import('../assets/javascripts/mdchart.js') Promise.all([dataLoaded, mdChartLoaded]).then((results) => { - const data = results[0].default - const MdChart = results[1].default - const mdchart = new MdChart(data, 'tutorial') + const data = results[0].default + const MdChart = results[1].default + const mdchart = new MdChart(data, 'tutorial') - mdchart.create([ - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Treemap', - channels: { - y: { set: ['Popularity', 'Kinds'] }, - x: { set: 'Genres' }, - color: { set: 'Kinds' }, - label: { set: 'Popularity' } - } - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - y: { - set: null - }, - x: { - set: null - }, - size: { - attach: ['Genres', 'Popularity'] - } - } - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Bubble chart - stacked' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - geometry: 'circle' - } - }) - } - ] - }, - { - anims: [ - (chart) => { - return chart.animate({ - config: { - title: 'Bubble chart - grouped - using the noop channel' - } - }) - }, - (chart) => { - return chart.animate({ - config: { - channels: { - size: { - detach: 'Genres' - }, - noop: { - set: 'Genres' - } - } - } - }) - } - ] - } - ]) + mdchart.create([ + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Treemap', + channels: { + y: { set: ['Popularity', 'Kinds'] }, + x: { set: 'Genres' }, + color: { set: 'Kinds' }, + label: { set: 'Popularity' } + } + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + y: { + set: null + }, + x: { + set: null + }, + size: { + attach: ['Genres', 'Popularity'] + } + } + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Bubble chart - stacked' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + geometry: 'circle' + } + }) + } + ] + }, + { + anims: [ + (chart) => { + return chart.animate({ + config: { + title: 'Bubble chart - grouped - using the noop channel' + } + }) + }, + (chart) => { + return chart.animate({ + config: { + channels: { + size: { + detach: 'Genres' + }, + noop: { + set: 'Genres' + } + } + } + }) + } + ] + } + ]) }) diff --git a/package.json b/package.json index 94e473df6..3cad47f02 100644 --- a/package.json +++ b/package.json @@ -1,161 +1,161 @@ { - "name": "vizzu", - "main": "dist/vizzu.min.js", - "types": "dist/index.d.ts", - "type": "module", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/vizzu.min.js", - "default": "./dist/vizzu.min.js" - }, - "./*.wasm": "./dist/*.wasm", - "./*.json": "./*.json" - }, - "files": [ - "CHANGELOG.md", - "LICENSE", - "package.json", - "README.md", - "dist/cvizzu.wasm", - "dist/vizzu.min.js", - "dist/*.d.ts", - "dist/**/*.d.ts" - ], - "description": "Vizzu is a free, open-source Javascript/C++ library utilizing a generic dataviz engine that generates many types of charts and seamlessly animates between them. It can be used to create static charts but more importantly it is designed for building animated data stories and interactive explorers as Vizzu enables showing different perspectives of the data that the viewers can easily follow due to the animation.", - "keywords": [ - "chart", - "charts", - "dataviz", - "charting-library", - "dashboard", - "animation", - "storytelling", - "data-visualization", - "data-analysis", - "charting", - "datavisualization" - ], - "homepage": "https://lib.vizzuhq.com/", - "url": "https://github.com/vizzuhq/vizzu-lib/issues", - "email": "hello@vizzuhq.com", - "license": "Apache-2.0", - "author": "Vizzu Inc.", - "repository": { - "type": "git", - "url": "https://github.com/vizzuhq/vizzu-lib.git" - }, - "scripts": { - "lock": "npm-run-all lock:*", - "lock:js": "npm update", - "lock:py": "./tools/ci/run/lock-py.sh", - "format": "npm-run-all format:*", - "format:src": "npm-run-all format-src:*", - "format-src:js": "npx prettier -c src test package.json", - "format:docs": "npm-run-all format-docs:*", - "format-docs:js": "npx prettier -c docs", - "format-docs:py": "./tools/ci/run/format-mdformat-py.sh --check docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", - "format:tools": "npm-run-all format-tools:*", - "format-tools:js": "npx prettier -c tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs .github", - "format-tools:py": "./tools/ci/run/format-black-py.sh --diff --check tools", - "lint": "npm-run-all lint:*", - "lint:src": "npm-run-all lint-src:*", - "lint-src:js": "npx eslint --ext .js,.cjs,.mjs,.ts --config .eslintrc.cjs src test", - "lint:docs": "npm-run-all lint-docs:*", - "lint-docs:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", - "lint:tools": "npm-run-all lint-tools:*", - "lint-tools:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", - "lint-tools:py": "./tools/ci/run/lint-pylint-py.sh tools", - "type": "npm-run-all type:*", - "type:src": "npm-run-all type-src:*", - "type-src:js": "npx check-dts ./test/dts/vizzu.d.ts", - "type:tools": "npm-run-all type-tools:*", - "type-tools:py": "./tools/ci/run/type-mypy-py.sh tools", - "test": "node test/integration/test.cjs", - "test:unit": "NODE_OPTIONS='--experimental-vm-modules' npx jest --config test/unit/jest.config.js --verbose", - "test:e2e": "node test/integration/test.cjs", - "test:e2e-unit": "npx jest --config=./test/integration/modules/jest.config.cjs --verbose", - "test:man": "node test/integration/man.cjs", - "ci": "npm-run-all ci:*", - "ci:src": "npm-run-all ci-src:*", - "ci-src:js": "npm-run-all format-src:js lint-src:js type-src:js test:unit test", - "ci:docs": "npm-run-all ci-docs:*", - "ci-docs:js": "npm-run-all format-docs:js lint-docs:js", - "ci-docs:py": "npm-run-all format-docs:py", - "ci:tools": "npm-run-all ci-tools:*", - "ci-tools:js": "npm-run-all format-tools:js lint-tools:js", - "ci-tools:py": "npm-run-all format-tools:py lint-tools:py type-tools:py", - "fix": "npm-run-all fix-format fix-lint", - "fix-format": "npm-run-all fix-format:*", - "fix-format:src": "npm-run-all fix-format-src:js", - "fix-format-src:js": "npx prettier -w src test package.json", - "fix-format:docs": "npm-run-all fix-format-docs:*", - "fix-format-docs:js": "npx prettier -w docs", - "fix-format-docs:py": "./tools/ci/run/format-mdformat-py.sh docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", - "fix-format:tools": "npm-run-all fix-format-tools:*", - "fix-format-tools:js": "npx prettier -w tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs .github", - "fix-format-tools:py": "./tools/ci/run/format-black-py.sh tools", - "fix-lint": "npm-run-all fix-lint:*", - "fix-lint:src": "npm-run-all fix-lint-src:*", - "fix-lint-src:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs src test", - "fix-lint:docs": "npm-run-all fix-lint-docs:*", - "fix-lint-docs:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", - "fix-lint:tools": "npm-run-all fix-lint-tools:*", - "fix-lint-tools:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", - "gen-thumbnail": "./tools/ci/run/docs-gen-thumbnail.sh", - "gen-thumbnail-gsutil": "./tools/ci/run/docs-gen-thumbnail-gsutil.sh", - "build-docs": "./tools/ci/run/docs-build.sh", - "deploy-docs": "./tools/ci/run/docs-deploy.sh", - "rollup": "./tools/ci/run/pkg-rollup-js.sh", - "set-version": "./tools/ci/run/pkg-set-version-js.sh", - "purge": "./tools/ci/run/pkg-purge-js.sh", - "build:js": "./tools/ci/run/pkg-build-js.sh", - "build:ts": "./tools/ci/run/pkg-build-ts.sh", - "build:desktop": "./tools/ci/run/pkg-build-desktop.sh", - "build:desktop-clangformat": "./tools/ci/run/pkg-build-desktop-clangformat.sh", - "build:desktop-clangtidy": "./tools/ci/run/pkg-build-desktop-clangtidy.sh", - "build:wasm": "./tools/ci/run/pkg-build-wasm.sh", - "build:wasm-wocpp": "./tools/ci/run/pkg-build-wasm-wocpp.sh", - "build:wasm-wocpp-gsutil": "./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh" - }, - "dependencies": { - "type-fest": "^4.6.0" - }, - "devDependencies": { - "@rollup/plugin-terser": "^0.4.3", - "@tsconfig/strictest": "^2.0.2", - "@typescript-eslint/eslint-plugin": "^6.7.5", - "@typescript-eslint/parser": "^6.7.5", - "@vizzu/prettier-config": "^0.1.0", - "aggregate-error": "^5.0.0", - "ajv": "8.12.0", - "axios": "^1.5.1", - "check-dts": "^0.7.2", - "colors": "^1.4.0", - "eslint": "^8.49.0", - "eslint-config-prettier": "^9.0.0", - "eslint-config-standard": "^17.1.0", - "express": "^4.18.2", - "jest": "^29.7.0", - "jest-extended": "^4.0.1", - "js-yaml": "^4.1.0", - "node-fetch": "<3.0.0", - "npm-run-all": "^4.1.5", - "p-limit": "^4.0.0", - "pngjs": "^7.0.0", - "prettier": "^3.0.3", - "puppeteer": "^21.3.6", - "puppeteer-extra": "^3.3.6", - "puppeteer-extra-plugin-user-preferences": "^2.4.1", - "rollup": "^3.29.2", - "serve-static": "^1.15.0", - "strip-color": "^0.1.0", - "typedoc": "~0.25.2", - "typedoc-plugin-markdown": "~3.16.0", - "typedoc-plugin-rename-defaults": "~0.6.4", - "typescript": "^5.2.2", - "yaml": "^2.3.2", - "yargs": "^17.7.2" - }, - "prettier": "@vizzu/prettier-config" + "name": "vizzu", + "main": "dist/vizzu.min.js", + "types": "dist/index.d.ts", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/vizzu.min.js", + "default": "./dist/vizzu.min.js" + }, + "./*.wasm": "./dist/*.wasm", + "./*.json": "./*.json" + }, + "files": [ + "CHANGELOG.md", + "LICENSE", + "package.json", + "README.md", + "dist/cvizzu.wasm", + "dist/vizzu.min.js", + "dist/*.d.ts", + "dist/**/*.d.ts" + ], + "description": "Vizzu is a free, open-source Javascript/C++ library utilizing a generic dataviz engine that generates many types of charts and seamlessly animates between them. It can be used to create static charts but more importantly it is designed for building animated data stories and interactive explorers as Vizzu enables showing different perspectives of the data that the viewers can easily follow due to the animation.", + "keywords": [ + "chart", + "charts", + "dataviz", + "charting-library", + "dashboard", + "animation", + "storytelling", + "data-visualization", + "data-analysis", + "charting", + "datavisualization" + ], + "homepage": "https://lib.vizzuhq.com/", + "url": "https://github.com/vizzuhq/vizzu-lib/issues", + "email": "hello@vizzuhq.com", + "license": "Apache-2.0", + "author": "Vizzu Inc.", + "repository": { + "type": "git", + "url": "https://github.com/vizzuhq/vizzu-lib.git" + }, + "scripts": { + "lock": "npm-run-all lock:*", + "lock:js": "npm update", + "lock:py": "./tools/ci/run/lock-py.sh", + "format": "npm-run-all format:*", + "format:src": "npm-run-all format-src:*", + "format-src:js": "npx prettier -c src test package.json", + "format:docs": "npm-run-all format-docs:*", + "format-docs:js": "npx prettier -c docs", + "format-docs:py": "./tools/ci/run/format-mdformat-py.sh --check docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", + "format:tools": "npm-run-all format-tools:*", + "format-tools:js": "npx prettier -c tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs .github", + "format-tools:py": "./tools/ci/run/format-black-py.sh --diff --check tools", + "lint": "npm-run-all lint:*", + "lint:src": "npm-run-all lint-src:*", + "lint-src:js": "npx eslint --ext .js,.cjs,.mjs,.ts --config .eslintrc.cjs src test", + "lint:docs": "npm-run-all lint-docs:*", + "lint-docs:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", + "lint:tools": "npm-run-all lint-tools:*", + "lint-tools:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", + "lint-tools:py": "./tools/ci/run/lint-pylint-py.sh tools", + "type": "npm-run-all type:*", + "type:src": "npm-run-all type-src:*", + "type-src:js": "npx check-dts ./test/dts/vizzu.d.ts", + "type:tools": "npm-run-all type-tools:*", + "type-tools:py": "./tools/ci/run/type-mypy-py.sh tools", + "test": "node test/integration/test.cjs", + "test:unit": "NODE_OPTIONS='--experimental-vm-modules' npx jest --config test/unit/jest.config.js --verbose", + "test:e2e": "node test/integration/test.cjs", + "test:e2e-unit": "npx jest --config=./test/integration/modules/jest.config.cjs --verbose", + "test:man": "node test/integration/man.cjs", + "ci": "npm-run-all ci:*", + "ci:src": "npm-run-all ci-src:*", + "ci-src:js": "npm-run-all format-src:js lint-src:js type-src:js test:unit test", + "ci:docs": "npm-run-all ci-docs:*", + "ci-docs:js": "npm-run-all format-docs:js lint-docs:js", + "ci-docs:py": "npm-run-all format-docs:py", + "ci:tools": "npm-run-all ci-tools:*", + "ci-tools:js": "npm-run-all format-tools:js lint-tools:js", + "ci-tools:py": "npm-run-all format-tools:py lint-tools:py type-tools:py", + "fix": "npm-run-all fix-format fix-lint", + "fix-format": "npm-run-all fix-format:*", + "fix-format:src": "npm-run-all fix-format-src:js", + "fix-format-src:js": "npx prettier -w src test package.json", + "fix-format:docs": "npm-run-all fix-format-docs:*", + "fix-format-docs:js": "npx prettier -w docs", + "fix-format-docs:py": "./tools/ci/run/format-mdformat-py.sh docs README.md CONTRIBUTING.md CODE_OF_CONDUCT.md FAQ.md PROJECTS.md", + "fix-format:tools": "npm-run-all fix-format-tools:*", + "fix-format-tools:js": "npx prettier -w tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs .github", + "fix-format-tools:py": "./tools/ci/run/format-black-py.sh tools", + "fix-lint": "npm-run-all fix-lint:*", + "fix-lint:src": "npm-run-all fix-lint-src:*", + "fix-lint-src:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs src test", + "fix-lint:docs": "npm-run-all fix-lint-docs:*", + "fix-lint-docs:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", + "fix-lint:tools": "npm-run-all fix-lint-tools:*", + "fix-lint-tools:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", + "gen-thumbnail": "./tools/ci/run/docs-gen-thumbnail.sh", + "gen-thumbnail-gsutil": "./tools/ci/run/docs-gen-thumbnail-gsutil.sh", + "build-docs": "./tools/ci/run/docs-build.sh", + "deploy-docs": "./tools/ci/run/docs-deploy.sh", + "rollup": "./tools/ci/run/pkg-rollup-js.sh", + "set-version": "./tools/ci/run/pkg-set-version-js.sh", + "purge": "./tools/ci/run/pkg-purge-js.sh", + "build:js": "./tools/ci/run/pkg-build-js.sh", + "build:ts": "./tools/ci/run/pkg-build-ts.sh", + "build:desktop": "./tools/ci/run/pkg-build-desktop.sh", + "build:desktop-clangformat": "./tools/ci/run/pkg-build-desktop-clangformat.sh", + "build:desktop-clangtidy": "./tools/ci/run/pkg-build-desktop-clangtidy.sh", + "build:wasm": "./tools/ci/run/pkg-build-wasm.sh", + "build:wasm-wocpp": "./tools/ci/run/pkg-build-wasm-wocpp.sh", + "build:wasm-wocpp-gsutil": "./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh" + }, + "dependencies": { + "type-fest": "^4.6.0" + }, + "devDependencies": { + "@rollup/plugin-terser": "^0.4.3", + "@tsconfig/strictest": "^2.0.2", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", + "@vizzu/prettier-config": "^0.1.0", + "aggregate-error": "^5.0.0", + "ajv": "8.12.0", + "axios": "^1.5.1", + "check-dts": "^0.7.2", + "colors": "^1.4.0", + "eslint": "^8.49.0", + "eslint-config-prettier": "^9.0.0", + "eslint-config-standard": "^17.1.0", + "express": "^4.18.2", + "jest": "^29.7.0", + "jest-extended": "^4.0.1", + "js-yaml": "^4.1.0", + "node-fetch": "<3.0.0", + "npm-run-all": "^4.1.5", + "p-limit": "^4.0.0", + "pngjs": "^7.0.0", + "prettier": "^3.0.3", + "puppeteer": "^21.3.6", + "puppeteer-extra": "^3.3.6", + "puppeteer-extra-plugin-user-preferences": "^2.4.1", + "rollup": "^3.29.2", + "serve-static": "^1.15.0", + "strip-color": "^0.1.0", + "typedoc": "~0.25.2", + "typedoc-plugin-markdown": "~3.16.0", + "typedoc-plugin-rename-defaults": "~0.6.4", + "typescript": "^5.2.2", + "yaml": "^2.3.2", + "yargs": "^17.7.2" + }, + "prettier": "@vizzu/prettier-config" } diff --git a/src/.eslintrc.cjs b/src/.eslintrc.cjs index 7f70051f7..b003d6721 100644 --- a/src/.eslintrc.cjs +++ b/src/.eslintrc.cjs @@ -1,10 +1,10 @@ module.exports = { - globals: { - getValue: true, - LibraryManager: true, - mergeInto: true, - Module: true, - setValue: true, - UTF8ToString: true - } + globals: { + getValue: true, + LibraryManager: true, + mergeInto: true, + Module: true, + setValue: true, + UTF8ToString: true + } } diff --git a/src/apps/weblib/canvas.yaml b/src/apps/weblib/canvas.yaml index 9c6c8cbd4..cb5bf7139 100644 --- a/src/apps/weblib/canvas.yaml +++ b/src/apps/weblib/canvas.yaml @@ -1,37 +1,37 @@ Canvas: - setCursor: { name: C.CString } - frameBegin: {} - frameEnd: {} - setClipRect: { x: number, y: number, sizex: number, sizey: number } - setClipCircle: { x: number, y: number, radius: number } - setClipPolygon: {} - setBrushColor: { r: number, g: number, b: number, a: number } - setLineColor: { r: number, g: number, b: number, a: number } - setLineWidth: { width: number } - setFont: { font: C.CString } - beginDropShadow: {} - setDropShadowBlur: { radius: number } - setDropShadowColor: { r: number, g: number, b: number, a: number } - setDropShadowOffset: { x: number, y: number } - endDropShadow: {} - beginPolygon: {} - addPoint: { x: number, y: number } - addBezier: { c0x: number, c0y: number, c1x: number, c1y: number, x: number, y: number } - endPolygon: {} - rectangle: { x: number, y: number, sizex: number, sizey: number } - circle: { x: number, y: number, radius: number } - line: { x1: number, y1: number, x2: number, y2: number } - textBoundary: { text: C.CString, sizeX: C.CPointer/double *, sizeY: C.CPointer/double * } - text: { x: number, y: number, sizex: number, sizey: number, text: C.CString } - setBrushGradient: - { - x1: number, - y1: number, - x2: number, - y2: number, - stopCount: number/size_t, - stops: C.CColorGradientPtr - } - transform: { a: number, b: number, c: number, d: number, e: number, f: number } - save: {} - restore: {} + setCursor: { name: C.CString } + frameBegin: {} + frameEnd: {} + setClipRect: { x: number, y: number, sizex: number, sizey: number } + setClipCircle: { x: number, y: number, radius: number } + setClipPolygon: {} + setBrushColor: { r: number, g: number, b: number, a: number } + setLineColor: { r: number, g: number, b: number, a: number } + setLineWidth: { width: number } + setFont: { font: C.CString } + beginDropShadow: {} + setDropShadowBlur: { radius: number } + setDropShadowColor: { r: number, g: number, b: number, a: number } + setDropShadowOffset: { x: number, y: number } + endDropShadow: {} + beginPolygon: {} + addPoint: { x: number, y: number } + addBezier: { c0x: number, c0y: number, c1x: number, c1y: number, x: number, y: number } + endPolygon: {} + rectangle: { x: number, y: number, sizex: number, sizey: number } + circle: { x: number, y: number, radius: number } + line: { x1: number, y1: number, x2: number, y2: number } + textBoundary: { text: C.CString, sizeX: C.CPointer/double *, sizeY: C.CPointer/double * } + text: { x: number, y: number, sizex: number, sizey: number, text: C.CString } + setBrushGradient: + { + x1: number, + y1: number, + x2: number, + y2: number, + stopCount: number/size_t, + stops: C.CColorGradientPtr + } + transform: { a: number, b: number, c: number, d: number, e: number, f: number } + save: {} + restore: {} diff --git a/src/apps/weblib/interface.js b/src/apps/weblib/interface.js index 346fe540a..67f1e2478 100644 --- a/src/apps/weblib/interface.js +++ b/src/apps/weblib/interface.js @@ -1,5 +1,5 @@ mergeInto(LibraryManager.library, { - openUrl: function (url) { - window.open(UTF8ToString(url), '_blank') - } + openUrl: function (url) { + window.open(UTF8ToString(url), '_blank') + } }) diff --git a/src/apps/weblib/ts-api/animcompleting.ts b/src/apps/weblib/ts-api/animcompleting.ts index 0d3d8f981..45b07da5e 100644 --- a/src/apps/weblib/ts-api/animcompleting.ts +++ b/src/apps/weblib/ts-api/animcompleting.ts @@ -3,6 +3,6 @@ import { AnimControl } from './animcontrol.js' /** Promise resolves to the Vizzu object when the animation completed. */ export interface AnimCompleting extends Promise { - /** Promise resolves to the animation controller object when the animation starts. */ - activated?: Promise + /** Promise resolves to the animation controller object when the animation starts. */ + activated?: Promise } diff --git a/src/apps/weblib/ts-api/animcontrol.ts b/src/apps/weblib/ts-api/animcontrol.ts index d42a8fda6..7c2a210fb 100644 --- a/src/apps/weblib/ts-api/animcontrol.ts +++ b/src/apps/weblib/ts-api/animcontrol.ts @@ -4,104 +4,104 @@ import { CAnimControl, CAnimation } from './module/canimctrl.js' /** Control object for animation. */ export class AnimControl { - private _cControl: CAnimControl + private _cControl: CAnimControl - constructor(cControl: CAnimControl) { - this._cControl = cControl - } + constructor(cControl: CAnimControl) { + this._cControl = cControl + } - /** Returns a reference to the actual animation for further reuse. */ - store(): CAnimation { - return this._cControl.storeAnim() - } + /** Returns a reference to the actual animation for further reuse. */ + store(): CAnimation { + return this._cControl.storeAnim() + } - /** Seeks the animation to the position specified by time or progress + /** Seeks the animation to the position specified by time or progress percentage. Seeking the animation to the end position while the animation is paused will not trigger the animation complete promise to resolve. */ - seek(value: Position): this { - const param = typeof value !== 'string' ? value.toString() : value - this._setParam('seek', param) - return this - } + seek(value: Position): this { + const param = typeof value !== 'string' ? value.toString() : value + this._setParam('seek', param) + return this + } - /** Setting the playback speed of the animation. It is 1.0 by default. + /** Setting the playback speed of the animation. It is 1.0 by default. Negative values are considered 0. */ - set speed(value: number) { - const param = typeof value !== 'string' ? value.toString() : value - this._setParam('speed', param) - } - - /** Getting the playback speed of the animation. */ - get speed(): number { - return Number(this._getParam('speed')) - } - - /** Setting the playback state of the animation. */ - set playState(value: 'running' | 'paused') { - this._setParam('playState', value) - } - - /** Getting the playback state of the animation. */ - get playState(): 'running' | 'paused' { - return this._getParam('playState') as 'running' | 'paused' - } - - /** Setting the play direction of the animation. */ - set direction(value: 'normal' | 'reverse') { - this._setParam('direction', value) - } - - /** Getting the play direction of the animation. */ - get direction(): 'normal' | 'reverse' { - return this._getParam('direction') as 'normal' | 'reverse' - } - - /** Setting the position of the animation. */ - set position(value: number) { - const param = typeof value !== 'string' ? value.toString() : value - this._setParam('position', param) - } - - /** Getting the position of the animation. */ - get position(): number { - return this._getParam('position') as number - } - - /** @deprecated Pauses the controlled animation. */ - pause(): this { - this.playState = 'paused' - return this - } - - /** @deprecated Plays/resumes playing of the controlled animation. */ - play(): this { - this.playState = 'running' - return this - } - - /** Stops the current animation seeking it back to its start position. */ - stop(): this { - this._setParam('stop') - return this - } - - /** Cancels the animation, will reject the animation promise. */ - cancel(): this { - this._setParam('cancel') - return this - } - - /** @deprecated Changes the direction of the controlled animation to reverse. */ - reverse(): this { - this.direction = this.direction === 'reverse' ? 'normal' : 'reverse' - return this - } - - private _setParam(command: string, param = ''): void { - this._cControl.setParam(command, param) - } - - private _getParam(command: string): unknown { - return this._cControl.getParam(command) - } + set speed(value: number) { + const param = typeof value !== 'string' ? value.toString() : value + this._setParam('speed', param) + } + + /** Getting the playback speed of the animation. */ + get speed(): number { + return Number(this._getParam('speed')) + } + + /** Setting the playback state of the animation. */ + set playState(value: 'running' | 'paused') { + this._setParam('playState', value) + } + + /** Getting the playback state of the animation. */ + get playState(): 'running' | 'paused' { + return this._getParam('playState') as 'running' | 'paused' + } + + /** Setting the play direction of the animation. */ + set direction(value: 'normal' | 'reverse') { + this._setParam('direction', value) + } + + /** Getting the play direction of the animation. */ + get direction(): 'normal' | 'reverse' { + return this._getParam('direction') as 'normal' | 'reverse' + } + + /** Setting the position of the animation. */ + set position(value: number) { + const param = typeof value !== 'string' ? value.toString() : value + this._setParam('position', param) + } + + /** Getting the position of the animation. */ + get position(): number { + return this._getParam('position') as number + } + + /** @deprecated Pauses the controlled animation. */ + pause(): this { + this.playState = 'paused' + return this + } + + /** @deprecated Plays/resumes playing of the controlled animation. */ + play(): this { + this.playState = 'running' + return this + } + + /** Stops the current animation seeking it back to its start position. */ + stop(): this { + this._setParam('stop') + return this + } + + /** Cancels the animation, will reject the animation promise. */ + cancel(): this { + this._setParam('cancel') + return this + } + + /** @deprecated Changes the direction of the controlled animation to reverse. */ + reverse(): this { + this.direction = this.direction === 'reverse' ? 'normal' : 'reverse' + return this + } + + private _setParam(command: string, param = ''): void { + this._cControl.setParam(command, param) + } + + private _getParam(command: string): unknown { + return this._cControl.getParam(command) + } } diff --git a/src/apps/weblib/ts-api/chart.ts b/src/apps/weblib/ts-api/chart.ts index 6b4402078..aeec458cb 100644 --- a/src/apps/weblib/ts-api/chart.ts +++ b/src/apps/weblib/ts-api/chart.ts @@ -23,138 +23,138 @@ import { AnimControl } from './animcontrol.js' import { CoordSystem } from './plugins/coordsys.js' export class Chart { - private _cChart: CChart - private _render: Render - private _module: Module - private _canvas: HtmlCanvas - private _cData: CData - private _data: Data - private _events: Events - private _plugins: PluginRegistry - private _updateInterval?: ReturnType - - constructor(module: Module, options: VizzuOptions, plugins: PluginRegistry) { - this._plugins = plugins - this._module = module - - this._canvas = new HtmlCanvas(HtmlCanvas.extractOptions(options)) - - this._cChart = this._module.createChart() - this._cData = this._module.getData(this._cChart) - this._data = new Data(this._cData) - - this._render = new Render(this._module, this._cChart, this._canvas) - this._events = new Events(this._cChart, this._canvas) - this._plugins.init(this._events) - } - - registerBuiltins(): void { - this._plugins.register(new Logging(this._module.setLogging.bind(this._module)), false) - this._plugins.register(this._canvas, true) - this._plugins.register(this._render, true) - this._plugins.register(new CoordSystem(this._module.getCoordSystem(this._cChart)), true) - this._plugins.register(new CSSProperties(), false) - this._plugins.register(new Shorthands(), true) - this._plugins.register(new PivotData(), true) - this._plugins.register(new PointerEvents(this._cChart), true) - this._plugins.register(new Tooltip(), false) - } - - start(): void { - if (!this._updateInterval) { - this._render.updateFrame() - this._updateInterval = setInterval(() => { - this._render.updateFrame() - }, 25) - } - } - - async prepareAnimation( - target: Anim.Keyframes | CAnimation, - options?: Anim.ControlOptions & Anim.Options - ): Promise { - const ctx = Object.assign({ target }, options !== undefined ? { options } : {}) - await this._plugins.hook(Hooks.prepareAnimation, ctx).default((ctx) => { - this.setAnimParams(ctx.target, ctx.options) - }) - } - - runAnimation(callback: (ok: boolean) => void): void { - const ctx = { callback } - this._plugins.hook(Hooks.runAnimation, ctx).default((ctx) => { - this._cChart.animate(ctx.callback) - }) - } - - setAnimParams( - target: Anim.Keyframes | CAnimation, - options?: Anim.ControlOptions & Anim.Options - ): void { - if (target instanceof CAnimation) { - this._cChart.restoreAnim(target) - } else { - for (const keyframe of target) this._setKeyframe(keyframe.target, keyframe.options) - } - if (options) this._cChart.animOptions.set(options) - } - - private _setKeyframe(target: Anim.Target | Snapshot, options?: Anim.Options): void { - if (target) { - if (target instanceof Snapshot) { - this._cChart.restoreSnapshot(target) - } else { - if (target.data) this._data.set(target.data) - if (target.style) this._cChart.style.set(target.style) - if (target.config) this._cChart.config.set(target.config) - } - } - if (options) this._cChart.animOptions.set(options) - this._cChart.setKeyframe() - } - - destruct(): void { - this._canvas.destruct() - if (this._updateInterval) clearInterval(this._updateInterval) - delete this._updateInterval - } - - version(): string { - return this._module.version() - } - - get data(): Mirrored { - return this._cData.getMetaInfo() - } - - get config(): Mirrored { - return this._cChart.config.get() - } - - get style(): Mirrored { - return this._cChart.style.get() - } - - getComputedStyle(): Mirrored { - return this._cChart.computedStyle.get() - } - - on(eventName: T, handler: EventHandler): void { - this._events.add(eventName, handler) - } - - off(eventName: T, handler: EventHandler): void { - this._events.remove(eventName, handler) - } - - store(): Snapshot { - return this._cChart.storeSnapshot() - } - - getAnimControl(): AnimControl { - return new AnimControl(this._getCAnimControl()) - } - - private _getCAnimControl(): CAnimControl { - return this._module.getAnimControl(this._cChart) - } + private _cChart: CChart + private _render: Render + private _module: Module + private _canvas: HtmlCanvas + private _cData: CData + private _data: Data + private _events: Events + private _plugins: PluginRegistry + private _updateInterval?: ReturnType + + constructor(module: Module, options: VizzuOptions, plugins: PluginRegistry) { + this._plugins = plugins + this._module = module + + this._canvas = new HtmlCanvas(HtmlCanvas.extractOptions(options)) + + this._cChart = this._module.createChart() + this._cData = this._module.getData(this._cChart) + this._data = new Data(this._cData) + + this._render = new Render(this._module, this._cChart, this._canvas) + this._events = new Events(this._cChart, this._canvas) + this._plugins.init(this._events) + } + + registerBuiltins(): void { + this._plugins.register(new Logging(this._module.setLogging.bind(this._module)), false) + this._plugins.register(this._canvas, true) + this._plugins.register(this._render, true) + this._plugins.register(new CoordSystem(this._module.getCoordSystem(this._cChart)), true) + this._plugins.register(new CSSProperties(), false) + this._plugins.register(new Shorthands(), true) + this._plugins.register(new PivotData(), true) + this._plugins.register(new PointerEvents(this._cChart), true) + this._plugins.register(new Tooltip(), false) + } + + start(): void { + if (!this._updateInterval) { + this._render.updateFrame() + this._updateInterval = setInterval(() => { + this._render.updateFrame() + }, 25) + } + } + + async prepareAnimation( + target: Anim.Keyframes | CAnimation, + options?: Anim.ControlOptions & Anim.Options + ): Promise { + const ctx = Object.assign({ target }, options !== undefined ? { options } : {}) + await this._plugins.hook(Hooks.prepareAnimation, ctx).default((ctx) => { + this.setAnimParams(ctx.target, ctx.options) + }) + } + + runAnimation(callback: (ok: boolean) => void): void { + const ctx = { callback } + this._plugins.hook(Hooks.runAnimation, ctx).default((ctx) => { + this._cChart.animate(ctx.callback) + }) + } + + setAnimParams( + target: Anim.Keyframes | CAnimation, + options?: Anim.ControlOptions & Anim.Options + ): void { + if (target instanceof CAnimation) { + this._cChart.restoreAnim(target) + } else { + for (const keyframe of target) this._setKeyframe(keyframe.target, keyframe.options) + } + if (options) this._cChart.animOptions.set(options) + } + + private _setKeyframe(target: Anim.Target | Snapshot, options?: Anim.Options): void { + if (target) { + if (target instanceof Snapshot) { + this._cChart.restoreSnapshot(target) + } else { + if (target.data) this._data.set(target.data) + if (target.style) this._cChart.style.set(target.style) + if (target.config) this._cChart.config.set(target.config) + } + } + if (options) this._cChart.animOptions.set(options) + this._cChart.setKeyframe() + } + + destruct(): void { + this._canvas.destruct() + if (this._updateInterval) clearInterval(this._updateInterval) + delete this._updateInterval + } + + version(): string { + return this._module.version() + } + + get data(): Mirrored { + return this._cData.getMetaInfo() + } + + get config(): Mirrored { + return this._cChart.config.get() + } + + get style(): Mirrored { + return this._cChart.style.get() + } + + getComputedStyle(): Mirrored { + return this._cChart.computedStyle.get() + } + + on(eventName: T, handler: EventHandler): void { + this._events.add(eventName, handler) + } + + off(eventName: T, handler: EventHandler): void { + this._events.remove(eventName, handler) + } + + store(): Snapshot { + return this._cChart.storeSnapshot() + } + + getAnimControl(): AnimControl { + return new AnimControl(this._getCAnimControl()) + } + + private _getCAnimControl(): CAnimControl { + return this._module.getAnimControl(this._cChart) + } } diff --git a/src/apps/weblib/ts-api/cvizzu.types.d.ts b/src/apps/weblib/ts-api/cvizzu.types.d.ts index 8faf26087..8faf0edf0 100644 --- a/src/apps/weblib/ts-api/cvizzu.types.d.ts +++ b/src/apps/weblib/ts-api/cvizzu.types.d.ts @@ -17,119 +17,119 @@ export type CArrayPtr = CPointer export type CColorGradientPtr = CPointer export type PtrType = - | 'i1' - | 'i8' - | 'i16' - | 'i32' - | 'i64' - | 'float' - | 'double' - | 'i1*' - | 'i8*' - | 'i16*' - | 'i32*' - | 'i64*' - | 'float*' - | 'double*' + | 'i1' + | 'i8' + | 'i16' + | 'i32' + | 'i64' + | 'float' + | 'double' + | 'i1*' + | 'i8*' + | 'i16*' + | 'i32*' + | 'i64*' + | 'float*' + | 'double*' export interface CExceptionInfo { - get_type(): CTypeInfo + get_type(): CTypeInfo } export interface CExceptionInfoConstructor { - new (ptr: CPointer): CExceptionInfo + new (ptr: CPointer): CExceptionInfo } export interface ModuleOptions { - locateFile?: (path: string) => string + locateFile?: (path: string) => string } export interface CVizzu { - // decorations - canvases: { [key: CPointer]: Canvas } + // decorations + canvases: { [key: CPointer]: Canvas } - // members - HEAPU8: Uint8Array + // members + HEAPU8: Uint8Array - // exported runtime functions - _malloc(len: number): CPointer - _free(cpath: CPointer): void - getValue(ptr: CPointer, type: PtrType): number - setValue(ptr: CPointer, value: number, type: PtrType): void - stringToUTF8(str: string, buffer: CPointer, len: number): void - UTF8ToString(ptr: CString): string - addFunction(func: T, sig: string): CFunction - removeFunction(cfunc: CFunction): void - ExceptionInfo: CExceptionInfoConstructor + // exported runtime functions + _malloc(len: number): CPointer + _free(cpath: CPointer): void + getValue(ptr: CPointer, type: PtrType): number + setValue(ptr: CPointer, value: number, type: PtrType): void + stringToUTF8(str: string, buffer: CPointer, len: number): void + UTF8ToString(ptr: CString): string + addFunction(func: T, sig: string): CFunction + removeFunction(cfunc: CFunction): void + ExceptionInfo: CExceptionInfoConstructor - // exported functions - _vizzu_createChart(): CChartPtr - _vizzu_createCanvas(): CCanvasPtr - _vizzu_pointerDown( - chart: CChartPtr, - canvas: CCanvasPtr, - pointerId: number, - x: number, - y: number - ): void - _vizzu_pointerUp( - chart: CChartPtr, - canvas: CCanvasPtr, - pointerId: number, - x: number, - y: number - ): void - _vizzu_pointerMove( - chart: CChartPtr, - canvas: CCanvasPtr, - pointerId: number, - x: number, - y: number - ): void - _vizzu_pointerLeave(chart: CChartPtr, canvas: CCanvasPtr, pointerId: number): void - _vizzu_wheel(chart: CChartPtr, canvas: CCanvasPtr, delta: number): void - _vizzu_setLogging(enable: boolean): void - _vizzu_update( - chart: CChartPtr, - canvas: CCanvasPtr, - width: number, - height: number, - renderControl: number - ): void - _vizzu_errorMessage(exceptionPtr: CException, typeinfo: CTypeInfo): CString - _vizzu_version(): CString - _data_addDimension(chart: CChartPtr, name: CString, categories: CArrayPtr, count: number): void - _data_addMeasure( - chart: CChartPtr, - name: CString, - unit: CString, - values: CArrayPtr, - count: number - ): void - _data_addRecord(chart: CChartPtr, cells: CArrayPtr, count: number): void - _data_metaInfo(chart: CChartPtr): CString - _record_getValue(record: CRecordPtr, column: CString): CRecordValue - _chart_store(chart: CChartPtr): CSnapshotPtr - _chart_restore(chart: CChartPtr, snapshot: CSnapshotPtr): void - _chart_anim_store(chart: CChartPtr): CAnimationPtr - _chart_anim_restore(chart: CChartPtr, anim: CAnimationPtr): void - _object_free(handle: CPointer): void - _style_getList(): CString - _style_setValue(chart: CChartPtr, path: CString, value: CString): void - _style_getValue(chart: CChartPtr, path: CString, computed: boolean): CString - _chart_getList(): CString - _chart_getValue(chart: CChartPtr, path: CString): CString - _chart_setValue(chart: CChartPtr, path: CString, value: CString): void - _chart_setFilter(chart: CChartPtr, filter: CFunction, deleter: CFunction): void - _chart_animate(chart: CChartPtr, callback: CFunction): void - _chart_relToCanvasCoords(chart: CChartPtr, rx: number, ry: number): CPointPtr - _chart_canvasToRelCoords(chart: CChartPtr, x: number, y: number): CPointPtr - _chart_setKeyframe(chart: CChartPtr): void - _addEventListener(chart: CChartPtr, name: CString, callback: CFunction): void - _removeEventListener(chart: CChartPtr, name: CString, callback: CFunction): void - _event_preventDefault(event: CEventPtr): void - _anim_control_setValue(chart: CChartPtr, command: CString, param: CString): void - _anim_control_getValue(chart: CChartPtr, command: CString): CString - _anim_setValue(chart: CChartPtr, path: CString, value: CString): void + // exported functions + _vizzu_createChart(): CChartPtr + _vizzu_createCanvas(): CCanvasPtr + _vizzu_pointerDown( + chart: CChartPtr, + canvas: CCanvasPtr, + pointerId: number, + x: number, + y: number + ): void + _vizzu_pointerUp( + chart: CChartPtr, + canvas: CCanvasPtr, + pointerId: number, + x: number, + y: number + ): void + _vizzu_pointerMove( + chart: CChartPtr, + canvas: CCanvasPtr, + pointerId: number, + x: number, + y: number + ): void + _vizzu_pointerLeave(chart: CChartPtr, canvas: CCanvasPtr, pointerId: number): void + _vizzu_wheel(chart: CChartPtr, canvas: CCanvasPtr, delta: number): void + _vizzu_setLogging(enable: boolean): void + _vizzu_update( + chart: CChartPtr, + canvas: CCanvasPtr, + width: number, + height: number, + renderControl: number + ): void + _vizzu_errorMessage(exceptionPtr: CException, typeinfo: CTypeInfo): CString + _vizzu_version(): CString + _data_addDimension(chart: CChartPtr, name: CString, categories: CArrayPtr, count: number): void + _data_addMeasure( + chart: CChartPtr, + name: CString, + unit: CString, + values: CArrayPtr, + count: number + ): void + _data_addRecord(chart: CChartPtr, cells: CArrayPtr, count: number): void + _data_metaInfo(chart: CChartPtr): CString + _record_getValue(record: CRecordPtr, column: CString): CRecordValue + _chart_store(chart: CChartPtr): CSnapshotPtr + _chart_restore(chart: CChartPtr, snapshot: CSnapshotPtr): void + _chart_anim_store(chart: CChartPtr): CAnimationPtr + _chart_anim_restore(chart: CChartPtr, anim: CAnimationPtr): void + _object_free(handle: CPointer): void + _style_getList(): CString + _style_setValue(chart: CChartPtr, path: CString, value: CString): void + _style_getValue(chart: CChartPtr, path: CString, computed: boolean): CString + _chart_getList(): CString + _chart_getValue(chart: CChartPtr, path: CString): CString + _chart_setValue(chart: CChartPtr, path: CString, value: CString): void + _chart_setFilter(chart: CChartPtr, filter: CFunction, deleter: CFunction): void + _chart_animate(chart: CChartPtr, callback: CFunction): void + _chart_relToCanvasCoords(chart: CChartPtr, rx: number, ry: number): CPointPtr + _chart_canvasToRelCoords(chart: CChartPtr, x: number, y: number): CPointPtr + _chart_setKeyframe(chart: CChartPtr): void + _addEventListener(chart: CChartPtr, name: CString, callback: CFunction): void + _removeEventListener(chart: CChartPtr, name: CString, callback: CFunction): void + _event_preventDefault(event: CEventPtr): void + _anim_control_setValue(chart: CChartPtr, command: CString, param: CString): void + _anim_control_getValue(chart: CChartPtr, command: CString): CString + _anim_setValue(chart: CChartPtr, path: CString, value: CString): void } export declare const Module: CVizzu diff --git a/src/apps/weblib/ts-api/data.ts b/src/apps/weblib/ts-api/data.ts index c2325a2cf..870b18d37 100644 --- a/src/apps/weblib/ts-api/data.ts +++ b/src/apps/weblib/ts-api/data.ts @@ -5,151 +5,157 @@ import { DataRecord } from './datarecord.js' import { Mirrored } from './tsutils.js' export class Data { - private _cData: CData - - constructor(cData: CData) { - this._cData = cData - } - - set(obj?: D.TableBySeries | D.TableByRecords): void { - if (!obj) { - return - } - - if (obj.series) { - if (!Array.isArray(obj.series)) { - throw new Error('data series field is not an array') - } - - for (const series of obj.series) { - this._setSeries(series) - } - } - - if ('records' in obj) { - if (!Array.isArray(obj.records)) { - throw new Error('data records field is not an array') - } - - const seriesList = this._cData.getMetaInfo().series - for (const record of obj.records) { - this._addRecord(record, seriesList) - } - } - - if (obj.filter || obj.filter === null) { - this._setFilter(obj.filter) - } - } - - private _addRecord(record: D.ValueArray | D.Record, seriesList: Mirrored): void { - if (!Array.isArray(record)) { - if (typeof record === 'object' && record !== null) { - record = this._recordObjectToArray(record, seriesList) - } else throw new Error('data record is not an array or object') - } - this._cData.addRecord(record) - } - - private _recordObjectToArray(record: D.Record, seriesList: Mirrored): D.Value[] { - const result = [] as D.Value[] - - seriesList.forEach((series) => { - if (series.name in record) { - result.push(record[series.name] || this._default(series.type)) - } else { - result.push(this._default(series.type)) - } - }) - - return result - } - - private _default(type?: string): D.Value { - return type === 'measure' ? 0 : '' - } - - private _setSeries(series: D.Series): void { - if (!series.name) { - throw new Error('missing series name') - } - - const values = series.values ? series.values : ([] as D.Values) - - const seriesType = series.type ? series.type : this._detectType(values) - - if (seriesType === 'dimension') { - this._addDimension(series.name, values) - } else if (seriesType === 'measure') { - if (!series.unit) series.unit = '' - this._addMeasure(series.name, series.unit, values) - } else { - throw new Error('invalid series type: ' + series.type) - } - } - - private _detectType(values: (string | number | null)[]): D.SeriesType | null { - if (Array.isArray(values) && values.length) { - if (typeof values[0] === 'number' || values[0] === null) { - return 'measure' - } else if (typeof values[0] === 'string') { - return 'dimension' - } - } - return null - } - - private _addDimension(name: string, dimension: unknown[]): void { - if (typeof name !== 'string') { - throw new Error('first parameter should be string') - } - - if (!(dimension instanceof Array)) { - throw new Error('second parameter should be an array') - } - - if (!this._isStringArray(dimension)) { - throw new Error('array element should be string') - } - - this._cData.addDimension(name, dimension) - } - - private _isStringArray(values: unknown[]): values is string[] { - for (const value of values) { - if (typeof value !== 'string') { - return false - } - } - return true - } - - private _addMeasure(name: string, unit: string, values: unknown[]): void { - if (typeof name !== 'string') { - throw new Error("'name' parameter should be string") - } - - if (typeof unit !== 'string') { - throw new Error("'unit' parameter should be string") - } - - if (!(values instanceof Array)) { - throw new Error("'values' parameter should be an array") - } - - const numbers = values.map((value) => Number(value)) - - this._cData.addMeasure(name, unit, numbers) - } - - private _setFilter(filter: D.FilterCallback | null): void { - if (typeof filter === 'function') { - const callback = (cRecord: CRecord): boolean => filter(new DataRecord(cRecord)) - this._cData.setFilter(callback) - } else if (filter === null) { - this._cData.setFilter(null) - } else { - throw new Error('data filter is not a function or null') - } - } + private _cData: CData + + constructor(cData: CData) { + this._cData = cData + } + + set(obj?: D.TableBySeries | D.TableByRecords): void { + if (!obj) { + return + } + + if (obj.series) { + if (!Array.isArray(obj.series)) { + throw new Error('data series field is not an array') + } + + for (const series of obj.series) { + this._setSeries(series) + } + } + + if ('records' in obj) { + if (!Array.isArray(obj.records)) { + throw new Error('data records field is not an array') + } + + const seriesList = this._cData.getMetaInfo().series + for (const record of obj.records) { + this._addRecord(record, seriesList) + } + } + + if (obj.filter || obj.filter === null) { + this._setFilter(obj.filter) + } + } + + private _addRecord( + record: D.ValueArray | D.Record, + seriesList: Mirrored + ): void { + if (!Array.isArray(record)) { + if (typeof record === 'object' && record !== null) { + record = this._recordObjectToArray(record, seriesList) + } else throw new Error('data record is not an array or object') + } + this._cData.addRecord(record) + } + + private _recordObjectToArray( + record: D.Record, + seriesList: Mirrored + ): D.Value[] { + const result = [] as D.Value[] + + seriesList.forEach((series) => { + if (series.name in record) { + result.push(record[series.name] || this._default(series.type)) + } else { + result.push(this._default(series.type)) + } + }) + + return result + } + + private _default(type?: string): D.Value { + return type === 'measure' ? 0 : '' + } + + private _setSeries(series: D.Series): void { + if (!series.name) { + throw new Error('missing series name') + } + + const values = series.values ? series.values : ([] as D.Values) + + const seriesType = series.type ? series.type : this._detectType(values) + + if (seriesType === 'dimension') { + this._addDimension(series.name, values) + } else if (seriesType === 'measure') { + if (!series.unit) series.unit = '' + this._addMeasure(series.name, series.unit, values) + } else { + throw new Error('invalid series type: ' + series.type) + } + } + + private _detectType(values: (string | number | null)[]): D.SeriesType | null { + if (Array.isArray(values) && values.length) { + if (typeof values[0] === 'number' || values[0] === null) { + return 'measure' + } else if (typeof values[0] === 'string') { + return 'dimension' + } + } + return null + } + + private _addDimension(name: string, dimension: unknown[]): void { + if (typeof name !== 'string') { + throw new Error('first parameter should be string') + } + + if (!(dimension instanceof Array)) { + throw new Error('second parameter should be an array') + } + + if (!this._isStringArray(dimension)) { + throw new Error('array element should be string') + } + + this._cData.addDimension(name, dimension) + } + + private _isStringArray(values: unknown[]): values is string[] { + for (const value of values) { + if (typeof value !== 'string') { + return false + } + } + return true + } + + private _addMeasure(name: string, unit: string, values: unknown[]): void { + if (typeof name !== 'string') { + throw new Error("'name' parameter should be string") + } + + if (typeof unit !== 'string') { + throw new Error("'unit' parameter should be string") + } + + if (!(values instanceof Array)) { + throw new Error("'values' parameter should be an array") + } + + const numbers = values.map((value) => Number(value)) + + this._cData.addMeasure(name, unit, numbers) + } + + private _setFilter(filter: D.FilterCallback | null): void { + if (typeof filter === 'function') { + const callback = (cRecord: CRecord): boolean => filter(new DataRecord(cRecord)) + this._cData.setFilter(callback) + } else if (filter === null) { + this._cData.setFilter(null) + } else { + throw new Error('data filter is not a function or null') + } + } } diff --git a/src/apps/weblib/ts-api/datarecord.ts b/src/apps/weblib/ts-api/datarecord.ts index fff59f2c6..b9bf923ce 100644 --- a/src/apps/weblib/ts-api/datarecord.ts +++ b/src/apps/weblib/ts-api/datarecord.ts @@ -2,13 +2,13 @@ import * as Data from './types/data.js' import { CRecord } from './module/cdata.js' export class DataRecord implements Data.Record { - [seriesName: Data.SeriesName]: Data.Value + [seriesName: Data.SeriesName]: Data.Value - constructor(cRecord: CRecord) { - return new Proxy(this, { - get: (_target, columnName: string): Data.Value => { - return cRecord.getValue(columnName) - } - }) - } + constructor(cRecord: CRecord) { + return new Proxy(this, { + get: (_target, columnName: string): Data.Value => { + return cRecord.getValue(columnName) + } + }) + } } diff --git a/src/apps/weblib/ts-api/errors.ts b/src/apps/weblib/ts-api/errors.ts index d459d6965..6d3d3f083 100644 --- a/src/apps/weblib/ts-api/errors.ts +++ b/src/apps/weblib/ts-api/errors.ts @@ -1,13 +1,13 @@ export class CancelError extends Error { - constructor() { - super('animation canceled') - this.name = 'CancelError' - } + constructor() { + super('animation canceled') + this.name = 'CancelError' + } } export class NotInitializedError extends Error { - constructor() { - super('vizzu is not initialized, use `initializing` promise') - this.name = 'NotInitializedError' - } + constructor() { + super('vizzu is not initialized, use `initializing` promise') + this.name = 'NotInitializedError' + } } diff --git a/src/apps/weblib/ts-api/events.ts b/src/apps/weblib/ts-api/events.ts index da71ca821..786e2fd61 100644 --- a/src/apps/weblib/ts-api/events.ts +++ b/src/apps/weblib/ts-api/events.ts @@ -9,404 +9,408 @@ import * as Anim from './types/anim.js' import { Point, Rect, Line, TransformedRect } from './geom.js' export enum EventType { - click = 'click', - pointermove = 'pointermove', - pointerdown = 'pointerdown', - pointerup = 'pointerup', - pointerleave = 'pointerleave', - wheel = 'wheel', - update = 'update', - drawBegin = 'draw-begin', - drawComplete = 'draw-complete', - backgroundDraw = 'background-draw', - titleDraw = 'title-draw', - subtitleDraw = 'subtitle-draw', - captionDraw = 'caption-draw', - logoDraw = 'logo-draw', - legendBackgroundDraw = 'legend-background-draw', - legendTitleDraw = 'legend-title-draw', - legendLabelDraw = 'legend-label-draw', - legendMarkerDraw = 'legend-marker-draw', - legendBarDraw = 'legend-bar-draw', - plotBackgroundDraw = 'plot-background-draw', - plotAreaDraw = 'plot-area-draw', - plotMarkerDraw = 'plot-marker-draw', - plotMarkerLabelDraw = 'plot-marker-label-draw', - plotMarkerGuideDraw = 'plot-marker-guide-draw', - plotAxisDraw = 'plot-axis-draw', - plotAxisTitleDraw = 'plot-axis-title-draw', - plotAxisLabelDraw = 'plot-axis-label-draw', - plotAxisTickDraw = 'plot-axis-tick-draw', - plotAxisGuideDraw = 'plot-axis-guide-draw', - plotAxisInterlacingDraw = 'plot-axis-interlacing-draw', - animationBegin = 'animation-begin', - animationComplete = 'animation-complete' + click = 'click', + pointermove = 'pointermove', + pointerdown = 'pointerdown', + pointerup = 'pointerup', + pointerleave = 'pointerleave', + wheel = 'wheel', + update = 'update', + drawBegin = 'draw-begin', + drawComplete = 'draw-complete', + backgroundDraw = 'background-draw', + titleDraw = 'title-draw', + subtitleDraw = 'subtitle-draw', + captionDraw = 'caption-draw', + logoDraw = 'logo-draw', + legendBackgroundDraw = 'legend-background-draw', + legendTitleDraw = 'legend-title-draw', + legendLabelDraw = 'legend-label-draw', + legendMarkerDraw = 'legend-marker-draw', + legendBarDraw = 'legend-bar-draw', + plotBackgroundDraw = 'plot-background-draw', + plotAreaDraw = 'plot-area-draw', + plotMarkerDraw = 'plot-marker-draw', + plotMarkerLabelDraw = 'plot-marker-label-draw', + plotMarkerGuideDraw = 'plot-marker-guide-draw', + plotAxisDraw = 'plot-axis-draw', + plotAxisTitleDraw = 'plot-axis-title-draw', + plotAxisLabelDraw = 'plot-axis-label-draw', + plotAxisTickDraw = 'plot-axis-tick-draw', + plotAxisGuideDraw = 'plot-axis-guide-draw', + plotAxisInterlacingDraw = 'plot-axis-interlacing-draw', + animationBegin = 'animation-begin', + animationComplete = 'animation-complete' } export interface EventMap { - [EventType.click]: PointerEvent - [EventType.pointermove]: PointerEvent - [EventType.pointerdown]: PointerEvent - [EventType.pointerup]: PointerEvent - [EventType.pointerleave]: PointerEvent - [EventType.wheel]: WheelEvent - [EventType.update]: UpdateEvent - [EventType.drawBegin]: Event - [EventType.drawComplete]: Event - [EventType.backgroundDraw]: RectDrawEvent - [EventType.titleDraw]: TextDrawEvent - [EventType.subtitleDraw]: TextDrawEvent<Subtitle> - [EventType.captionDraw]: TextDrawEvent<Caption> - [EventType.logoDraw]: RectDrawEvent<Logo> - [EventType.legendBackgroundDraw]: RectDrawEvent<Legend> - [EventType.legendTitleDraw]: TextDrawEvent<LegendTitle> - [EventType.legendLabelDraw]: TextDrawEvent<LegendLabel> - [EventType.legendMarkerDraw]: RectDrawEvent<LegendMarker> - [EventType.legendBarDraw]: RectDrawEvent<LegendBar> - [EventType.plotBackgroundDraw]: RectDrawEvent<Plot> - [EventType.plotAreaDraw]: RectDrawEvent<Area> - [EventType.plotMarkerDraw]: RectDrawEvent<Marker> - [EventType.plotMarkerLabelDraw]: TextDrawEvent<MarkerLabel> - [EventType.plotMarkerGuideDraw]: LineDrawEvent<MarkerGuide> - [EventType.plotAxisDraw]: LineDrawEvent<Axis> - [EventType.plotAxisTitleDraw]: TextDrawEvent<AxisTitle> - [EventType.plotAxisLabelDraw]: TextDrawEvent<AxisLabel> - [EventType.plotAxisTickDraw]: LineDrawEvent<AxisTick> - [EventType.plotAxisGuideDraw]: LineDrawEvent<AxisGuide> - [EventType.plotAxisInterlacingDraw]: RectDrawEvent<AxisInterlacing> - [EventType.animationBegin]: Event<Element> - [EventType.animationComplete]: Event<Element> + [EventType.click]: PointerEvent + [EventType.pointermove]: PointerEvent + [EventType.pointerdown]: PointerEvent + [EventType.pointerup]: PointerEvent + [EventType.pointerleave]: PointerEvent + [EventType.wheel]: WheelEvent + [EventType.update]: UpdateEvent + [EventType.drawBegin]: Event<Element> + [EventType.drawComplete]: Event<Element> + [EventType.backgroundDraw]: RectDrawEvent<Root> + [EventType.titleDraw]: TextDrawEvent<Title> + [EventType.subtitleDraw]: TextDrawEvent<Subtitle> + [EventType.captionDraw]: TextDrawEvent<Caption> + [EventType.logoDraw]: RectDrawEvent<Logo> + [EventType.legendBackgroundDraw]: RectDrawEvent<Legend> + [EventType.legendTitleDraw]: TextDrawEvent<LegendTitle> + [EventType.legendLabelDraw]: TextDrawEvent<LegendLabel> + [EventType.legendMarkerDraw]: RectDrawEvent<LegendMarker> + [EventType.legendBarDraw]: RectDrawEvent<LegendBar> + [EventType.plotBackgroundDraw]: RectDrawEvent<Plot> + [EventType.plotAreaDraw]: RectDrawEvent<Area> + [EventType.plotMarkerDraw]: RectDrawEvent<Marker> + [EventType.plotMarkerLabelDraw]: TextDrawEvent<MarkerLabel> + [EventType.plotMarkerGuideDraw]: LineDrawEvent<MarkerGuide> + [EventType.plotAxisDraw]: LineDrawEvent<Axis> + [EventType.plotAxisTitleDraw]: TextDrawEvent<AxisTitle> + [EventType.plotAxisLabelDraw]: TextDrawEvent<AxisLabel> + [EventType.plotAxisTickDraw]: LineDrawEvent<AxisTick> + [EventType.plotAxisGuideDraw]: LineDrawEvent<AxisGuide> + [EventType.plotAxisInterlacingDraw]: RectDrawEvent<AxisInterlacing> + [EventType.animationBegin]: Event<Element> + [EventType.animationComplete]: Event<Element> } /** Abstract Element interface for chart elements. */ export interface Element { - /** Name of the chart element type. */ - tagName: string - /** Parent element of the chart element. */ - parent?: Element + /** Name of the chart element type. */ + tagName: string + /** Parent element of the chart element. */ + parent?: Element } /** Element with a string value. */ export interface TextElement extends Element { - value: string + value: string } /** Element with an orientation value. */ export interface OrientedElement extends Element { - id: 'x' | 'y' + id: 'x' | 'y' } /** Root element of the chart. */ export interface Root extends Element { - tagName: 'root' + tagName: 'root' } /** Plot element of the chart. */ export interface Plot extends Element { - tagName: 'plot' + tagName: 'plot' } /** Main title element of the chart. */ export interface Title extends TextElement { - tagName: 'title' + tagName: 'title' } /** Subtitle element of the chart. */ export interface Subtitle extends TextElement { - tagName: 'subtitle' + tagName: 'subtitle' } /** Caption element of the chart. */ export interface Caption extends TextElement { - tagName: 'caption' + tagName: 'caption' } /** Legend element of the chart. */ export interface Legend extends Element { - tagName: 'legend' - channel: string + tagName: 'legend' + channel: string } /** Logo element of the chart. */ export interface Logo extends Element { - tagName: 'logo' + tagName: 'logo' } /** Plot area element of the chart. */ export interface Area extends Element { - tagName: 'plot-area' + tagName: 'plot-area' } /** Plot marker element of the chart representing a data point. */ export interface Marker extends Element { - tagName: 'plot-marker' - categories: Data.Record - values: Data.Record - /** Unique index of the marker. */ - index: number + tagName: 'plot-marker' + categories: Data.Record + values: Data.Record + /** Unique index of the marker. */ + index: number } /** Label element of a marker element. */ export interface MarkerLabel extends TextElement { - tagName: 'plot-marker-label' - parent: Marker + tagName: 'plot-marker-label' + parent: Marker } /** Guideline element of a marker element. */ export interface MarkerGuide extends OrientedElement { - tagName: 'plot-marker-guide' - parent: Marker + tagName: 'plot-marker-guide' + parent: Marker } /** Axis element of the plot. */ export interface Axis extends OrientedElement { - tagName: 'plot-axis' + tagName: 'plot-axis' } /** Label element of an axis element. */ export interface AxisLabel extends TextElement { - tagName: 'plot-axis-label' - parent: Axis + tagName: 'plot-axis-label' + parent: Axis } /** Guideline element of an axis element. */ export interface AxisGuide extends Element { - tagName: 'plot-axis-guide' - parent: Axis + tagName: 'plot-axis-guide' + parent: Axis } /** Tick element of an axis element. */ export interface AxisTick extends Element { - tagName: 'plot-axis-tick' - parent: Axis + tagName: 'plot-axis-tick' + parent: Axis } /** Title element of an axis element. */ export interface AxisTitle extends TextElement { - tagName: 'plot-axis-title' - parent: Axis + tagName: 'plot-axis-title' + parent: Axis } /** Interlacing element of an axis element. */ export interface AxisInterlacing extends Element { - tagName: 'plot-axis-interlacing' - parent: Axis + tagName: 'plot-axis-interlacing' + parent: Axis } /** Title element of a legend element. */ export interface LegendTitle extends TextElement { - tagName: 'legend-title' - parent: Legend + tagName: 'legend-title' + parent: Legend } /** Marker element of a legend element. */ export interface LegendMarker extends Element { - tagName: 'legend-marker' - parent: Legend + tagName: 'legend-marker' + parent: Legend } /** Label element of a legend element. */ export interface LegendLabel extends TextElement { - tagName: 'legend-label' - parent: Legend + tagName: 'legend-label' + parent: Legend } /** Bar element of a legend element indicating a continous interval. */ export interface LegendBar extends Element { - tagName: 'legend-bar' - parent: Legend + tagName: 'legend-bar' + parent: Legend } /** The interface of the event object is passed to event handlers by the library. Detail properties will vary by event type. */ export interface Event<T> { - type: EventType - /** The element of the chart the event triggered on. */ - target: T | null - /** If called, the default action of the event will be canceled. */ - preventDefault(): void - /** For drawing events the rendering context of the underlying + type: EventType + /** The element of the chart the event triggered on. */ + target: T | null + /** If called, the default action of the event will be canceled. */ + preventDefault(): void + /** For drawing events the rendering context of the underlying canvas set up for drawing the element. */ - renderingContext?: HtmlCanvasContext + renderingContext?: HtmlCanvasContext } export interface PointerDetail { - pointerId: number | null - position: Point + pointerId: number | null + position: Point } /** Event for pointer/mouse events. */ export interface PointerEvent extends Event<Element> { - detail: PointerDetail + detail: PointerDetail } export interface WheelDetail { - delta: number + delta: number } /** Event for mouse wheel change. */ export interface WheelEvent extends Event<Element> { - detail: WheelDetail + detail: WheelDetail } export interface UpdateDetail { - position: Anim.Duration - progress: number + position: Anim.Duration + progress: number } /** Event emitted at every animation frame update. */ export interface UpdateEvent extends Event<Element> { - detail: UpdateDetail + detail: UpdateDetail } export interface RectDrawDetail { - rect: Rect - relative: boolean + rect: Rect + relative: boolean } /** Event of drawing a rectangle or a marker (in which case rect is the boundary rectangle). */ export interface RectDrawEvent<T> extends Event<T> { - detail: RectDrawDetail + detail: RectDrawDetail } export interface LineDrawDetail { - line: Line - relative: boolean + line: Line + relative: boolean } /** Event of drawing a line. */ export interface LineDrawEvent<T> extends Event<T> { - detail: LineDrawDetail + detail: LineDrawDetail } export interface TextDrawDetail { - rect: TransformedRect - text: string + rect: TransformedRect + text: string } /** Event of drawing a text. */ export interface TextDrawEvent<T> extends Event<T> { - detail: TextDrawDetail + detail: TextDrawDetail } export type EventHandler<Event> = (event: Event) => void type EventRecord<EventHandler> = [CFunction | null, EventHandler[]] interface EventState { - canceled: boolean + canceled: boolean } type EventHandlers<T extends EventType> = { - [key in T]?: EventRecord<EventHandler<EventMap[T]>> + [key in T]?: EventRecord<EventHandler<EventMap[T]>> } export class Events { - private _cChart: CChart - private _canvas: HtmlCanvas - private _eventHandlers: EventHandlers<EventType> = {} - - constructor(cChart: CChart, canvas: HtmlCanvas) { - this._cChart = cChart - this._canvas = canvas - } - - add<T extends EventType>(eventName: T, handler: EventHandler<EventMap[T]>): void { - if (typeof eventName !== 'string') { - throw new Error('first parameter should be string') - } - this._getHandlers(eventName).push(handler) - } - - private _getHandlers<T extends EventType>(eventName: T): EventHandler<EventMap[T]>[] { - if (!(eventName in this._eventHandlers)) { - let cfunc = null - if (!this._isJSEvent(eventName)) { - const func = (eventPtr: CEvent, param: EventMap[T]): void => { - this._invoke(eventName, param, eventPtr) - } - cfunc = this._cChart.addEventListener(eventName, func) - } - this._eventHandlers[eventName] = [cfunc, []] - } - const handlers = this._eventHandlers[eventName] - return handlers![1] - } - - remove<T extends EventType>(eventName: T, handler: EventHandler<EventMap[T]>): void { - if (typeof eventName !== 'string') { - throw new Error('first parameter should be string') - } - - const eventRecord = this._eventHandlers[eventName] - if (!eventRecord) throw new Error('unknown event handler') - - const [cfunc, handlers] = eventRecord - - handlers.find((o, i) => { - if (o === handler) { - handlers.splice(i, 1) - return true - } - return false - }) - - if (handlers.length === 0) { - if (!this._isJSEvent(eventName)) { - if (cfunc) this._cChart.removeEventListener(eventName, cfunc) - } - delete this._eventHandlers[eventName] - } - } - - addMany(events: PluginListeners): void { - for (const [eventName, handler] of Object.entries(events)) { - this.add(eventName as EventType, handler as EventHandler<EventMap[EventType]>) - } - } - - removeMany(events: PluginListeners): void { - for (const [eventName, handler] of Object.entries(events)) { - this.remove(eventName as EventType, handler as EventHandler<EventMap[EventType]>) - } - } - - private _invoke<T extends EventType>(eventName: T, param: EventMap[T], cEvent?: CEvent): boolean { - const state: EventState = { canceled: false } - try { - const handlers = this._eventHandlers[eventName] - if (handlers) { - for (const handler of [...handlers[1]]) { - const eventParam = this._isJSEvent(eventName) - ? this._makeJSEventParam(param, state) - : cEvent - ? this._makeCEventParam(cEvent, param, state) - : param - handler(eventParam) - } - } - } catch (e) { - console.log('exception in event handler: ' + e) - } - return state.canceled - } - - private _isJSEvent(eventName: EventType): boolean { - return eventName.startsWith('api-') - } - - private _makeJSEventParam<T>(param: Event<T>, state: EventState): Event<T> { - param.preventDefault = (): void => { - state.canceled = true - } - return param - } - - private _makeCEventParam<T>(cEvent: CEvent, param: Event<T>, state: EventState): Event<T> { - param.preventDefault = (): void => { - cEvent.preventDefault() - state.canceled = true - } - if (param.type.endsWith('-draw') || param.type.startsWith('draw-')) { - param.renderingContext = this._canvas.context - } - return param - } + private _cChart: CChart + private _canvas: HtmlCanvas + private _eventHandlers: EventHandlers<EventType> = {} + + constructor(cChart: CChart, canvas: HtmlCanvas) { + this._cChart = cChart + this._canvas = canvas + } + + add<T extends EventType>(eventName: T, handler: EventHandler<EventMap[T]>): void { + if (typeof eventName !== 'string') { + throw new Error('first parameter should be string') + } + this._getHandlers(eventName).push(handler) + } + + private _getHandlers<T extends EventType>(eventName: T): EventHandler<EventMap[T]>[] { + if (!(eventName in this._eventHandlers)) { + let cfunc = null + if (!this._isJSEvent(eventName)) { + const func = (eventPtr: CEvent, param: EventMap[T]): void => { + this._invoke(eventName, param, eventPtr) + } + cfunc = this._cChart.addEventListener(eventName, func) + } + this._eventHandlers[eventName] = [cfunc, []] + } + const handlers = this._eventHandlers[eventName] + return handlers![1] + } + + remove<T extends EventType>(eventName: T, handler: EventHandler<EventMap[T]>): void { + if (typeof eventName !== 'string') { + throw new Error('first parameter should be string') + } + + const eventRecord = this._eventHandlers[eventName] + if (!eventRecord) throw new Error('unknown event handler') + + const [cfunc, handlers] = eventRecord + + handlers.find((o, i) => { + if (o === handler) { + handlers.splice(i, 1) + return true + } + return false + }) + + if (handlers.length === 0) { + if (!this._isJSEvent(eventName)) { + if (cfunc) this._cChart.removeEventListener(eventName, cfunc) + } + delete this._eventHandlers[eventName] + } + } + + addMany(events: PluginListeners): void { + for (const [eventName, handler] of Object.entries(events)) { + this.add(eventName as EventType, handler as EventHandler<EventMap[EventType]>) + } + } + + removeMany(events: PluginListeners): void { + for (const [eventName, handler] of Object.entries(events)) { + this.remove(eventName as EventType, handler as EventHandler<EventMap[EventType]>) + } + } + + private _invoke<T extends EventType>( + eventName: T, + param: EventMap[T], + cEvent?: CEvent + ): boolean { + const state: EventState = { canceled: false } + try { + const handlers = this._eventHandlers[eventName] + if (handlers) { + for (const handler of [...handlers[1]]) { + const eventParam = this._isJSEvent(eventName) + ? this._makeJSEventParam(param, state) + : cEvent + ? this._makeCEventParam(cEvent, param, state) + : param + handler(eventParam) + } + } + } catch (e) { + console.log('exception in event handler: ' + e) + } + return state.canceled + } + + private _isJSEvent(eventName: EventType): boolean { + return eventName.startsWith('api-') + } + + private _makeJSEventParam<T>(param: Event<T>, state: EventState): Event<T> { + param.preventDefault = (): void => { + state.canceled = true + } + return param + } + + private _makeCEventParam<T>(cEvent: CEvent, param: Event<T>, state: EventState): Event<T> { + param.preventDefault = (): void => { + cEvent.preventDefault() + state.canceled = true + } + if (param.type.endsWith('-draw') || param.type.startsWith('draw-')) { + param.renderingContext = this._canvas.context + } + return param + } } diff --git a/src/apps/weblib/ts-api/geom.ts b/src/apps/weblib/ts-api/geom.ts index c1b924574..c919d44e7 100644 --- a/src/apps/weblib/ts-api/geom.ts +++ b/src/apps/weblib/ts-api/geom.ts @@ -1,25 +1,25 @@ /** Object representing a 2D point. */ export interface Point { - /** X coordinate of the point. */ - x: number - /** Y coordinate of the point. */ - y: number + /** X coordinate of the point. */ + x: number + /** Y coordinate of the point. */ + y: number } /** Object representing a rectangle. */ export interface Rect { - /** Position of the rectangle's top-left corner. */ - pos: Point - /** Size of the rectangle. */ - size: Point + /** Position of the rectangle's top-left corner. */ + pos: Point + /** Size of the rectangle. */ + size: Point } /** Object representing a line section. */ export interface Line { - /** Starting point of the line. */ - begin: Point - /** End point of the line. */ - end: Point + /** Starting point of the line. */ + begin: Point + /** End point of the line. */ + end: Point } /** Object representing an affine transformation 2x3 matrix. */ @@ -27,10 +27,10 @@ export type AffineTransform = number[][] /** Rectangle transformed by an affine transformation. */ export interface TransformedRect { - /** Transform transforms the top left corner to the origo. */ - transform: AffineTransform - /** Size of the rectangle. */ - size: Point + /** Transform transforms the top left corner to the origo. */ + transform: AffineTransform + /** Size of the rectangle. */ + size: Point } /** Converts a point between two coordinate system. */ diff --git a/src/apps/weblib/ts-api/htmlcanvas.ts b/src/apps/weblib/ts-api/htmlcanvas.ts index da66e730b..80a46b8aa 100644 --- a/src/apps/weblib/ts-api/htmlcanvas.ts +++ b/src/apps/weblib/ts-api/htmlcanvas.ts @@ -2,7 +2,7 @@ import * as Geom from './geom.js' import { Plugin, PluginApi } from './plugins.js' export interface CanvasOptions { - element: HTMLElement + element: HTMLElement } export type LazyCanvasOptions = string | HTMLElement | CanvasOptions @@ -10,162 +10,164 @@ export type LazyCanvasOptions = string | HTMLElement | CanvasOptions export type HtmlCanvasContext = CanvasRenderingContext2D export interface HtmlCanvasApi extends PluginApi { - /** Returns the underlying canvas element. */ - get element(): HTMLCanvasElement - clientToCanvas(clientPos: Geom.Point): Geom.Point - canvasToClient(renderPos: Geom.Point): Geom.Point + /** Returns the underlying canvas element. */ + get element(): HTMLCanvasElement + clientToCanvas(clientPos: Geom.Point): Geom.Point + canvasToClient(renderPos: Geom.Point): Geom.Point } export class HtmlCanvas implements Plugin { - onchange: () => void = () => {} - private _container?: HTMLElement - private _offscreenCanvas: HTMLCanvasElement - private _offscreenContext: CanvasRenderingContext2D - private _mainCanvas: HTMLCanvasElement - private _context: CanvasRenderingContext2D - private _resizeObserver: ResizeObserver - private _resizeHandler: () => void - private _prevUpdateHash: string = '' - private _scaleFactor: number = 1 - private _cssWidth: number = 1 - private _cssHeight: number = 1 - - meta = { name: 'htmlCanvas' } - - get api(): HtmlCanvasApi { - return { - element: this.element, - clientToCanvas: this._clientToCanvas.bind(this), - canvasToClient: this._canvasToClient.bind(this) - } - } - - static extractOptions(options: unknown): CanvasOptions { - const opts = - typeof options !== 'object' || options instanceof HTMLElement ? { element: options } : options - - if (opts === null || !('element' in opts)) { - throw new Error('element not specified') - } - - let element = opts.element - - if (typeof element === 'string') { - element = document.getElementById(element) - } - - if (!(element instanceof HTMLElement)) { - throw new Error(`Cannot find element ${opts.element} to render Vizzu!`) - } - - return { element } - } - - constructor(options: CanvasOptions) { - this._mainCanvas = this._toCanvasElement(options.element) - this._offscreenCanvas = document.createElement<'canvas'>('canvas') - const offCtx = this._offscreenCanvas.getContext('2d') - if (!offCtx) throw Error('Cannot get rendering context of internal canvas') - this._offscreenContext = offCtx - const ctx = this._mainCanvas.getContext('2d') - if (!ctx) throw Error('Cannot get rendering context of canvas') - this._context = ctx - this.calcSize() - this._resizeObserver = this._createResizeObserverFor(this._mainCanvas) - this._resizeHandler = (): void => { - this.onchange() - } - window.addEventListener('resize', this._resizeHandler) - } - - destruct(): void { - window.removeEventListener('resize', this._resizeHandler) - this._resizeObserver.disconnect() - if (this._container) this._container.removeChild(this._mainCanvas) - } - - get element(): HTMLCanvasElement { - return this._mainCanvas - } - - get context(): CanvasRenderingContext2D { - return this._offscreenContext - } - - calcSize(): Geom.Point { - this._scaleFactor = window.devicePixelRatio - this._cssWidth = +getComputedStyle(this._mainCanvas).width.slice(0, -2) - this._cssHeight = +getComputedStyle(this._mainCanvas).height.slice(0, -2) - const hash = `${this._scaleFactor}:${this._cssWidth}:${this._cssHeight}` - if (hash !== this._prevUpdateHash) { - this._mainCanvas.width = this._cssWidth * this._scaleFactor - this._mainCanvas.height = this._cssHeight * this._scaleFactor - this._offscreenCanvas.width = this._cssWidth * this._scaleFactor - this._offscreenCanvas.height = this._cssHeight * this._scaleFactor - this._offscreenContext.setTransform(1, 0, 0, 1, 0, 0) - this._offscreenContext.translate(0.5, 0.5) - this._offscreenContext.scale(this._scaleFactor, this._scaleFactor) - } - this._prevUpdateHash = hash - return { x: this._cssWidth, y: this._cssHeight } - } - - frameBegin(): void { - this._offscreenContext.clearRect(-1, -1, this._cssWidth + 2, this._cssHeight + 2) - } - - frameEnd(): void { - this._context.clearRect(-1, -1, this._mainCanvas.width + 1, this._mainCanvas.height + 1) - this._context.drawImage(this._offscreenCanvas, 0, 0) - } - - private _clientRect(): DOMRect { - return this._mainCanvas.getBoundingClientRect() - } - - private _canvasScale(clientRect: DOMRect): Geom.Point { - return { - x: clientRect.width / (this._mainCanvas.width / this._scaleFactor), - y: clientRect.height / (this._mainCanvas.height / this._scaleFactor) - } - } - - private _clientToCanvas(clientPos: Geom.Point): Geom.Point { - const rect = this._clientRect() - const scale = this._canvasScale(rect) - return { - x: (clientPos.x - rect.x) / scale.x, - y: (clientPos.y - rect.y) / scale.y - } - } - - private _canvasToClient(renderPos: Geom.Point): Geom.Point { - const rect = this._clientRect() - const scale = this._canvasScale(rect) - return { - x: rect.x + renderPos.x * scale.x, - y: rect.y + renderPos.y * scale.y - } - } - - private _toCanvasElement(element: HTMLElement): HTMLCanvasElement { - if (element instanceof HTMLCanvasElement) { - return element - } else { - const canvas = document.createElement<'canvas'>('canvas') - canvas.style.width = '100%' - canvas.style.height = '100%' - this._container = element - this._container.appendChild(canvas) - return canvas - } - } - - private _createResizeObserverFor(canvas: HTMLCanvasElement): ResizeObserver { - const resizeObserver = new ResizeObserver(() => { - this.onchange() - }) - resizeObserver.observe(canvas) - return resizeObserver - } + onchange: () => void = () => {} + private _container?: HTMLElement + private _offscreenCanvas: HTMLCanvasElement + private _offscreenContext: CanvasRenderingContext2D + private _mainCanvas: HTMLCanvasElement + private _context: CanvasRenderingContext2D + private _resizeObserver: ResizeObserver + private _resizeHandler: () => void + private _prevUpdateHash: string = '' + private _scaleFactor: number = 1 + private _cssWidth: number = 1 + private _cssHeight: number = 1 + + meta = { name: 'htmlCanvas' } + + get api(): HtmlCanvasApi { + return { + element: this.element, + clientToCanvas: this._clientToCanvas.bind(this), + canvasToClient: this._canvasToClient.bind(this) + } + } + + static extractOptions(options: unknown): CanvasOptions { + const opts = + typeof options !== 'object' || options instanceof HTMLElement + ? { element: options } + : options + + if (opts === null || !('element' in opts)) { + throw new Error('element not specified') + } + + let element = opts.element + + if (typeof element === 'string') { + element = document.getElementById(element) + } + + if (!(element instanceof HTMLElement)) { + throw new Error(`Cannot find element ${opts.element} to render Vizzu!`) + } + + return { element } + } + + constructor(options: CanvasOptions) { + this._mainCanvas = this._toCanvasElement(options.element) + this._offscreenCanvas = document.createElement<'canvas'>('canvas') + const offCtx = this._offscreenCanvas.getContext('2d') + if (!offCtx) throw Error('Cannot get rendering context of internal canvas') + this._offscreenContext = offCtx + const ctx = this._mainCanvas.getContext('2d') + if (!ctx) throw Error('Cannot get rendering context of canvas') + this._context = ctx + this.calcSize() + this._resizeObserver = this._createResizeObserverFor(this._mainCanvas) + this._resizeHandler = (): void => { + this.onchange() + } + window.addEventListener('resize', this._resizeHandler) + } + + destruct(): void { + window.removeEventListener('resize', this._resizeHandler) + this._resizeObserver.disconnect() + if (this._container) this._container.removeChild(this._mainCanvas) + } + + get element(): HTMLCanvasElement { + return this._mainCanvas + } + + get context(): CanvasRenderingContext2D { + return this._offscreenContext + } + + calcSize(): Geom.Point { + this._scaleFactor = window.devicePixelRatio + this._cssWidth = +getComputedStyle(this._mainCanvas).width.slice(0, -2) + this._cssHeight = +getComputedStyle(this._mainCanvas).height.slice(0, -2) + const hash = `${this._scaleFactor}:${this._cssWidth}:${this._cssHeight}` + if (hash !== this._prevUpdateHash) { + this._mainCanvas.width = this._cssWidth * this._scaleFactor + this._mainCanvas.height = this._cssHeight * this._scaleFactor + this._offscreenCanvas.width = this._cssWidth * this._scaleFactor + this._offscreenCanvas.height = this._cssHeight * this._scaleFactor + this._offscreenContext.setTransform(1, 0, 0, 1, 0, 0) + this._offscreenContext.translate(0.5, 0.5) + this._offscreenContext.scale(this._scaleFactor, this._scaleFactor) + } + this._prevUpdateHash = hash + return { x: this._cssWidth, y: this._cssHeight } + } + + frameBegin(): void { + this._offscreenContext.clearRect(-1, -1, this._cssWidth + 2, this._cssHeight + 2) + } + + frameEnd(): void { + this._context.clearRect(-1, -1, this._mainCanvas.width + 1, this._mainCanvas.height + 1) + this._context.drawImage(this._offscreenCanvas, 0, 0) + } + + private _clientRect(): DOMRect { + return this._mainCanvas.getBoundingClientRect() + } + + private _canvasScale(clientRect: DOMRect): Geom.Point { + return { + x: clientRect.width / (this._mainCanvas.width / this._scaleFactor), + y: clientRect.height / (this._mainCanvas.height / this._scaleFactor) + } + } + + private _clientToCanvas(clientPos: Geom.Point): Geom.Point { + const rect = this._clientRect() + const scale = this._canvasScale(rect) + return { + x: (clientPos.x - rect.x) / scale.x, + y: (clientPos.y - rect.y) / scale.y + } + } + + private _canvasToClient(renderPos: Geom.Point): Geom.Point { + const rect = this._clientRect() + const scale = this._canvasScale(rect) + return { + x: rect.x + renderPos.x * scale.x, + y: rect.y + renderPos.y * scale.y + } + } + + private _toCanvasElement(element: HTMLElement): HTMLCanvasElement { + if (element instanceof HTMLCanvasElement) { + return element + } else { + const canvas = document.createElement<'canvas'>('canvas') + canvas.style.width = '100%' + canvas.style.height = '100%' + this._container = element + this._container.appendChild(canvas) + return canvas + } + } + + private _createResizeObserverFor(canvas: HTMLCanvasElement): ResizeObserver { + const resizeObserver = new ResizeObserver(() => { + this.onchange() + }) + resizeObserver.observe(canvas) + return resizeObserver + } } diff --git a/src/apps/weblib/ts-api/module/canimctrl.ts b/src/apps/weblib/ts-api/module/canimctrl.ts index c493f15e2..8f6b7e014 100644 --- a/src/apps/weblib/ts-api/module/canimctrl.ts +++ b/src/apps/weblib/ts-api/module/canimctrl.ts @@ -4,28 +4,28 @@ import { CObject } from './cenv.js' export class CAnimation extends CObject {} export class CAnimControl extends CObject { - setParam(path: string, value = ''): void { - const cpath = this._toCString(path) - const cvalue = this._toCString(value) - try { - this._call(this._wasm._anim_control_setValue)(cpath, cvalue) - } finally { - this._wasm._free(cvalue) - this._wasm._free(cpath) - } - } + setParam(path: string, value = ''): void { + const cpath = this._toCString(path) + const cvalue = this._toCString(value) + try { + this._call(this._wasm._anim_control_setValue)(cpath, cvalue) + } finally { + this._wasm._free(cvalue) + this._wasm._free(cpath) + } + } - getParam(path: string): unknown { - const cpath = this._toCString(path) - try { - const cvalue = this._call(this._wasm._anim_control_getValue)(cpath) - return this._fromCString(cvalue) - } finally { - this._wasm._free(cpath) - } - } + getParam(path: string): unknown { + const cpath = this._toCString(path) + try { + const cvalue = this._call(this._wasm._anim_control_getValue)(cpath) + return this._fromCString(cvalue) + } finally { + this._wasm._free(cpath) + } + } - storeAnim(): CAnimation { - return new CAnimation(this._get(this._wasm._chart_anim_store), this) - } + storeAnim(): CAnimation { + return new CAnimation(this._get(this._wasm._chart_anim_store), this) + } } diff --git a/src/apps/weblib/ts-api/module/ccanvas.ts b/src/apps/weblib/ts-api/module/ccanvas.ts index 64863d101..3f50e6565 100644 --- a/src/apps/weblib/ts-api/module/ccanvas.ts +++ b/src/apps/weblib/ts-api/module/ccanvas.ts @@ -4,19 +4,19 @@ import { CColorGradient } from './ccolorgradient.js' import { CString, CPointer, CColorGradientPtr } from '../cvizzu.types' export class CCanvas extends CObject { - constructor(env: CEnv, getId: CPointerClosure) { - super(getId, env) - } + constructor(env: CEnv, getId: CPointerClosure) { + super(getId, env) + } - getColorGradient(stops: CColorGradientPtr, stopCount: number): CColorGradient { - return new CColorGradient(this, stops, stopCount) - } + getColorGradient(stops: CColorGradientPtr, stopCount: number): CColorGradient { + return new CColorGradient(this, stops, stopCount) + } - getString(text: CString): string { - return this._wasm.UTF8ToString(text) - } + getString(text: CString): string { + return this._wasm.UTF8ToString(text) + } - setNumber(cNumber: CPointer, value: number): void { - this._wasm.setValue(cNumber, value, 'double') - } + setNumber(cNumber: CPointer, value: number): void { + this._wasm.setValue(cNumber, value, 'double') + } } diff --git a/src/apps/weblib/ts-api/module/cchart.ts b/src/apps/weblib/ts-api/module/cchart.ts index 6b59154b2..06ed3c30d 100644 --- a/src/apps/weblib/ts-api/module/cchart.ts +++ b/src/apps/weblib/ts-api/module/cchart.ts @@ -14,9 +14,9 @@ import { CAnimation } from './canimctrl.js' export class Snapshot extends CObject {} export class CEvent extends CObject { - preventDefault(): void { - this._call(this._wasm._event_preventDefault)() - } + preventDefault(): void { + this._call(this._wasm._event_preventDefault)() + } } class CConfig extends CProxy<Config.Chart> {} @@ -24,127 +24,127 @@ class CStyle extends CProxy<Styles.Chart> {} class CAnimOptions extends CProxy<Anim.Options> {} export class CChart extends CObject { - config: CConfig - style: CStyle - computedStyle: CStyle - animOptions: CAnimOptions - private _cCanvas?: CCanvas - - constructor(env: CEnv, getId: CPointerClosure) { - super(getId, env) - - this.config = this._makeConfig() - this.style = this._makeStyle(false) - this.computedStyle = this._makeStyle(true) - this.animOptions = this._makeAnimOptions() - } - - update(cCanvas: CCanvas, width: number, height: number, renderControl: number): void { - this._cCanvas = cCanvas - this._call(this._wasm._vizzu_update)(cCanvas.getId(), width, height, renderControl) - } - - animate(callback: (ok: boolean) => void): void { - const callbackPtr = this._wasm.addFunction((ok: boolean) => { - callback(ok) - this._wasm.removeFunction(callbackPtr) - }, 'vi') - this._call(this._wasm._chart_animate)(callbackPtr) - } - - storeSnapshot(): Snapshot { - return new Snapshot(this._get(this._wasm._chart_store), this) - } - - restoreSnapshot(snapshot: Snapshot): void { - this._call(this._wasm._chart_restore)(snapshot.getId()) - } - - restoreAnim(animation: CAnimation): void { - this._call(this._wasm._chart_anim_restore)(animation.getId()) - } - - setKeyframe(): void { - this._call(this._wasm._chart_setKeyframe)() - } - - addEventListener<T>(eventName: string, func: (event: CEvent, param: T) => void): CFunction { - const wrappedFunc = (eventPtr: CEventPtr, param: CString): void => { - const eventObj = new CEvent(() => eventPtr, this) - func(eventObj, JSON.parse(this._fromCString(param))) - } - const cfunc = this._wasm.addFunction(wrappedFunc, 'vii') - const cname = this._toCString(eventName) - try { - this._call(this._wasm._addEventListener)(cname, cfunc) - } finally { - this._wasm._free(cname) - } - return cfunc - } - - removeEventListener(eventName: string, cfunc: CFunction): void { - const cname = this._toCString(eventName) - try { - this._call(this._wasm._removeEventListener)(cname, cfunc) - } finally { - this._wasm._free(cname) - } - this._wasm.removeFunction(cfunc) - } - - pointerdown(pointerId: number, x: number, y: number): void { - if (!this._cCanvas) return - this._call(this._wasm._vizzu_pointerDown)(this._cCanvas.getId(), pointerId, x, y) - } - - pointermove(pointerId: number, x: number, y: number): void { - if (!this._cCanvas) return - this._call(this._wasm._vizzu_pointerMove)(this._cCanvas.getId(), pointerId, x, y) - } - - pointerup(pointerId: number, x: number, y: number): void { - if (!this._cCanvas) return - this._call(this._wasm._vizzu_pointerUp)(this._cCanvas.getId(), pointerId, x, y) - } - - pointerleave(pointerId: number): void { - if (!this._cCanvas) return - this._call(this._wasm._vizzu_pointerLeave)(this._cCanvas.getId(), pointerId) - } - - wheel(delta: number): void { - if (!this._cCanvas) return - this._call(this._wasm._vizzu_wheel)(this._cCanvas.getId(), delta) - } - - private _makeConfig(): CConfig { - return new CConfig( - this.getId, - this, - this._wasm._chart_getList, - this._wasm._chart_getValue, - this._wasm._chart_setValue - ) - } - - private _makeStyle(computed: boolean): CStyle { - return new CStyle( - this.getId, - this, - this._wasm._style_getList, - (ptr, path) => this._wasm._style_getValue(ptr, path, computed), - this._wasm._style_setValue - ) - } - - private _makeAnimOptions(): CAnimOptions { - return new CAnimOptions( - this.getId, - this, - () => 0, - () => 0, - this._wasm._anim_setValue - ) - } + config: CConfig + style: CStyle + computedStyle: CStyle + animOptions: CAnimOptions + private _cCanvas?: CCanvas + + constructor(env: CEnv, getId: CPointerClosure) { + super(getId, env) + + this.config = this._makeConfig() + this.style = this._makeStyle(false) + this.computedStyle = this._makeStyle(true) + this.animOptions = this._makeAnimOptions() + } + + update(cCanvas: CCanvas, width: number, height: number, renderControl: number): void { + this._cCanvas = cCanvas + this._call(this._wasm._vizzu_update)(cCanvas.getId(), width, height, renderControl) + } + + animate(callback: (ok: boolean) => void): void { + const callbackPtr = this._wasm.addFunction((ok: boolean) => { + callback(ok) + this._wasm.removeFunction(callbackPtr) + }, 'vi') + this._call(this._wasm._chart_animate)(callbackPtr) + } + + storeSnapshot(): Snapshot { + return new Snapshot(this._get(this._wasm._chart_store), this) + } + + restoreSnapshot(snapshot: Snapshot): void { + this._call(this._wasm._chart_restore)(snapshot.getId()) + } + + restoreAnim(animation: CAnimation): void { + this._call(this._wasm._chart_anim_restore)(animation.getId()) + } + + setKeyframe(): void { + this._call(this._wasm._chart_setKeyframe)() + } + + addEventListener<T>(eventName: string, func: (event: CEvent, param: T) => void): CFunction { + const wrappedFunc = (eventPtr: CEventPtr, param: CString): void => { + const eventObj = new CEvent(() => eventPtr, this) + func(eventObj, JSON.parse(this._fromCString(param))) + } + const cfunc = this._wasm.addFunction(wrappedFunc, 'vii') + const cname = this._toCString(eventName) + try { + this._call(this._wasm._addEventListener)(cname, cfunc) + } finally { + this._wasm._free(cname) + } + return cfunc + } + + removeEventListener(eventName: string, cfunc: CFunction): void { + const cname = this._toCString(eventName) + try { + this._call(this._wasm._removeEventListener)(cname, cfunc) + } finally { + this._wasm._free(cname) + } + this._wasm.removeFunction(cfunc) + } + + pointerdown(pointerId: number, x: number, y: number): void { + if (!this._cCanvas) return + this._call(this._wasm._vizzu_pointerDown)(this._cCanvas.getId(), pointerId, x, y) + } + + pointermove(pointerId: number, x: number, y: number): void { + if (!this._cCanvas) return + this._call(this._wasm._vizzu_pointerMove)(this._cCanvas.getId(), pointerId, x, y) + } + + pointerup(pointerId: number, x: number, y: number): void { + if (!this._cCanvas) return + this._call(this._wasm._vizzu_pointerUp)(this._cCanvas.getId(), pointerId, x, y) + } + + pointerleave(pointerId: number): void { + if (!this._cCanvas) return + this._call(this._wasm._vizzu_pointerLeave)(this._cCanvas.getId(), pointerId) + } + + wheel(delta: number): void { + if (!this._cCanvas) return + this._call(this._wasm._vizzu_wheel)(this._cCanvas.getId(), delta) + } + + private _makeConfig(): CConfig { + return new CConfig( + this.getId, + this, + this._wasm._chart_getList, + this._wasm._chart_getValue, + this._wasm._chart_setValue + ) + } + + private _makeStyle(computed: boolean): CStyle { + return new CStyle( + this.getId, + this, + this._wasm._style_getList, + (ptr, path) => this._wasm._style_getValue(ptr, path, computed), + this._wasm._style_setValue + ) + } + + private _makeAnimOptions(): CAnimOptions { + return new CAnimOptions( + this.getId, + this, + () => 0, + () => 0, + this._wasm._anim_setValue + ) + } } diff --git a/src/apps/weblib/ts-api/module/ccolorgradient.ts b/src/apps/weblib/ts-api/module/ccolorgradient.ts index b4fb18e0a..83fa37059 100644 --- a/src/apps/weblib/ts-api/module/ccolorgradient.ts +++ b/src/apps/weblib/ts-api/module/ccolorgradient.ts @@ -2,36 +2,36 @@ import { CColorGradientPtr } from '../cvizzu.types.js' import { CEnv, CObject } from './cenv.js' interface ColorStop { - offset: number - color: string + offset: number + color: string } export class CColorGradient extends CObject { - stops: ColorStop[] + stops: ColorStop[] - constructor(env: CEnv, stopsPtr: CColorGradientPtr, stopCount: number) { - super(() => stopsPtr, env) - this.stops = this._getStops(stopCount) - } + constructor(env: CEnv, stopsPtr: CColorGradientPtr, stopCount: number) { + super(() => stopsPtr, env) + this.stops = this._getStops(stopCount) + } - private _getStops(stopCount: number): ColorStop[] { - const stopList = [] - const ptr = this.getId() - for (let i = 0; i < stopCount * 40; i += 40) { - stopList.push({ - offset: this._wasm.getValue(ptr + i, 'double'), - color: - 'rgba(' + - this._wasm.getValue(ptr + i + 8, 'double') * 255 + - ',' + - this._wasm.getValue(ptr + i + 16, 'double') * 255 + - ',' + - this._wasm.getValue(ptr + i + 24, 'double') * 255 + - ',' + - this._wasm.getValue(ptr + i + 32, 'double') + - ')' - }) - } - return stopList - } + private _getStops(stopCount: number): ColorStop[] { + const stopList = [] + const ptr = this.getId() + for (let i = 0; i < stopCount * 40; i += 40) { + stopList.push({ + offset: this._wasm.getValue(ptr + i, 'double'), + color: + 'rgba(' + + this._wasm.getValue(ptr + i + 8, 'double') * 255 + + ',' + + this._wasm.getValue(ptr + i + 16, 'double') * 255 + + ',' + + this._wasm.getValue(ptr + i + 24, 'double') * 255 + + ',' + + this._wasm.getValue(ptr + i + 32, 'double') + + ')' + }) + } + return stopList + } } diff --git a/src/apps/weblib/ts-api/module/ccoordsys.ts b/src/apps/weblib/ts-api/module/ccoordsys.ts index 805d49da7..e182b429d 100644 --- a/src/apps/weblib/ts-api/module/ccoordsys.ts +++ b/src/apps/weblib/ts-api/module/ccoordsys.ts @@ -3,20 +3,20 @@ import { Point } from '../geom.js' import { CObject } from './cenv.js' export class CCoordSystem extends CObject { - toCanvasCoords(point: Point): Point { - const ptr = this._call(this._wasm._chart_relToCanvasCoords)(point.x, point.y) - return this._getPoint(ptr) - } + toCanvasCoords(point: Point): Point { + const ptr = this._call(this._wasm._chart_relToCanvasCoords)(point.x, point.y) + return this._getPoint(ptr) + } - toRelCoords(point: Point): Point { - const ptr = this._call(this._wasm._chart_canvasToRelCoords)(point.x, point.y) - return this._getPoint(ptr) - } + toRelCoords(point: Point): Point { + const ptr = this._call(this._wasm._chart_canvasToRelCoords)(point.x, point.y) + return this._getPoint(ptr) + } - private _getPoint(ptr: CPointPtr): Point { - return { - x: this._wasm.getValue(ptr, 'double'), - y: this._wasm.getValue(ptr + 8, 'double') - } - } + private _getPoint(ptr: CPointPtr): Point { + return { + x: this._wasm.getValue(ptr, 'double'), + y: this._wasm.getValue(ptr + 8, 'double') + } + } } diff --git a/src/apps/weblib/ts-api/module/cdata.ts b/src/apps/weblib/ts-api/module/cdata.ts index 8d79d7e74..34e14d294 100644 --- a/src/apps/weblib/ts-api/module/cdata.ts +++ b/src/apps/weblib/ts-api/module/cdata.ts @@ -4,120 +4,120 @@ import { Mirrored } from '../tsutils' import * as Data from '../types/data.js' export class CRecord extends CObject { - constructor(env: CEnv, recordPtr: CRecordPtr) { - super(() => recordPtr, env) - } - - getValue(columnName: string): string | number { - const col = this._toCString(columnName) - let ptr - let value - - try { - ptr = this._call(this._wasm._record_getValue)(col) - - if (this._wasm.getValue(ptr, 'i1')) { - value = this._fromCString(this._wasm.getValue(ptr + 8, 'i8*')) - } else { - value = this._wasm.getValue(ptr + 8, 'double') - } - } finally { - this._wasm._free(col) - } - return value - } + constructor(env: CEnv, recordPtr: CRecordPtr) { + super(() => recordPtr, env) + } + + getValue(columnName: string): string | number { + const col = this._toCString(columnName) + let ptr + let value + + try { + ptr = this._call(this._wasm._record_getValue)(col) + + if (this._wasm.getValue(ptr, 'i1')) { + value = this._fromCString(this._wasm.getValue(ptr + 8, 'i8*')) + } else { + value = this._wasm.getValue(ptr + 8, 'double') + } + } finally { + this._wasm._free(col) + } + return value + } } export class CData extends CObject { - getMetaInfo(): Mirrored<Data.Metainfo> { - const cInfo = this._call(this._wasm._data_metaInfo)() - const info = this._fromCString(cInfo) - return { series: JSON.parse(info) } - } - - addDimension(name: string, dimension: string[]): void { - const ptrs = new Uint32Array(dimension.length) - for (let i = 0; i < dimension.length; i++) { - const ptr = this._toCString(dimension[i]!) - ptrs[i] = ptr - } - - const ptrArrayLen = dimension.length * 4 - - const ptrArr = this._wasm._malloc(ptrArrayLen) - const ptrHeap = new Uint8Array(this._wasm.HEAPU8.buffer, ptrArr, ptrArrayLen) - ptrHeap.set(new Uint8Array(ptrs.buffer)) - - const cname = this._toCString(name) - - try { - this._call(this._wasm._data_addDimension)(cname, ptrArr, dimension.length) - } finally { - this._wasm._free(cname) - for (const ptr of ptrs) { - this._wasm._free(ptr) - } - this._wasm._free(ptrArr) - } - } - - addMeasure(name: string, unit: string, values: number[]): void { - const vals = new Float64Array(values) - const valArrayLen = values.length * 8 - - const valArr = this._wasm._malloc(valArrayLen) - const valHeap = new Uint8Array(this._wasm.HEAPU8.buffer, valArr, valArrayLen) - - valHeap.set(new Uint8Array(vals.buffer)) - - const cname = this._toCString(name) - const cunit = this._toCString(unit) - - try { - this._call(this._wasm._data_addMeasure)(cname, cunit, valArr, values.length) - } finally { - this._wasm._free(cname) - this._wasm._free(cunit) - this._wasm._free(valArr) - } - } - - addRecord(record: (string | number)[]): void { - const ptrs = new Uint32Array(record.length) - - for (let i = 0; i < record.length; i++) { - const ptr = this._toCString(String(record[i]).toString()) - ptrs[i] = ptr - } - - const ptrArrayLen = record.length * 4 - - const ptrArr = this._wasm._malloc(ptrArrayLen) - const ptrHeap = new Uint8Array(this._wasm.HEAPU8.buffer, ptrArr, ptrArrayLen) - ptrHeap.set(new Uint8Array(ptrs.buffer)) - - try { - this._call(this._wasm._data_addRecord)(ptrArr, record.length) - } finally { - for (const ptr of ptrs) { - this._wasm._free(ptr) - } - this._wasm._free(ptrArr) - } - } - - setFilter(callback: ((record: CRecord) => boolean) | null): void { - const callbackPtrs: [CPointer, CPointer] = [0, 0] - if (callback !== null) { - const f = (recordPtr: CRecordPtr): boolean => callback(new CRecord(this, recordPtr)) - callbackPtrs[0] = this._wasm.addFunction(f, 'ii') - const deleter = (ptr: CPointer): void => { - if (ptr !== callbackPtrs[0]) console.warn('Wrong pointer passed to destructor') - this._wasm.removeFunction(callbackPtrs[0]) - this._wasm.removeFunction(callbackPtrs[1]) - } - callbackPtrs[1] = this._wasm.addFunction(deleter, 'vi') - } - this._call(this._wasm._chart_setFilter)(...callbackPtrs) - } + getMetaInfo(): Mirrored<Data.Metainfo> { + const cInfo = this._call(this._wasm._data_metaInfo)() + const info = this._fromCString(cInfo) + return { series: JSON.parse(info) } + } + + addDimension(name: string, dimension: string[]): void { + const ptrs = new Uint32Array(dimension.length) + for (let i = 0; i < dimension.length; i++) { + const ptr = this._toCString(dimension[i]!) + ptrs[i] = ptr + } + + const ptrArrayLen = dimension.length * 4 + + const ptrArr = this._wasm._malloc(ptrArrayLen) + const ptrHeap = new Uint8Array(this._wasm.HEAPU8.buffer, ptrArr, ptrArrayLen) + ptrHeap.set(new Uint8Array(ptrs.buffer)) + + const cname = this._toCString(name) + + try { + this._call(this._wasm._data_addDimension)(cname, ptrArr, dimension.length) + } finally { + this._wasm._free(cname) + for (const ptr of ptrs) { + this._wasm._free(ptr) + } + this._wasm._free(ptrArr) + } + } + + addMeasure(name: string, unit: string, values: number[]): void { + const vals = new Float64Array(values) + const valArrayLen = values.length * 8 + + const valArr = this._wasm._malloc(valArrayLen) + const valHeap = new Uint8Array(this._wasm.HEAPU8.buffer, valArr, valArrayLen) + + valHeap.set(new Uint8Array(vals.buffer)) + + const cname = this._toCString(name) + const cunit = this._toCString(unit) + + try { + this._call(this._wasm._data_addMeasure)(cname, cunit, valArr, values.length) + } finally { + this._wasm._free(cname) + this._wasm._free(cunit) + this._wasm._free(valArr) + } + } + + addRecord(record: (string | number)[]): void { + const ptrs = new Uint32Array(record.length) + + for (let i = 0; i < record.length; i++) { + const ptr = this._toCString(String(record[i]).toString()) + ptrs[i] = ptr + } + + const ptrArrayLen = record.length * 4 + + const ptrArr = this._wasm._malloc(ptrArrayLen) + const ptrHeap = new Uint8Array(this._wasm.HEAPU8.buffer, ptrArr, ptrArrayLen) + ptrHeap.set(new Uint8Array(ptrs.buffer)) + + try { + this._call(this._wasm._data_addRecord)(ptrArr, record.length) + } finally { + for (const ptr of ptrs) { + this._wasm._free(ptr) + } + this._wasm._free(ptrArr) + } + } + + setFilter(callback: ((record: CRecord) => boolean) | null): void { + const callbackPtrs: [CPointer, CPointer] = [0, 0] + if (callback !== null) { + const f = (recordPtr: CRecordPtr): boolean => callback(new CRecord(this, recordPtr)) + callbackPtrs[0] = this._wasm.addFunction(f, 'ii') + const deleter = (ptr: CPointer): void => { + if (ptr !== callbackPtrs[0]) console.warn('Wrong pointer passed to destructor') + this._wasm.removeFunction(callbackPtrs[0]) + this._wasm.removeFunction(callbackPtrs[1]) + } + callbackPtrs[1] = this._wasm.addFunction(deleter, 'vi') + } + this._call(this._wasm._chart_setFilter)(...callbackPtrs) + } } diff --git a/src/apps/weblib/ts-api/module/cenv.ts b/src/apps/weblib/ts-api/module/cenv.ts index 47057e58f..f2c9fd64d 100644 --- a/src/apps/weblib/ts-api/module/cenv.ts +++ b/src/apps/weblib/ts-api/module/cenv.ts @@ -4,63 +4,63 @@ import { CError } from './cerror.js' import { ObjectRegistry, FnGetter, CPointerClosure } from './objregistry.js' export class CEnv { - protected _wasm: CVizzu - protected _objectRegistry: ObjectRegistry + protected _wasm: CVizzu + protected _objectRegistry: ObjectRegistry - constructor(wasm: CVizzu, objectRegistry: ObjectRegistry) { - this._wasm = wasm - this._objectRegistry = objectRegistry - } + constructor(wasm: CVizzu, objectRegistry: ObjectRegistry) { + this._wasm = wasm + this._objectRegistry = objectRegistry + } - protected _toCString(str: string): CString { - const len = str.length * 4 + 1 - const buffer = this._wasm._malloc(len) - this._wasm.stringToUTF8(str, buffer, len) - return buffer - } + protected _toCString(str: string): CString { + const len = str.length * 4 + 1 + const buffer = this._wasm._malloc(len) + this._wasm.stringToUTF8(str, buffer, len) + return buffer + } - protected _fromCString(str: CString): string { - return this._wasm.UTF8ToString(str) - } + protected _fromCString(str: CString): string { + return this._wasm.UTF8ToString(str) + } - protected _getStatic(getter: FnGetter): CPointerClosure { - return this._objectRegistry.get(this._callStatic(getter)) - } + protected _getStatic(getter: FnGetter): CPointerClosure { + return this._objectRegistry.get(this._callStatic(getter)) + } - protected _callStatic<T extends unknown[], R>(f: (...params: T) => R): (...params: T) => R { - return (...params) => { - try { - return f(...params) - } catch (e: unknown) { - if (typeof e === 'number' && Number.isInteger(e)) { - throw new CError(e, this._wasm) - } else { - throw e - } - } - } - } + protected _callStatic<T extends unknown[], R>(f: (...params: T) => R): (...params: T) => R { + return (...params) => { + try { + return f(...params) + } catch (e: unknown) { + if (typeof e === 'number' && Number.isInteger(e)) { + throw new CError(e, this._wasm) + } else { + throw e + } + } + } + } - cObjectParams(): readonly [CVizzu, ObjectRegistry] { - return [this._wasm, this._objectRegistry] - } + cObjectParams(): readonly [CVizzu, ObjectRegistry] { + return [this._wasm, this._objectRegistry] + } } export class CObject extends CEnv { - getId: CPointerClosure + getId: CPointerClosure - constructor(getId: CPointerClosure, cenv: CEnv) { - super(...cenv.cObjectParams()) - this.getId = getId - } + constructor(getId: CPointerClosure, cenv: CEnv) { + super(...cenv.cObjectParams()) + this.getId = getId + } - protected _get(getter: (self: CPointer) => CPointer): CPointerClosure { - return this._objectRegistry.get(this._call(getter)) - } + protected _get(getter: (self: CPointer) => CPointer): CPointerClosure { + return this._objectRegistry.get(this._call(getter)) + } - protected _call<T extends unknown[], R>( - f: (cSelf: CPointer, ...params: T) => R - ): (...params: T) => R { - return super._callStatic(f).bind(this, this.getId()) - } + protected _call<T extends unknown[], R>( + f: (cSelf: CPointer, ...params: T) => R + ): (...params: T) => R { + return super._callStatic(f).bind(this, this.getId()) + } } diff --git a/src/apps/weblib/ts-api/module/cerror.ts b/src/apps/weblib/ts-api/module/cerror.ts index bbf7b5bf3..ae5ca17aa 100644 --- a/src/apps/weblib/ts-api/module/cerror.ts +++ b/src/apps/weblib/ts-api/module/cerror.ts @@ -1,11 +1,11 @@ import { CPointer, CVizzu } from '../cvizzu.types' export class CError extends Error { - constructor(ptr: CPointer, wasm: CVizzu) { - const type = new wasm.ExceptionInfo(ptr).get_type() - const cMessage = wasm._vizzu_errorMessage(ptr, type) - const message = wasm.UTF8ToString(cMessage) - super('error: ' + message) - this.name = 'CError' - } + constructor(ptr: CPointer, wasm: CVizzu) { + const type = new wasm.ExceptionInfo(ptr).get_type() + const cMessage = wasm._vizzu_errorMessage(ptr, type) + const message = wasm.UTF8ToString(cMessage) + super('error: ' + message) + this.name = 'CError' + } } diff --git a/src/apps/weblib/ts-api/module/cproxy.ts b/src/apps/weblib/ts-api/module/cproxy.ts index 13de11655..f3e0a2e93 100644 --- a/src/apps/weblib/ts-api/module/cproxy.ts +++ b/src/apps/weblib/ts-api/module/cproxy.ts @@ -10,58 +10,58 @@ type Getter = (self: CPointer, path: CString) => CString type Setter = (self: CPointer, path: CString, value: CString) => void export class CProxy<T> extends CObject { - private _lister: Lister - private _getter: Getter - private _setter: Setter + private _lister: Lister + private _getter: Getter + private _setter: Setter - constructor( - getId: CPointerClosure, - cenv: CObject, - lister: Lister, - getter: Getter, - setter: Setter - ) { - super(getId, cenv) - this._lister = lister - this._getter = getter - this._setter = setter - } + constructor( + getId: CPointerClosure, + cenv: CObject, + lister: Lister, + getter: Getter, + setter: Setter + ) { + super(getId, cenv) + this._lister = lister + this._getter = getter + this._setter = setter + } - set(value: T): void { - iterateObject(value, this.setParam.bind(this)) - } + set(value: T): void { + iterateObject(value, this.setParam.bind(this)) + } - get(): Mirrored<T> { - return mirrorObject<T>(this.listParams.bind(this), this.getParam.bind(this)) - } + get(): Mirrored<T> { + return mirrorObject<T>(this.listParams.bind(this), this.getParam.bind(this)) + } - listParams(): string[] { - const clistStr = this._call(this._lister)() - const listStr = this._fromCString(clistStr) - const list = JSON.parse(listStr) - return list - } + listParams(): string[] { + const clistStr = this._call(this._lister)() + const listStr = this._fromCString(clistStr) + const list = JSON.parse(listStr) + return list + } - getParam(path: string): unknown { - const cpath = this._toCString(path) - try { - const cvalue = this._call(this._getter)(cpath) - const value = this._fromCString(cvalue) - // dirty workaround because config.channel.*.set returns already json instead of scalars - return value.startsWith('[') || value.startsWith('{') ? JSON.parse(value) : value - } finally { - this._wasm._free(cpath) - } - } + getParam(path: string): unknown { + const cpath = this._toCString(path) + try { + const cvalue = this._call(this._getter)(cpath) + const value = this._fromCString(cvalue) + // dirty workaround because config.channel.*.set returns already json instead of scalars + return value.startsWith('[') || value.startsWith('{') ? JSON.parse(value) : value + } finally { + this._wasm._free(cpath) + } + } - setParam(path: string, value: unknown): void { - const cpath = this._toCString(path) - const cvalue = this._toCString(String(value).toString()) - try { - this._call(this._setter)(cpath, cvalue) - } finally { - this._wasm._free(cvalue) - this._wasm._free(cpath) - } - } + setParam(path: string, value: unknown): void { + const cpath = this._toCString(path) + const cvalue = this._toCString(String(value).toString()) + try { + this._call(this._setter)(cpath, cvalue) + } finally { + this._wasm._free(cvalue) + this._wasm._free(cpath) + } + } } diff --git a/src/apps/weblib/ts-api/module/loader.ts b/src/apps/weblib/ts-api/module/loader.ts index 6b6f30484..cdd26c3e8 100644 --- a/src/apps/weblib/ts-api/module/loader.ts +++ b/src/apps/weblib/ts-api/module/loader.ts @@ -4,46 +4,46 @@ import { Module } from './module.js' import VizzuModule from '../cvizzu.js' export interface LoaderOptions { - /** The URL for the webassembly binary (cvizzu.wasm). */ - wasmUrl?: string + /** The URL for the webassembly binary (cvizzu.wasm). */ + wasmUrl?: string } class Loader { - private _options: LoaderOptions - private _loading: Promise<Module> | null - - constructor() { - this._options = {} - this._loading = null - } - - set options(options: LoaderOptions) { - this._options = { ...this._options, ...options } - } - - get options(): LoaderOptions { - return this._options - } - - initialize(): Promise<Module> { - if (!this._loading) this._loading = this._loadModule() - return this._loading - } - - private async _loadModule(): Promise<Module> { - return new Module(await VizzuModule(this._getModuleOptions())) - } - - private _getModuleOptions(): ModuleOptions { - const moduleOptions: ModuleOptions = {} - if (this._options?.wasmUrl) { - const wasmUrl = this._options.wasmUrl - moduleOptions.locateFile = (path: string): string => { - return path.endsWith('.wasm') ? wasmUrl : path - } - } - return moduleOptions - } + private _options: LoaderOptions + private _loading: Promise<Module> | null + + constructor() { + this._options = {} + this._loading = null + } + + set options(options: LoaderOptions) { + this._options = { ...this._options, ...options } + } + + get options(): LoaderOptions { + return this._options + } + + initialize(): Promise<Module> { + if (!this._loading) this._loading = this._loadModule() + return this._loading + } + + private async _loadModule(): Promise<Module> { + return new Module(await VizzuModule(this._getModuleOptions())) + } + + private _getModuleOptions(): ModuleOptions { + const moduleOptions: ModuleOptions = {} + if (this._options?.wasmUrl) { + const wasmUrl = this._options.wasmUrl + moduleOptions.locateFile = (path: string): string => { + return path.endsWith('.wasm') ? wasmUrl : path + } + } + return moduleOptions + } } export const loader = new Loader() diff --git a/src/apps/weblib/ts-api/module/module.ts b/src/apps/weblib/ts-api/module/module.ts index 1201a9709..d9c73901e 100644 --- a/src/apps/weblib/ts-api/module/module.ts +++ b/src/apps/weblib/ts-api/module/module.ts @@ -10,41 +10,41 @@ import { CCoordSystem } from './ccoordsys.js' import { Canvas } from './canvas' export class Module extends CEnv { - constructor(wasm: CVizzu) { - super(wasm, new ObjectRegistry(wasm._object_free)) - this._wasm.canvases = {} - this.setLogging(false) - } - - registerRenderer(cCanvas: CCanvas, canvas: Canvas): void { - this._wasm.canvases[cCanvas.getId()] = canvas - } - - version(): string { - return this._wasm.UTF8ToString(this._wasm._vizzu_version()) - } - - setLogging(enabled: boolean): void { - this._callStatic(this._wasm._vizzu_setLogging)(enabled) - } - - getData(cChart: CChart): CData { - return new CData(cChart.getId, this) - } - - getCoordSystem(cChart: CChart): CCoordSystem { - return new CCoordSystem(cChart.getId, this) - } - - getAnimControl(cChart: CChart): CAnimControl { - return new CAnimControl(cChart.getId, this) - } - - createChart(): CChart { - return new CChart(this, this._getStatic(this._wasm._vizzu_createChart)) - } - - createCanvas(): CCanvas { - return new CCanvas(this, this._getStatic(this._wasm._vizzu_createCanvas)) - } + constructor(wasm: CVizzu) { + super(wasm, new ObjectRegistry(wasm._object_free)) + this._wasm.canvases = {} + this.setLogging(false) + } + + registerRenderer(cCanvas: CCanvas, canvas: Canvas): void { + this._wasm.canvases[cCanvas.getId()] = canvas + } + + version(): string { + return this._wasm.UTF8ToString(this._wasm._vizzu_version()) + } + + setLogging(enabled: boolean): void { + this._callStatic(this._wasm._vizzu_setLogging)(enabled) + } + + getData(cChart: CChart): CData { + return new CData(cChart.getId, this) + } + + getCoordSystem(cChart: CChart): CCoordSystem { + return new CCoordSystem(cChart.getId, this) + } + + getAnimControl(cChart: CChart): CAnimControl { + return new CAnimControl(cChart.getId, this) + } + + createChart(): CChart { + return new CChart(this, this._getStatic(this._wasm._vizzu_createChart)) + } + + createCanvas(): CCanvas { + return new CCanvas(this, this._getStatic(this._wasm._vizzu_createCanvas)) + } } diff --git a/src/apps/weblib/ts-api/module/objregistry.ts b/src/apps/weblib/ts-api/module/objregistry.ts index 65d8396cc..bcc115d1c 100644 --- a/src/apps/weblib/ts-api/module/objregistry.ts +++ b/src/apps/weblib/ts-api/module/objregistry.ts @@ -6,18 +6,18 @@ export type FnGetter = () => CPointer export type CPointerClosure = () => CPointer export class ObjectRegistry { - private _finalizationRegistry: FinalizationRegistry<CPointer> + private _finalizationRegistry: FinalizationRegistry<CPointer> - constructor(fnFree: FnFree) { - this._finalizationRegistry = new FinalizationRegistry((cPointer: CPointer) => { - fnFree(cPointer) - }) - } + constructor(fnFree: FnFree) { + this._finalizationRegistry = new FinalizationRegistry((cPointer: CPointer) => { + fnFree(cPointer) + }) + } - get(fnGetter: FnGetter): CPointerClosure { - const cPointer = fnGetter() - const object = (): CPointer => cPointer - this._finalizationRegistry.register(object, cPointer) - return object - } + get(fnGetter: FnGetter): CPointerClosure { + const cPointer = fnGetter() + const object = (): CPointer => cPointer + this._finalizationRegistry.register(object, cPointer) + return object + } } diff --git a/src/apps/weblib/ts-api/plugins.ts b/src/apps/weblib/ts-api/plugins.ts index 5de8fb6f9..1b485ec12 100644 --- a/src/apps/weblib/ts-api/plugins.ts +++ b/src/apps/weblib/ts-api/plugins.ts @@ -5,47 +5,47 @@ import { AnimCompleting } from './animcompleting.js' /** Available hooks for plugins in Vizzu. */ export enum Hooks { - /** Called when the animate() parameters gets set in the library to prepare + /** Called when the animate() parameters gets set in the library to prepare the animation. */ - prepareAnimation = 'prepareAnimation', - /** Called when the animate() method called, and the lib shedules the call + prepareAnimation = 'prepareAnimation', + /** Called when the animate() method called, and the lib shedules the call to the animation queue. */ - registerAnimation = 'registerAnimation', - /** Called when all animate() parameter set and animation can be started. */ - runAnimation = 'runAnimation' + registerAnimation = 'registerAnimation', + /** Called when all animate() parameter set and animation can be started. */ + runAnimation = 'runAnimation' } /** Plugin metainfo. */ export interface PluginMeta { - /** Name of the plugin. If not set, the class name will be used + /** Name of the plugin. If not set, the class name will be used with a lowercase first char. */ - name?: string - /** Version of the plugin. Not used for now. */ - version?: string - /** List of plugins this plugin depends on. + name?: string + /** Version of the plugin. Not used for now. */ + version?: string + /** List of plugins this plugin depends on. Dependent plugins should be registered beforehand. */ - depends?: string[] + depends?: string[] } export interface PrepareAnimationContext { - target: Anim.AnimTarget - options?: Anim.ControlOptions + target: Anim.AnimTarget + options?: Anim.ControlOptions } export interface RegisterAnimationContext { - target: Anim.AnimTarget - options?: Anim.ControlOptions - promise: AnimCompleting + target: Anim.AnimTarget + options?: Anim.ControlOptions + promise: AnimCompleting } export interface RunAnimationContext { - callback: (ok: boolean) => void + callback: (ok: boolean) => void } export interface HookContexts { - [Hooks.prepareAnimation]: PrepareAnimationContext - [Hooks.registerAnimation]: RegisterAnimationContext - [Hooks.runAnimation]: RunAnimationContext + [Hooks.prepareAnimation]: PrepareAnimationContext + [Hooks.registerAnimation]: RegisterAnimationContext + [Hooks.runAnimation]: RunAnimationContext } type Next = () => void @@ -54,231 +54,231 @@ type Next = () => void priority order. Each hook should call the next hook in the chain, or the default implementation won't run. */ type PluginHook<T> = { - (ctx: T, next: Next): void - priority?: number + (ctx: T, next: Next): void + priority?: number } /** Set of plugin hook implementations. */ export type PluginHooks<T extends Hooks = Hooks> = { - [key in T]?: PluginHook<HookContexts[key]> + [key in T]?: PluginHook<HookContexts[key]> } export type PluginListeners = { - [event in EventType]?: EventHandler<EventMap[event]> + [event in EventType]?: EventHandler<EventMap[event]> } export interface PluginApi { - [apiMethod: string]: unknown + [apiMethod: string]: unknown } /** Vizzu plugin interface. */ export interface Plugin { - /** Metainfo about the plugin. */ - meta?: PluginMeta - /** Hooks the plugin implemenst. They work only if the plugin is enabled. */ - hooks?: PluginHooks - /** Event listeners the plugin implements. They work only if the plugin is enabled. */ - listeners?: PluginListeners - /** Any parameter or method the Plugin exposes for the user. */ - api?: PluginApi - /** Register called when the plugin added to vizzu, receiving the Vizzu instance. */ - register?: (ctx: Vizzu) => void - /** Unregister is called when detach() called on the Vizzu instance. */ - unregister?: (ctx: Vizzu) => void - /** Method called by Vizzu indicating for the plugin that it got switched on/off. + /** Metainfo about the plugin. */ + meta?: PluginMeta + /** Hooks the plugin implemenst. They work only if the plugin is enabled. */ + hooks?: PluginHooks + /** Event listeners the plugin implements. They work only if the plugin is enabled. */ + listeners?: PluginListeners + /** Any parameter or method the Plugin exposes for the user. */ + api?: PluginApi + /** Register called when the plugin added to vizzu, receiving the Vizzu instance. */ + register?: (ctx: Vizzu) => void + /** Unregister is called when detach() called on the Vizzu instance. */ + unregister?: (ctx: Vizzu) => void + /** Method called by Vizzu indicating for the plugin that it got switched on/off. If switched off, its event listeners gets removed and its hooks won't be called. */ - enable?: (enabled: boolean) => void + enable?: (enabled: boolean) => void } interface PluginRecord { - name: string - instance: Plugin - enabled: boolean - registeredListeners?: PluginListeners + name: string + instance: Plugin + enabled: boolean + registeredListeners?: PluginListeners } interface HookExecutor<T extends Hooks> { - default: (last?: (ctx: HookContexts[T]) => void) => void + default: (last?: (ctx: HookContexts[T]) => void) => void } export class PluginRegistry { - private _parent: Vizzu | null - private _plugins: PluginRecord[] - private _events?: Events - - constructor(parent: Vizzu, plugins?: Plugin[]) { - this._parent = parent - this._plugins = [] - if (plugins) { - if (!Array.isArray(plugins)) { - throw new Error('Plugins must be an array') - } - plugins.forEach((plugin) => this.register(plugin, true)) - } - } - - init(events: Events): void { - this._events = events - this._plugins.forEach((plugin) => { - if (plugin.enabled) { - this._enableEvents(plugin) - } - }) - } - - enable(name: string, enabled: boolean): void { - const plugin = this._getByName(name) - this._setEnabled(plugin, enabled) - } - - getRegisteredName(instance: Plugin): string | undefined { - const plugin = this._plugins.find((plugin) => plugin.instance === instance) - return plugin?.name - } - - register(instance: Plugin, enabled = true): string { - this._validate(instance) - const name = this._discoverName(instance)! - if (instance.register && this._parent) { - instance.register(this._parent) - } - const plugin = { name, instance, enabled: !enabled } - this._plugins.push(plugin) - this._setEnabled(plugin, enabled) - return name - } - - destruct(): void { - const names = this._plugins.map((plugin) => plugin.name) - try { - names.forEach((name) => this.unregister(name)) - } finally { - this._plugins = [] - this._parent = null - } - } - - unregister(name: string): void { - const index = this._plugins.findIndex((plugin) => plugin.name === name) - if (index !== -1) { - const plugin = this._plugins[index] - this._plugins.splice(index, 1) - if (plugin?.instance.unregister && this._parent) { - plugin.instance.unregister(this._parent) - } - } - } - - api(name: string): PluginApi { - const plugin = this._getByName(name) - return plugin.instance.api || {} - } - - hook<T extends Hooks>(type: T, ctx: HookContexts[T]): HookExecutor<T> { - return { - default: (last: (ctx: HookContexts[T]) => void = (): void => {}): void => { - this._exec(ctx, type, last) - } - } - } - - private _setEnabled(plugin: PluginRecord, enabled: boolean): void { - if (plugin.enabled !== enabled) { - plugin.enabled = enabled - if (plugin.instance.enable) { - plugin.instance.enable(enabled) - } - if (plugin.enabled) { - this._enableEvents(plugin) - } else { - this._disableEvents(plugin) - } - } - } - - private _enableEvents(plugin: PluginRecord): void { - if (plugin.instance.listeners) { - plugin.registeredListeners = plugin.instance.listeners - this._events?.addMany(plugin.registeredListeners) - } - } - - private _disableEvents(plugin: PluginRecord): void { - if (plugin.registeredListeners) { - this._events?.removeMany(plugin.registeredListeners) - } - delete plugin.registeredListeners - } - - private _validate(instance: Plugin): void { - this._validateName(instance) - this._validateDepends(instance) - } - - private _validateName(instance: Plugin): void { - const name = this._discoverName(instance) - if (typeof name === 'string' && name.length > 0) { - return - } - throw new Error('Plugin must have a non empty name string') - } - - private _discoverName(instance: Plugin): string | undefined { - return ( - instance.meta?.name ?? - (instance.constructor?.name ? this._firstToLower(instance.constructor.name) : undefined) - ) - } - - private _firstToLower(s: string): string { - if (typeof s === 'string' && s[0]) { - return s[0].toLowerCase() + s.slice(1) - } - return '' - } - - private _validateDepends(instance: Plugin): void { - if (instance.meta?.depends) { - if (Array.isArray(instance.meta.depends)) { - for (const depend of instance.meta.depends) { - this._getByName(depend) - } - return - } - throw new Error('Plugin depends must be an array') - } - } - - private _getByName(name: string): PluginRecord { - const plugin = this._plugins.find((plugin) => plugin.name === name) - if (plugin) return plugin - throw new Error(`Plugin ${name} is not registered`) - } - - private _exec<T extends Hooks>( - ctx: HookContexts[T], - type: T, - last: PluginHook<HookContexts[T]> - ): void { - const hooks = [...this._getHooks(type), last] - this._executeHooks(hooks, ctx) - } - - private _getHooks<T extends Hooks>(type: T): PluginHook<HookContexts[T]>[] { - return this._plugins - .filter((plugin) => plugin.enabled && plugin.instance.hooks?.[type]) - .map((plugin: PluginRecord) => plugin.instance.hooks![type]!) - .sort((a, b) => (b.priority || 0) - (a.priority || 0)) - } - - private _executeHooks<T>(hooks: PluginHook<T>[], ctx: T): void { - let next = (): void => {} - const iterator = hooks - .map((fn) => { - return fn ? (): void => fn(ctx, next) : (): void => next() - }) - [Symbol.iterator]() - next = (): void => iterator.next().value() - next() - } + private _parent: Vizzu | null + private _plugins: PluginRecord[] + private _events?: Events + + constructor(parent: Vizzu, plugins?: Plugin[]) { + this._parent = parent + this._plugins = [] + if (plugins) { + if (!Array.isArray(plugins)) { + throw new Error('Plugins must be an array') + } + plugins.forEach((plugin) => this.register(plugin, true)) + } + } + + init(events: Events): void { + this._events = events + this._plugins.forEach((plugin) => { + if (plugin.enabled) { + this._enableEvents(plugin) + } + }) + } + + enable(name: string, enabled: boolean): void { + const plugin = this._getByName(name) + this._setEnabled(plugin, enabled) + } + + getRegisteredName(instance: Plugin): string | undefined { + const plugin = this._plugins.find((plugin) => plugin.instance === instance) + return plugin?.name + } + + register(instance: Plugin, enabled = true): string { + this._validate(instance) + const name = this._discoverName(instance)! + if (instance.register && this._parent) { + instance.register(this._parent) + } + const plugin = { name, instance, enabled: !enabled } + this._plugins.push(plugin) + this._setEnabled(plugin, enabled) + return name + } + + destruct(): void { + const names = this._plugins.map((plugin) => plugin.name) + try { + names.forEach((name) => this.unregister(name)) + } finally { + this._plugins = [] + this._parent = null + } + } + + unregister(name: string): void { + const index = this._plugins.findIndex((plugin) => plugin.name === name) + if (index !== -1) { + const plugin = this._plugins[index] + this._plugins.splice(index, 1) + if (plugin?.instance.unregister && this._parent) { + plugin.instance.unregister(this._parent) + } + } + } + + api(name: string): PluginApi { + const plugin = this._getByName(name) + return plugin.instance.api || {} + } + + hook<T extends Hooks>(type: T, ctx: HookContexts[T]): HookExecutor<T> { + return { + default: (last: (ctx: HookContexts[T]) => void = (): void => {}): void => { + this._exec(ctx, type, last) + } + } + } + + private _setEnabled(plugin: PluginRecord, enabled: boolean): void { + if (plugin.enabled !== enabled) { + plugin.enabled = enabled + if (plugin.instance.enable) { + plugin.instance.enable(enabled) + } + if (plugin.enabled) { + this._enableEvents(plugin) + } else { + this._disableEvents(plugin) + } + } + } + + private _enableEvents(plugin: PluginRecord): void { + if (plugin.instance.listeners) { + plugin.registeredListeners = plugin.instance.listeners + this._events?.addMany(plugin.registeredListeners) + } + } + + private _disableEvents(plugin: PluginRecord): void { + if (plugin.registeredListeners) { + this._events?.removeMany(plugin.registeredListeners) + } + delete plugin.registeredListeners + } + + private _validate(instance: Plugin): void { + this._validateName(instance) + this._validateDepends(instance) + } + + private _validateName(instance: Plugin): void { + const name = this._discoverName(instance) + if (typeof name === 'string' && name.length > 0) { + return + } + throw new Error('Plugin must have a non empty name string') + } + + private _discoverName(instance: Plugin): string | undefined { + return ( + instance.meta?.name ?? + (instance.constructor?.name ? this._firstToLower(instance.constructor.name) : undefined) + ) + } + + private _firstToLower(s: string): string { + if (typeof s === 'string' && s[0]) { + return s[0].toLowerCase() + s.slice(1) + } + return '' + } + + private _validateDepends(instance: Plugin): void { + if (instance.meta?.depends) { + if (Array.isArray(instance.meta.depends)) { + for (const depend of instance.meta.depends) { + this._getByName(depend) + } + return + } + throw new Error('Plugin depends must be an array') + } + } + + private _getByName(name: string): PluginRecord { + const plugin = this._plugins.find((plugin) => plugin.name === name) + if (plugin) return plugin + throw new Error(`Plugin ${name} is not registered`) + } + + private _exec<T extends Hooks>( + ctx: HookContexts[T], + type: T, + last: PluginHook<HookContexts[T]> + ): void { + const hooks = [...this._getHooks(type), last] + this._executeHooks(hooks, ctx) + } + + private _getHooks<T extends Hooks>(type: T): PluginHook<HookContexts[T]>[] { + return this._plugins + .filter((plugin) => plugin.enabled && plugin.instance.hooks?.[type]) + .map((plugin: PluginRecord) => plugin.instance.hooks![type]!) + .sort((a, b) => (b.priority || 0) - (a.priority || 0)) + } + + private _executeHooks<T>(hooks: PluginHook<T>[], ctx: T): void { + let next = (): void => {} + const iterator = hooks + .map((fn) => { + return fn ? (): void => fn(ctx, next) : (): void => next() + }) + [Symbol.iterator]() + next = (): void => iterator.next().value() + next() + } } diff --git a/src/apps/weblib/ts-api/plugins/coordsys.ts b/src/apps/weblib/ts-api/plugins/coordsys.ts index 84ecd5e33..61d2230ea 100644 --- a/src/apps/weblib/ts-api/plugins/coordsys.ts +++ b/src/apps/weblib/ts-api/plugins/coordsys.ts @@ -3,27 +3,27 @@ import { Plugin, PluginApi } from '../plugins' import { Point } from '../geom' export interface CoordSystemApi extends PluginApi { - toCanvas(point: Point): Point - toRelative(point: Point): Point + toCanvas(point: Point): Point + toRelative(point: Point): Point } export class CoordSystem implements Plugin { - private _cCoordSys: CCoordSystem + private _cCoordSys: CCoordSystem - constructor(cCoordSys: CCoordSystem) { - this._cCoordSys = cCoordSys - } + constructor(cCoordSys: CCoordSystem) { + this._cCoordSys = cCoordSys + } - meta = { - name: 'coordSystem' - } + meta = { + name: 'coordSystem' + } - api: CoordSystemApi = { - toCanvas: (p: Point) => { - return this._cCoordSys.toCanvasCoords(p) - }, - toRelative: (p: Point) => { - return this._cCoordSys.toRelCoords(p) - } - } + api: CoordSystemApi = { + toCanvas: (p: Point) => { + return this._cCoordSys.toCanvasCoords(p) + }, + toRelative: (p: Point) => { + return this._cCoordSys.toRelCoords(p) + } + } } diff --git a/src/apps/weblib/ts-api/plugins/cssproperties.ts b/src/apps/weblib/ts-api/plugins/cssproperties.ts index 24d158483..74fa8d5a2 100644 --- a/src/apps/weblib/ts-api/plugins/cssproperties.ts +++ b/src/apps/weblib/ts-api/plugins/cssproperties.ts @@ -6,42 +6,42 @@ import Vizzu from '../vizzu.js' import { getCSSCustomPropsForElement, propsToObject } from './cssutils.js' export class CSSProperties implements Plugin { - private _chart?: Vizzu - - meta = { - name: 'cssProperties', - depends: ['htmlCanvas'] - } - - api = { - prefix: 'vizzu' - } - - constructor(options: { prefix?: string } = {}) { - if (options?.prefix) { - this.api.prefix = options.prefix - } - } - - get hooks(): PluginHooks { - return { - prepareAnimation: (ctx: PrepareAnimationContext, next: () => void): void => { - const props = getCSSCustomPropsForElement( - this._chart!.feature.htmlCanvas.element, - this.api.prefix - ) - if (Array.isArray(ctx.target)) - ctx.target.forEach(({ target }) => { - if (!(target instanceof Snapshot)) { - target.style = propsToObject(props, target.style, this.api.prefix) - } - }) - next() - } - } - } - - register(chart: Vizzu): void { - this._chart = chart - } + private _chart?: Vizzu + + meta = { + name: 'cssProperties', + depends: ['htmlCanvas'] + } + + api = { + prefix: 'vizzu' + } + + constructor(options: { prefix?: string } = {}) { + if (options?.prefix) { + this.api.prefix = options.prefix + } + } + + get hooks(): PluginHooks { + return { + prepareAnimation: (ctx: PrepareAnimationContext, next: () => void): void => { + const props = getCSSCustomPropsForElement( + this._chart!.feature.htmlCanvas.element, + this.api.prefix + ) + if (Array.isArray(ctx.target)) + ctx.target.forEach(({ target }) => { + if (!(target instanceof Snapshot)) { + target.style = propsToObject(props, target.style, this.api.prefix) + } + }) + next() + } + } + } + + register(chart: Vizzu): void { + this._chart = chart + } } diff --git a/src/apps/weblib/ts-api/plugins/cssutils.ts b/src/apps/weblib/ts-api/plugins/cssutils.ts index 6c79ef9a1..f317db588 100644 --- a/src/apps/weblib/ts-api/plugins/cssutils.ts +++ b/src/apps/weblib/ts-api/plugins/cssutils.ts @@ -1,78 +1,84 @@ export const isAccessibleStylesheet = (stylesheet: CSSStyleSheet): boolean => { - try { - // eslint-disable-next-line no-unused-expressions - stylesheet.cssRules - return true - } catch (e) { - return false - } + try { + // eslint-disable-next-line no-unused-expressions + stylesheet.cssRules + return true + } catch (e) { + return false + } } export const getCSSCustomProps = (pfx = ''): string[] => - [...document.styleSheets].filter(isAccessibleStylesheet).reduce<string[]>( - (finalArr, sheet) => - finalArr.concat( - [...sheet.cssRules] - .filter((rule: CSSRule): rule is CSSStyleRule => rule.constructor.name === 'CSSStyleRule') - .reduce<string[]>((propValArr, rule) => { - const props = [...rule.style] - .filter((propName: string) => propName.trim().indexOf('--' + pfx + '-') === 0) - .map((propName: string) => propName.trim()) - return [...propValArr, ...props] - }, []) - ), - [] - ) + [...document.styleSheets].filter(isAccessibleStylesheet).reduce<string[]>( + (finalArr, sheet) => + finalArr.concat( + [...sheet.cssRules] + .filter( + (rule: CSSRule): rule is CSSStyleRule => + rule.constructor.name === 'CSSStyleRule' + ) + .reduce<string[]>((propValArr, rule) => { + const props = [...rule.style] + .filter( + (propName: string) => + propName.trim().indexOf('--' + pfx + '-') === 0 + ) + .map((propName: string) => propName.trim()) + return [...propValArr, ...props] + }, []) + ), + [] + ) export const getCSSCustomPropsForElement = (el: HTMLElement, pfx = ''): string[][] => { - const props = getCSSCustomProps(pfx) - const style = getComputedStyle(el) - return props - .map((prop) => [prop, style.getPropertyValue(prop).trim()]) - .filter((pv) => pv[1] !== '') + const props = getCSSCustomProps(pfx) + const style = getComputedStyle(el) + return props + .map((prop) => [prop, style.getPropertyValue(prop).trim()]) + .filter((pv) => pv[1] !== '') } interface StringKeyedObject { - [key: string]: unknown + [key: string]: unknown } export const propSet = <T extends StringKeyedObject, V>( - obj: T, - path: string[], - value: V, - overwrite: boolean + obj: T, + path: string[], + value: V, + overwrite: boolean ): T => { - path.reduce((acc: StringKeyedObject, part: string, idx: number) => { - if (idx === path.length - 1) { - if (overwrite || !acc[part]) { - acc[part] = value - } - } else if (!acc[part]) { - acc[part] = {} - } + path.reduce((acc: StringKeyedObject, part: string, idx: number) => { + if (idx === path.length - 1) { + if (overwrite || !acc[part]) { + acc[part] = value + } + } else if (!acc[part]) { + acc[part] = {} + } - return acc[part] as StringKeyedObject - }, obj) + return acc[part] as StringKeyedObject + }, obj) - return obj + return obj } export const propsToObject = <T>( - props: string[][], - propObj: T | null | undefined, - pfx = '', - overwrite = false + props: string[][], + propObj: T | null | undefined, + pfx = '', + overwrite = false ): T => { - propObj = propObj || ({} as T) - propObj = props.reduce((obj, [prop, val]) => { - if (prop) { - const propname = prop.replace('--' + (pfx ? pfx + '-' : ''), '') - const proppath = propname.split('-') + propObj = propObj || ({} as T) + propObj = props.reduce((obj, [prop, val]) => { + if (prop) { + const propname = prop.replace('--' + (pfx ? pfx + '-' : ''), '') + const proppath = propname.split('-') - propSet(obj as StringKeyedObject, proppath, val, overwrite) - } - return obj - }, propObj) + propSet(obj as StringKeyedObject, proppath, val, overwrite) + } + return obj + }, propObj) - return propObj + return propObj } diff --git a/src/apps/weblib/ts-api/plugins/logging.ts b/src/apps/weblib/ts-api/plugins/logging.ts index 05a11e37a..4ffdebd24 100644 --- a/src/apps/weblib/ts-api/plugins/logging.ts +++ b/src/apps/weblib/ts-api/plugins/logging.ts @@ -1,15 +1,15 @@ import { Plugin } from '../plugins.js' export class Logging implements Plugin { - private _setEnable: (enabled: boolean) => void + private _setEnable: (enabled: boolean) => void - meta = { name: 'logging' } + meta = { name: 'logging' } - constructor(setEnable: (enabled: boolean) => void) { - this._setEnable = setEnable - } + constructor(setEnable: (enabled: boolean) => void) { + this._setEnable = setEnable + } - enable(enabled: boolean): void { - this._setEnable(enabled) - } + enable(enabled: boolean): void { + this._setEnable(enabled) + } } diff --git a/src/apps/weblib/ts-api/plugins/pivotdata.ts b/src/apps/weblib/ts-api/plugins/pivotdata.ts index 2ee0d41c4..a359a030b 100644 --- a/src/apps/weblib/ts-api/plugins/pivotdata.ts +++ b/src/apps/weblib/ts-api/plugins/pivotdata.ts @@ -5,34 +5,34 @@ import * as Data from '../types/data.js' import UnPivot, { DataCube } from './unpivot.js' export class PivotData implements Plugin { - meta = { - name: 'pivotData' - } + meta = { + name: 'pivotData' + } - get hooks(): PluginHooks { - return { - prepareAnimation: (ctx: PrepareAnimationContext, next: () => void): void => { - if (Array.isArray(ctx.target)) - ctx.target.forEach(({ target }) => { - if (target instanceof Snapshot) return - if (!target.data) return - if (target.data && UnPivot.isPivot(target.data)) { - if (PivotData._is1NF(target.data)) { - throw new Error( - 'inconsistent data form: ' + - 'series/records and dimensions/measures are both set.' - ) - } else { - target.data = UnPivot.convert(target.data) - } - } - }) - next() - } - } - } + get hooks(): PluginHooks { + return { + prepareAnimation: (ctx: PrepareAnimationContext, next: () => void): void => { + if (Array.isArray(ctx.target)) + ctx.target.forEach(({ target }) => { + if (target instanceof Snapshot) return + if (!target.data) return + if (target.data && UnPivot.isPivot(target.data)) { + if (PivotData._is1NF(target.data)) { + throw new Error( + 'inconsistent data form: ' + + 'series/records and dimensions/measures are both set.' + ) + } else { + target.data = UnPivot.convert(target.data) + } + } + }) + next() + } + } + } - private static _is1NF(data: Data.Set | DataCube): data is Data.Set { - return 'series' in data || 'records' in data - } + private static _is1NF(data: Data.Set | DataCube): data is Data.Set { + return 'series' in data || 'records' in data + } } diff --git a/src/apps/weblib/ts-api/plugins/pointerevents.ts b/src/apps/weblib/ts-api/plugins/pointerevents.ts index 796a66575..23e6b8c93 100644 --- a/src/apps/weblib/ts-api/plugins/pointerevents.ts +++ b/src/apps/weblib/ts-api/plugins/pointerevents.ts @@ -5,92 +5,96 @@ import { NotInitializedError } from '../errors.js' import { HtmlCanvasApi } from '../htmlcanvas.js' interface Handlers { - pointermove: (event: PointerEvent) => void - pointerup: (event: PointerEvent) => void - pointerdown: (event: PointerEvent) => void - pointerleave: (event: PointerEvent) => void - wheel: (event: WheelEvent) => void + pointermove: (event: PointerEvent) => void + pointerup: (event: PointerEvent) => void + pointerdown: (event: PointerEvent) => void + pointerleave: (event: PointerEvent) => void + wheel: (event: WheelEvent) => void } export class PointerEvents implements Plugin { - private _vizzu?: Vizzu - private _canvasApi?: HtmlCanvasApi - private _canvas?: HTMLCanvasElement - private _handlers?: Handlers - private _enabled = false + private _vizzu?: Vizzu + private _canvasApi?: HtmlCanvasApi + private _canvas?: HTMLCanvasElement + private _handlers?: Handlers + private _enabled = false - meta = { - name: 'pointerEvents', - depends: ['htmlCanvas'] - } + meta = { + name: 'pointerEvents', + depends: ['htmlCanvas'] + } - constructor(cChart: CChart) { - this._handlers = { - pointermove: (evt: PointerEvent): void => { - this._passEventToChart(evt, cChart.pointermove.bind(cChart)) - }, - pointerup: (evt: PointerEvent): void => { - this._passEventToChart(evt, cChart.pointerup.bind(cChart)) - }, - pointerdown: (evt: PointerEvent): void => { - this._passEventToChart(evt, cChart.pointerdown.bind(cChart)) - }, - pointerleave: (evt: PointerEvent): void => { - this._passEventToChart(evt, cChart.pointerleave.bind(cChart)) - }, - wheel: (evt: WheelEvent): void => { - this._passEventToChart(evt, cChart.wheel.bind(cChart), 'deltaY') - } - } - } + constructor(cChart: CChart) { + this._handlers = { + pointermove: (evt: PointerEvent): void => { + this._passEventToChart(evt, cChart.pointermove.bind(cChart)) + }, + pointerup: (evt: PointerEvent): void => { + this._passEventToChart(evt, cChart.pointerup.bind(cChart)) + }, + pointerdown: (evt: PointerEvent): void => { + this._passEventToChart(evt, cChart.pointerdown.bind(cChart)) + }, + pointerleave: (evt: PointerEvent): void => { + this._passEventToChart(evt, cChart.pointerleave.bind(cChart)) + }, + wheel: (evt: WheelEvent): void => { + this._passEventToChart(evt, cChart.wheel.bind(cChart), 'deltaY') + } + } + } - register(vizzu: Vizzu): void { - this._vizzu = vizzu - this._canvasApi = this._vizzu?.feature.htmlCanvas - } + register(vizzu: Vizzu): void { + this._vizzu = vizzu + this._canvasApi = this._vizzu?.feature.htmlCanvas + } - unregister(): void { - if (this._enabled) this._removeHandlers() - } + unregister(): void { + if (this._enabled) this._removeHandlers() + } - enable(enabled: boolean): void { - this._enabled = enabled - if (enabled) this._setHandlers() - else this._removeHandlers() - } + enable(enabled: boolean): void { + this._enabled = enabled + if (enabled) this._setHandlers() + else this._removeHandlers() + } - private _setHandlers(): void { - if (!this._vizzu || !this._handlers) { - throw new NotInitializedError() - } + private _setHandlers(): void { + if (!this._vizzu || !this._handlers) { + throw new NotInitializedError() + } - this._canvas = this._vizzu.feature.htmlCanvas.element - for (const [key, value] of Object.entries(this._handlers)) { - this._canvas.addEventListener(key, value) - } - } + this._canvas = this._vizzu.feature.htmlCanvas.element + for (const [key, value] of Object.entries(this._handlers)) { + this._canvas.addEventListener(key, value) + } + } - private _removeHandlers(): void { - if (this._handlers && this._canvas) { - for (const [key, value] of Object.entries(this._handlers)) { - this._canvas.removeEventListener(key, value) - } - } - delete this._canvas - } + private _removeHandlers(): void { + if (this._handlers && this._canvas) { + for (const [key, value] of Object.entries(this._handlers)) { + this._canvas.removeEventListener(key, value) + } + } + delete this._canvas + } - private _passEventToChart<T extends MouseEvent, F>(evt: T, func: F, member = 'pointerId'): void { - const args: unknown[] = [evt[member as keyof T]] - if (evt.clientX !== undefined) { - args.push(...this._getCoords(evt)) - } - ;(func as (...params: unknown[]) => unknown)(...args) - } + private _passEventToChart<T extends MouseEvent, F>( + evt: T, + func: F, + member = 'pointerId' + ): void { + const args: unknown[] = [evt[member as keyof T]] + if (evt.clientX !== undefined) { + args.push(...this._getCoords(evt)) + } + ;(func as (...params: unknown[]) => unknown)(...args) + } - private _getCoords(evt: MouseEvent): number[] { - const clientPos = { x: evt.clientX, y: evt.clientY } - if (!this._canvasApi) throw new NotInitializedError() - const pos = this._canvasApi.clientToCanvas(clientPos) - return [pos.x, pos.y] - } + private _getCoords(evt: MouseEvent): number[] { + const clientPos = { x: evt.clientX, y: evt.clientY } + if (!this._canvasApi) throw new NotInitializedError() + const pos = this._canvasApi.clientToCanvas(clientPos) + return [pos.x, pos.y] + } } diff --git a/src/apps/weblib/ts-api/plugins/presetconfigs.js b/src/apps/weblib/ts-api/plugins/presetconfigs.js index db1c0f2a2..90ee57052 100644 --- a/src/apps/weblib/ts-api/plugins/presetconfigs.js +++ b/src/apps/weblib/ts-api/plugins/presetconfigs.js @@ -1,347 +1,347 @@ export const presetConfigs = { - column: { - channels: { - x: { set: ['x'] }, - y: { set: ['y'] }, - label: { set: ['y'] } - } - }, - groupedColumn: { - channels: { - x: { set: ['groupedBy', 'x'] }, - y: { set: ['y'] }, - label: { set: ['y'] }, - color: { set: ['x'] } - } - }, - stackedColumn: { - channels: { - x: { set: ['x'] }, - y: { set: ['y', 'stackedBy'] }, - label: { set: ['y'] }, - color: { set: ['stackedBy'] } - } - }, - splittedColumn: { - channels: { - x: { set: ['x'] }, - y: { set: ['y', 'splittedBy'] }, - color: { set: ['splittedBy'] }, - label: { set: ['y'] } - }, - split: true - }, - percentageColumn: { - channels: { - x: { set: ['x'] }, - y: { set: ['y', 'stackedBy'] }, - color: { set: ['stackedBy'] }, - label: { set: ['y'] } - }, - align: 'stretch' - }, - waterfall: { - channels: { - x: { set: ['x'] }, - y: { set: ['y', 'x'] }, - label: { set: ['y'] }, - color: { set: ['y'] } - }, - align: 'stretch' - }, - mekko: { - channels: { - x: { set: ['x', 'groupedBy'] }, - y: { set: ['y', 'stackedBy'] }, - color: { set: ['stackedBy'] }, - label: { set: ['groupedBy'] } - } - }, - marimekko: { - channels: { - x: { set: ['x', 'groupedBy'] }, - y: { set: ['y', 'stackedBy'] }, - color: { set: ['stackedBy'] }, - label: { set: ['groupedBy'] } - }, - align: 'stretch' - }, - bar: { - channels: { - x: { set: ['x'] }, - y: { set: ['y'] }, - label: { set: ['x'] } - } - }, - groupedBar: { - channels: { - x: { set: ['x'] }, - y: { set: ['groupedBy', 'y'] }, - label: { set: ['x'] }, - color: { set: ['y'] } - } - }, - stackedBar: { - channels: { - x: { set: ['x', 'stackedBy'] }, - y: { set: ['y'] }, - label: { set: ['x'] }, - color: { set: ['stackedBy'] } - } - }, - splittedBar: { - channels: { - x: { set: ['x', 'splittedBy'] }, - y: { set: ['y'] }, - color: { set: ['splittedBy'] }, - label: { set: ['x'] } - }, - split: true - }, - percentageBar: { - channels: { - x: { set: ['x', 'stackedBy'] }, - y: { set: ['y'] }, - color: { set: ['stackedBy'] }, - label: { set: ['x'] } - }, - align: 'stretch' - }, - lollipop: { - channels: { - x: { set: ['x'] }, - y: { set: ['y'] }, - label: { set: ['y'] } - }, - geometry: 'circle' - }, - scatter: { - channels: { - x: { set: ['x'] }, - y: { set: ['y'] }, - noop: { set: ['dividedBy'] } - }, - geometry: 'circle' - }, - bubbleplot: { - channels: { - x: { set: ['x'] }, - y: { set: ['y'] }, - color: { set: ['color'] }, - size: { set: ['size'] }, - label: { set: ['dividedBy'] }, - noop: { set: ['dividedBy'] } - }, - geometry: 'circle' - }, - area: { - channels: { - x: { set: ['x'] }, - y: { set: ['y'] } - }, - geometry: 'area' - }, - stackedArea: { - channels: { - x: { set: ['x'] }, - y: { set: ['y', 'stackedBy'] }, - color: { set: ['stackedBy'] } - }, - geometry: 'area' - }, - percentageArea: { - channels: { - x: { set: ['x'] }, - y: { set: ['y', 'stackedBy'] }, - color: { set: ['stackedBy'] } - }, - align: 'stretch', - geometry: 'area' - }, - splittedArea: { - channels: { - x: { set: ['x'] }, - y: { set: ['y', 'splittedBy'] }, - color: { set: ['splittedBy'] } - }, - split: true, - geometry: 'area' - }, - stream: { - channels: { - x: { set: ['x'] }, - y: { set: ['y', 'stackedBy'] }, - color: { set: ['stackedBy'] } - }, - geometry: 'area', - align: 'center' - }, - verticalStream: { - channels: { - x: { set: ['x', 'stackedBy'] }, - y: { set: ['y'] }, - color: { set: ['stackedBy'] } - }, - geometry: 'area', - align: 'center' - }, - violin: { - channels: { - x: { set: ['x'] }, - y: { set: ['y', 'splittedBy'] }, - color: { set: ['splittedBy'] } - }, - geometry: 'area', - align: 'center', - split: true - }, - verticalViolin: { - channels: { - x: { set: ['x', 'splittedBy'] }, - y: { set: ['y'] }, - color: { set: ['splittedBy'] } - }, - geometry: 'area', - align: 'center', - split: true - }, - line: { - channels: { - x: { set: ['x'] }, - y: { set: ['y'] }, - color: { set: ['dividedBy'] } - }, - geometry: 'line' - }, - verticalLine: { - channels: { - x: { set: ['x'] }, - y: { set: ['y'] }, - color: { set: ['dividedBy'] } - }, - geometry: 'line' - }, - pie: { - channels: { - x: { set: ['angle', 'by'] }, - color: { set: ['by'] }, - label: { set: ['angle'] } - }, - coordSystem: 'polar' - }, - polarColumn: { - channels: { - x: { set: ['angle'] }, - y: { set: ['radius'] }, - label: { set: ['radius'] } - }, - coordSystem: 'polar' - }, - polarStackedColumn: { - channels: { - x: { set: ['angle'] }, - y: { set: ['radius', 'stackedBy'] }, - color: { set: ['stackedBy'] } - }, - coordSystem: 'polar' - }, - variableRadiusPie: { - channels: { - x: { set: ['angle', 'by'] }, - y: { set: ['radius'] }, - color: { set: ['by'] }, - label: { set: ['radius'] } - }, - coordSystem: 'polar' - }, - radialBar: { - channels: { - x: { set: ['angle'] }, - y: { set: ['radius'], range: { min: '-50%' } }, - label: { set: ['angle'] } - }, - coordSystem: 'polar' - }, - radialStackedBar: { - channels: { - x: { set: ['angle', 'stackedBy'] }, - y: { set: ['radius'], range: { min: '-50%' } }, - color: { set: ['stackedBy'] }, - label: { set: ['angle'] } - }, - coordSystem: 'polar' - }, - donut: { - channels: { - x: { set: ['angle', 'stackedBy'] }, - y: { range: { min: '-200%', max: '100%' } }, - color: { set: ['stackedBy'] } - }, - coordSystem: 'polar' - }, - nestedDonut: { - channels: { - x: { set: ['angle', 'stackedBy'] }, - y: { set: ['radius'], range: { min: '-50%' } }, - color: { set: ['stackedBy'] }, - label: { set: ['angle'] } - }, - coordSystem: 'polar', - align: 'stretch' - }, - polarScatter: { - channels: { - x: { set: ['angle'] }, - y: { set: ['radius'] }, - noop: { set: ['dividedBy'] } - }, - coordSystem: 'polar', - geometry: 'circle' - }, - polarLine: { - channels: { - x: { set: ['angle'] }, - y: { set: ['radius'] }, - color: { set: ['dividedBy'] } - }, - coordSystem: 'polar', - geometry: 'line' - }, - treemap: { - channels: { - size: { set: ['size', 'color'] }, - color: { set: ['color'] }, - label: { set: ['color'] } - } - }, - stackedTreemap: { - channels: { - size: { set: ['size', 'dividedBy'] }, - color: { set: ['color'] }, - label: { set: ['dividedBy'] }, - lightness: { set: ['size'] } - } - }, - heatmap: { - channels: { - x: { set: ['x'] }, - y: { set: ['y'] }, - lightness: { set: ['lightness'] } - } - }, - bubble: { - channels: { - size: { set: ['size'] }, - color: { set: ['color'] }, - label: { set: ['color'] } - }, - geometry: 'circle' - }, - stackedBubble: { - channels: { - size: { set: ['size', 'stackedBy'] }, - color: { set: ['color'] } - }, - geometry: 'circle' - } + column: { + channels: { + x: { set: ['x'] }, + y: { set: ['y'] }, + label: { set: ['y'] } + } + }, + groupedColumn: { + channels: { + x: { set: ['groupedBy', 'x'] }, + y: { set: ['y'] }, + label: { set: ['y'] }, + color: { set: ['x'] } + } + }, + stackedColumn: { + channels: { + x: { set: ['x'] }, + y: { set: ['y', 'stackedBy'] }, + label: { set: ['y'] }, + color: { set: ['stackedBy'] } + } + }, + splittedColumn: { + channels: { + x: { set: ['x'] }, + y: { set: ['y', 'splittedBy'] }, + color: { set: ['splittedBy'] }, + label: { set: ['y'] } + }, + split: true + }, + percentageColumn: { + channels: { + x: { set: ['x'] }, + y: { set: ['y', 'stackedBy'] }, + color: { set: ['stackedBy'] }, + label: { set: ['y'] } + }, + align: 'stretch' + }, + waterfall: { + channels: { + x: { set: ['x'] }, + y: { set: ['y', 'x'] }, + label: { set: ['y'] }, + color: { set: ['y'] } + }, + align: 'stretch' + }, + mekko: { + channels: { + x: { set: ['x', 'groupedBy'] }, + y: { set: ['y', 'stackedBy'] }, + color: { set: ['stackedBy'] }, + label: { set: ['groupedBy'] } + } + }, + marimekko: { + channels: { + x: { set: ['x', 'groupedBy'] }, + y: { set: ['y', 'stackedBy'] }, + color: { set: ['stackedBy'] }, + label: { set: ['groupedBy'] } + }, + align: 'stretch' + }, + bar: { + channels: { + x: { set: ['x'] }, + y: { set: ['y'] }, + label: { set: ['x'] } + } + }, + groupedBar: { + channels: { + x: { set: ['x'] }, + y: { set: ['groupedBy', 'y'] }, + label: { set: ['x'] }, + color: { set: ['y'] } + } + }, + stackedBar: { + channels: { + x: { set: ['x', 'stackedBy'] }, + y: { set: ['y'] }, + label: { set: ['x'] }, + color: { set: ['stackedBy'] } + } + }, + splittedBar: { + channels: { + x: { set: ['x', 'splittedBy'] }, + y: { set: ['y'] }, + color: { set: ['splittedBy'] }, + label: { set: ['x'] } + }, + split: true + }, + percentageBar: { + channels: { + x: { set: ['x', 'stackedBy'] }, + y: { set: ['y'] }, + color: { set: ['stackedBy'] }, + label: { set: ['x'] } + }, + align: 'stretch' + }, + lollipop: { + channels: { + x: { set: ['x'] }, + y: { set: ['y'] }, + label: { set: ['y'] } + }, + geometry: 'circle' + }, + scatter: { + channels: { + x: { set: ['x'] }, + y: { set: ['y'] }, + noop: { set: ['dividedBy'] } + }, + geometry: 'circle' + }, + bubbleplot: { + channels: { + x: { set: ['x'] }, + y: { set: ['y'] }, + color: { set: ['color'] }, + size: { set: ['size'] }, + label: { set: ['dividedBy'] }, + noop: { set: ['dividedBy'] } + }, + geometry: 'circle' + }, + area: { + channels: { + x: { set: ['x'] }, + y: { set: ['y'] } + }, + geometry: 'area' + }, + stackedArea: { + channels: { + x: { set: ['x'] }, + y: { set: ['y', 'stackedBy'] }, + color: { set: ['stackedBy'] } + }, + geometry: 'area' + }, + percentageArea: { + channels: { + x: { set: ['x'] }, + y: { set: ['y', 'stackedBy'] }, + color: { set: ['stackedBy'] } + }, + align: 'stretch', + geometry: 'area' + }, + splittedArea: { + channels: { + x: { set: ['x'] }, + y: { set: ['y', 'splittedBy'] }, + color: { set: ['splittedBy'] } + }, + split: true, + geometry: 'area' + }, + stream: { + channels: { + x: { set: ['x'] }, + y: { set: ['y', 'stackedBy'] }, + color: { set: ['stackedBy'] } + }, + geometry: 'area', + align: 'center' + }, + verticalStream: { + channels: { + x: { set: ['x', 'stackedBy'] }, + y: { set: ['y'] }, + color: { set: ['stackedBy'] } + }, + geometry: 'area', + align: 'center' + }, + violin: { + channels: { + x: { set: ['x'] }, + y: { set: ['y', 'splittedBy'] }, + color: { set: ['splittedBy'] } + }, + geometry: 'area', + align: 'center', + split: true + }, + verticalViolin: { + channels: { + x: { set: ['x', 'splittedBy'] }, + y: { set: ['y'] }, + color: { set: ['splittedBy'] } + }, + geometry: 'area', + align: 'center', + split: true + }, + line: { + channels: { + x: { set: ['x'] }, + y: { set: ['y'] }, + color: { set: ['dividedBy'] } + }, + geometry: 'line' + }, + verticalLine: { + channels: { + x: { set: ['x'] }, + y: { set: ['y'] }, + color: { set: ['dividedBy'] } + }, + geometry: 'line' + }, + pie: { + channels: { + x: { set: ['angle', 'by'] }, + color: { set: ['by'] }, + label: { set: ['angle'] } + }, + coordSystem: 'polar' + }, + polarColumn: { + channels: { + x: { set: ['angle'] }, + y: { set: ['radius'] }, + label: { set: ['radius'] } + }, + coordSystem: 'polar' + }, + polarStackedColumn: { + channels: { + x: { set: ['angle'] }, + y: { set: ['radius', 'stackedBy'] }, + color: { set: ['stackedBy'] } + }, + coordSystem: 'polar' + }, + variableRadiusPie: { + channels: { + x: { set: ['angle', 'by'] }, + y: { set: ['radius'] }, + color: { set: ['by'] }, + label: { set: ['radius'] } + }, + coordSystem: 'polar' + }, + radialBar: { + channels: { + x: { set: ['angle'] }, + y: { set: ['radius'], range: { min: '-50%' } }, + label: { set: ['angle'] } + }, + coordSystem: 'polar' + }, + radialStackedBar: { + channels: { + x: { set: ['angle', 'stackedBy'] }, + y: { set: ['radius'], range: { min: '-50%' } }, + color: { set: ['stackedBy'] }, + label: { set: ['angle'] } + }, + coordSystem: 'polar' + }, + donut: { + channels: { + x: { set: ['angle', 'stackedBy'] }, + y: { range: { min: '-200%', max: '100%' } }, + color: { set: ['stackedBy'] } + }, + coordSystem: 'polar' + }, + nestedDonut: { + channels: { + x: { set: ['angle', 'stackedBy'] }, + y: { set: ['radius'], range: { min: '-50%' } }, + color: { set: ['stackedBy'] }, + label: { set: ['angle'] } + }, + coordSystem: 'polar', + align: 'stretch' + }, + polarScatter: { + channels: { + x: { set: ['angle'] }, + y: { set: ['radius'] }, + noop: { set: ['dividedBy'] } + }, + coordSystem: 'polar', + geometry: 'circle' + }, + polarLine: { + channels: { + x: { set: ['angle'] }, + y: { set: ['radius'] }, + color: { set: ['dividedBy'] } + }, + coordSystem: 'polar', + geometry: 'line' + }, + treemap: { + channels: { + size: { set: ['size', 'color'] }, + color: { set: ['color'] }, + label: { set: ['color'] } + } + }, + stackedTreemap: { + channels: { + size: { set: ['size', 'dividedBy'] }, + color: { set: ['color'] }, + label: { set: ['dividedBy'] }, + lightness: { set: ['size'] } + } + }, + heatmap: { + channels: { + x: { set: ['x'] }, + y: { set: ['y'] }, + lightness: { set: ['lightness'] } + } + }, + bubble: { + channels: { + size: { set: ['size'] }, + color: { set: ['color'] }, + label: { set: ['color'] } + }, + geometry: 'circle' + }, + stackedBubble: { + channels: { + size: { set: ['size', 'stackedBy'] }, + color: { set: ['color'] } + }, + geometry: 'circle' + } } diff --git a/src/apps/weblib/ts-api/plugins/presets.ts b/src/apps/weblib/ts-api/plugins/presets.ts index da6560915..035eb3c69 100644 --- a/src/apps/weblib/ts-api/plugins/presets.ts +++ b/src/apps/weblib/ts-api/plugins/presets.ts @@ -8,106 +8,106 @@ type RawPresetConfigs = typeof presetConfigs type PresetNames = keyof RawPresetConfigs type PresetConfigs = { - [Property in keyof RawPresetConfigs]: Config.Chart + [Property in keyof RawPresetConfigs]: Config.Chart } type PresetInterface = { - [Property in keyof RawPresetConfigs]: (config: Config.Chart) => Config.Chart + [Property in keyof RawPresetConfigs]: (config: Config.Chart) => Config.Chart } export default class Presets { - private _presetConfigs: PresetConfigs + private _presetConfigs: PresetConfigs - constructor() { - this._presetConfigs = presetConfigs as PresetConfigs + constructor() { + this._presetConfigs = presetConfigs as PresetConfigs - for (const key in this._presetConfigs) { - const name = key as PresetNames - ;(this as unknown as PresetInterface)[name] = (config: Config.Chart): Config.Chart => { - return this._buildPresetConfig(name, config) - } - } - } + for (const key in this._presetConfigs) { + const name = key as PresetNames + ;(this as unknown as PresetInterface)[name] = (config: Config.Chart): Config.Chart => { + return this._buildPresetConfig(name, config) + } + } + } - private _nullConfig(): Config.Chart { - return { - align: 'none', - coordSystem: 'cartesian', - orientation: 'auto', - angle: 0, - split: false, - geometry: 'rectangle', - channels: { - x: { set: null }, - y: { set: null }, - color: { set: null }, - lightness: { set: null }, - size: { set: null }, - noop: { set: null }, - label: { set: null } - } - } - } + private _nullConfig(): Config.Chart { + return { + align: 'none', + coordSystem: 'cartesian', + orientation: 'auto', + angle: 0, + split: false, + geometry: 'rectangle', + channels: { + x: { set: null }, + y: { set: null }, + color: { set: null }, + lightness: { set: null }, + size: { set: null }, + noop: { set: null }, + label: { set: null } + } + } + } - private _createPresetConfig(presetName: PresetNames): Config.Chart { - const presetConfig = recursiveCopy(this._presetConfigs[presetName]) - const channelBase = { ...this._nullConfig().channels, ...presetConfig!.channels } - const base = Object.assign(this._nullConfig(), presetConfig) - base.channels = channelBase - return base - } + private _createPresetConfig(presetName: PresetNames): Config.Chart { + const presetConfig = recursiveCopy(this._presetConfigs[presetName]) + const channelBase = { ...this._nullConfig().channels, ...presetConfig!.channels } + const base = Object.assign(this._nullConfig(), presetConfig) + base.channels = channelBase + return base + } - private _getChannelCopy(channel: Data.SeriesList | null | undefined): Data.SeriesList | null { - if (channel === null) return null - if (channel === undefined) return null - if (Array.isArray(channel)) return channel - return [channel] - } + private _getChannelCopy(channel: Data.SeriesList | null | undefined): Data.SeriesList | null { + if (channel === null) return null + if (channel === undefined) return null + if (Array.isArray(channel)) return channel + return [channel] + } - private _fillChannels(presetConfig: Config.Chart, config: Config.Chart | undefined): void { - if (!config) return - const channels = presetConfig.channels - for (const key in channels) { - const channelName = key as keyof Config.Channels - const channel = channels[channelName] - if (!this._isChannel(channel)) { - continue - } else if (typeof channel.set === 'string') { - const key = channel.set as keyof Config.Chart - channel.set = this._getChannelCopy(config[key] as Data.SeriesList) - } else if (Array.isArray(channel.set)) { - const newChannel = [] - for (let i = 0; i < channel.set.length; i++) { - const key = channel.set[i]! as keyof Config.Chart - const channelConfig = this._getChannelCopy(config[key] as Data.SeriesList) - if (channelConfig !== null) { - newChannel.push(channelConfig) - } - } - channel.set = newChannel.length > 0 ? newChannel.flat() : null - } - } - } + private _fillChannels(presetConfig: Config.Chart, config: Config.Chart | undefined): void { + if (!config) return + const channels = presetConfig.channels + for (const key in channels) { + const channelName = key as keyof Config.Channels + const channel = channels[channelName] + if (!this._isChannel(channel)) { + continue + } else if (typeof channel.set === 'string') { + const key = channel.set as keyof Config.Chart + channel.set = this._getChannelCopy(config[key] as Data.SeriesList) + } else if (Array.isArray(channel.set)) { + const newChannel = [] + for (let i = 0; i < channel.set.length; i++) { + const key = channel.set[i]! as keyof Config.Chart + const channelConfig = this._getChannelCopy(config[key] as Data.SeriesList) + if (channelConfig !== null) { + newChannel.push(channelConfig) + } + } + channel.set = newChannel.length > 0 ? newChannel.flat() : null + } + } + } - private _isChannel( - channel: Config.Channel | null | undefined | Data.SeriesList - ): channel is Config.Channel { - return typeof channel === 'object' && channel !== null && 'set' in channel - } + private _isChannel( + channel: Config.Channel | null | undefined | Data.SeriesList + ): channel is Config.Channel { + return typeof channel === 'object' && channel !== null && 'set' in channel + } - private _setupUserParams(base: Config.Chart, config: Config.Chart): void { - ;['legend', 'title', 'subtitle', 'caption', 'reverse', 'sort'].forEach((key) => { - const prop = key as keyof Config.Chart - if (config[prop] !== undefined) { - base[prop] = config[prop] as undefined - } - }) - } + private _setupUserParams(base: Config.Chart, config: Config.Chart): void { + ;['legend', 'title', 'subtitle', 'caption', 'reverse', 'sort'].forEach((key) => { + const prop = key as keyof Config.Chart + if (config[prop] !== undefined) { + base[prop] = config[prop] as undefined + } + }) + } - private _buildPresetConfig(presetName: PresetNames, config: Config.Chart): Config.Chart { - const presetConfig = this._createPresetConfig(presetName) - this._fillChannels(presetConfig, config) - this._setupUserParams(presetConfig, config) - return presetConfig - } + private _buildPresetConfig(presetName: PresetNames, config: Config.Chart): Config.Chart { + const presetConfig = this._createPresetConfig(presetName) + this._fillChannels(presetConfig, config) + this._setupUserParams(presetConfig, config) + return presetConfig + } } diff --git a/src/apps/weblib/ts-api/plugins/shorthands-augmentation.ts b/src/apps/weblib/ts-api/plugins/shorthands-augmentation.ts index 4af53adeb..946c5db76 100644 --- a/src/apps/weblib/ts-api/plugins/shorthands-augmentation.ts +++ b/src/apps/weblib/ts-api/plugins/shorthands-augmentation.ts @@ -3,7 +3,7 @@ import { AnimCompleting } from '../animcompleting' import { AnyAnimOptions, AnyAnimTarget } from './shorthands' declare module '../vizzu' { - interface Vizzu { - animate(target: AnyAnimTarget, options?: AnyAnimOptions): AnimCompleting - } + interface Vizzu { + animate(target: AnyAnimTarget, options?: AnyAnimOptions): AnimCompleting + } } diff --git a/src/apps/weblib/ts-api/plugins/shorthands.ts b/src/apps/weblib/ts-api/plugins/shorthands.ts index a4745da22..1f4e04f91 100644 --- a/src/apps/weblib/ts-api/plugins/shorthands.ts +++ b/src/apps/weblib/ts-api/plugins/shorthands.ts @@ -12,33 +12,33 @@ import { CAnimation } from '../module/canimctrl.js' export type AnySeriesList = Data.SeriesList | Data.SeriesDescriptor | null export type LazyChannel = Config.Channel & { - set?: AnySeriesList - attach?: AnySeriesList - detach?: AnySeriesList + set?: AnySeriesList + attach?: AnySeriesList + detach?: AnySeriesList } export type AnyChannel = LazyChannel | AnySeriesList export type LazyChannels = { - [ChannelName in keyof Config.Channels]: AnyChannel + [ChannelName in keyof Config.Channels]: AnyChannel } export type LazyChart = Omit<Config.Chart, 'channels'> & { - channels?: LazyChannels + channels?: LazyChannels } export type AnyChart = LazyChart & LazyChannels export type LazyTarget = Anim.Target & { - config?: AnyChart + config?: AnyChart } export type AnyTarget = LazyTarget | AnyChart | Snapshot export type AnyOptions = Anim.Options | Anim.Duration | null export interface LazyKeyframe { - target: AnyTarget - options?: AnyOptions + target: AnyTarget + options?: AnyOptions } export type AnyKeyframe = LazyKeyframe | AnyTarget @@ -47,190 +47,190 @@ export type AnyAnimTarget = LazyKeyframes | AnyTarget | CAnimation export type AnyAnimOptions = Anim.ControlOptions & AnyOptions interface LazyPrepareAnimationContext { - target: AnyAnimTarget - options?: AnyAnimOptions + target: AnyAnimTarget + options?: AnyAnimOptions } type ChannelName = keyof Config.Channels export class Shorthands implements Plugin { - private _chart?: Vizzu - private _channelNames?: string[] - - meta = { - name: 'shorthands' - } - - get hooks(): PluginHooks { - const hooks = { - prepareAnimation: Object.assign( - (ctx: PrepareAnimationContext, next: () => void) => { - this._normalize(ctx) - next() - }, - { priority: 1 } - ) - } - return hooks - } - - register(chart: Vizzu): void { - this._chart = chart - this._channelNames = Object.keys(this._chart.config.channels!) - } - - private _normalize(ctx: LazyPrepareAnimationContext): void { - if (!(ctx.target instanceof CAnimation)) { - const target = this._normalizeKeyframes(ctx.target, ctx.options) - if (ctx.options !== undefined && !this._isKeyframes(ctx.target)) delete ctx.options - ctx.target = target - } - const options = this._normalizeOptions(ctx.options) - if (options) ctx.options = options - } - - private _normalizeKeyframes( - target: LazyKeyframes | AnyTarget, - options?: AnyAnimOptions - ): Anim.Keyframes { - const keyframes = this._isKeyframes(target) ? target : [this._toKeyframe(target, options)] - - return keyframes - .map((keyframe) => (this._isKeyframe(keyframe) ? keyframe : { target: keyframe })) - .map((keyframe) => this._normalizeKeyframe(keyframe)) - } - - private _toKeyframe(target: AnyTarget, options?: AnyOptions): LazyKeyframe { - return Object.assign({ target }, options !== undefined ? { options } : {}) - } - - private _isKeyframes(value: AnyAnimTarget): value is LazyKeyframes { - return Array.isArray(value) - } - - private _isKeyframe(value: LazyKeyframe | AnyTarget): value is LazyKeyframe { - return 'target' in value - } - - private _normalizeKeyframe(keyframe: LazyKeyframe): Anim.Keyframe { - const options = this._normalizeOptions(keyframe.options) - return Object.assign( - { - target: this._normalizeTarget(keyframe.target) - }, - options ? { options } : {} - ) - } - - private _normalizeTarget(target: AnyTarget): Anim.Target | Snapshot { - if (target && !(target instanceof Snapshot)) { - if (this._isConfig(target)) { - return { config: this._normalizeConfig(target) } - } - - if (target.config !== undefined) { - target.config = this._normalizeConfig(target.config) - } - - if (target.style !== undefined) { - target.style = this._normalizeStyle(target.style) - } - } - return target - } - - private _normalizeStyle(style: Styles.Chart | null | undefined): Styles.Chart { - if (style === null) { - return { '': null } as Styles.Chart - } - if (style === undefined) { - return {} - } - return style - } - - private _isTarget(value: LazyTarget | AnyChart): value is LazyTarget { - return 'data' in value || 'style' in value || 'config' in value - } - - private _isConfig(value: LazyTarget | AnyChart): value is LazyChart { - return !this._isTarget(value) - } - - private _normalizeConfig(config: AnyChart): Config.Chart { - const { channels, ...rest } = this._normalizeConfigChannel(config) - return { - ...rest, - ...(channels ? { channels: this._normalizeChannels(channels) } : {}) - } - } - - private _normalizeConfigChannel(config: AnyChart): LazyChart { - if (config !== null && typeof config === 'object') { - config.channels = config.channels || ({} as LazyChannels) - for (const prop in config) { - const key = prop as keyof AnyChart - if (this._isChannelName(key)) { - const channel = config[key] - if (channel !== undefined) { - config.channels[key] = channel - } - delete config[key] - } - } - } - return config - } - - private _isChannelName(value: string): value is ChannelName { - return this._channelNames!.includes(value) - } - - private _normalizeChannels(channels: LazyChannels): Config.Channels { - const res = {} as Config.Channels - for (const key in channels) { - const ch = key as ChannelName - const channel = channels[ch] - if (channel !== undefined) res[ch] = this._normalizeChannel(channel) - } - return res - } - - private _normalizeChannel(channel: AnyChannel): Config.Channel { - if (typeof channel === 'string') { - channel = [channel] - } - - if (channel === null || Array.isArray(channel)) { - channel = { set: channel } - } - - if (typeof channel?.attach === 'string') { - channel.attach = [channel.attach] - } - - if (typeof channel?.detach === 'string') { - channel.detach = [channel.detach] - } - - if (typeof channel?.set === 'string') { - channel.set = [channel.set] - } - - if (Array.isArray(channel?.set) && channel?.set.length === 0) { - channel.set = null - } - return channel - } - - private _normalizeOptions(options: AnyOptions | undefined): Anim.Options | undefined { - if (typeof options !== 'undefined') { - if (options === null) { - options = { duration: 0 } - } else if (typeof options === 'string' || typeof options === 'number') { - options = { duration: options } - } - } - return options - } + private _chart?: Vizzu + private _channelNames?: string[] + + meta = { + name: 'shorthands' + } + + get hooks(): PluginHooks { + const hooks = { + prepareAnimation: Object.assign( + (ctx: PrepareAnimationContext, next: () => void) => { + this._normalize(ctx) + next() + }, + { priority: 1 } + ) + } + return hooks + } + + register(chart: Vizzu): void { + this._chart = chart + this._channelNames = Object.keys(this._chart.config.channels!) + } + + private _normalize(ctx: LazyPrepareAnimationContext): void { + if (!(ctx.target instanceof CAnimation)) { + const target = this._normalizeKeyframes(ctx.target, ctx.options) + if (ctx.options !== undefined && !this._isKeyframes(ctx.target)) delete ctx.options + ctx.target = target + } + const options = this._normalizeOptions(ctx.options) + if (options) ctx.options = options + } + + private _normalizeKeyframes( + target: LazyKeyframes | AnyTarget, + options?: AnyAnimOptions + ): Anim.Keyframes { + const keyframes = this._isKeyframes(target) ? target : [this._toKeyframe(target, options)] + + return keyframes + .map((keyframe) => (this._isKeyframe(keyframe) ? keyframe : { target: keyframe })) + .map((keyframe) => this._normalizeKeyframe(keyframe)) + } + + private _toKeyframe(target: AnyTarget, options?: AnyOptions): LazyKeyframe { + return Object.assign({ target }, options !== undefined ? { options } : {}) + } + + private _isKeyframes(value: AnyAnimTarget): value is LazyKeyframes { + return Array.isArray(value) + } + + private _isKeyframe(value: LazyKeyframe | AnyTarget): value is LazyKeyframe { + return 'target' in value + } + + private _normalizeKeyframe(keyframe: LazyKeyframe): Anim.Keyframe { + const options = this._normalizeOptions(keyframe.options) + return Object.assign( + { + target: this._normalizeTarget(keyframe.target) + }, + options ? { options } : {} + ) + } + + private _normalizeTarget(target: AnyTarget): Anim.Target | Snapshot { + if (target && !(target instanceof Snapshot)) { + if (this._isConfig(target)) { + return { config: this._normalizeConfig(target) } + } + + if (target.config !== undefined) { + target.config = this._normalizeConfig(target.config) + } + + if (target.style !== undefined) { + target.style = this._normalizeStyle(target.style) + } + } + return target + } + + private _normalizeStyle(style: Styles.Chart | null | undefined): Styles.Chart { + if (style === null) { + return { '': null } as Styles.Chart + } + if (style === undefined) { + return {} + } + return style + } + + private _isTarget(value: LazyTarget | AnyChart): value is LazyTarget { + return 'data' in value || 'style' in value || 'config' in value + } + + private _isConfig(value: LazyTarget | AnyChart): value is LazyChart { + return !this._isTarget(value) + } + + private _normalizeConfig(config: AnyChart): Config.Chart { + const { channels, ...rest } = this._normalizeConfigChannel(config) + return { + ...rest, + ...(channels ? { channels: this._normalizeChannels(channels) } : {}) + } + } + + private _normalizeConfigChannel(config: AnyChart): LazyChart { + if (config !== null && typeof config === 'object') { + config.channels = config.channels || ({} as LazyChannels) + for (const prop in config) { + const key = prop as keyof AnyChart + if (this._isChannelName(key)) { + const channel = config[key] + if (channel !== undefined) { + config.channels[key] = channel + } + delete config[key] + } + } + } + return config + } + + private _isChannelName(value: string): value is ChannelName { + return this._channelNames!.includes(value) + } + + private _normalizeChannels(channels: LazyChannels): Config.Channels { + const res = {} as Config.Channels + for (const key in channels) { + const ch = key as ChannelName + const channel = channels[ch] + if (channel !== undefined) res[ch] = this._normalizeChannel(channel) + } + return res + } + + private _normalizeChannel(channel: AnyChannel): Config.Channel { + if (typeof channel === 'string') { + channel = [channel] + } + + if (channel === null || Array.isArray(channel)) { + channel = { set: channel } + } + + if (typeof channel?.attach === 'string') { + channel.attach = [channel.attach] + } + + if (typeof channel?.detach === 'string') { + channel.detach = [channel.detach] + } + + if (typeof channel?.set === 'string') { + channel.set = [channel.set] + } + + if (Array.isArray(channel?.set) && channel?.set.length === 0) { + channel.set = null + } + return channel + } + + private _normalizeOptions(options: AnyOptions | undefined): Anim.Options | undefined { + if (typeof options !== 'undefined') { + if (options === null) { + options = { duration: 0 } + } else if (typeof options === 'string' || typeof options === 'number') { + options = { duration: options } + } + } + return options + } } diff --git a/src/apps/weblib/ts-api/plugins/tooltip.ts b/src/apps/weblib/ts-api/plugins/tooltip.ts index 616ba1456..8e10b4f52 100644 --- a/src/apps/weblib/ts-api/plugins/tooltip.ts +++ b/src/apps/weblib/ts-api/plugins/tooltip.ts @@ -4,119 +4,121 @@ import { Plugin } from '../plugins.js' import Vizzu from '../vizzu.js' export class Tooltip implements Plugin { - private _vizzu?: Vizzu - private _id = 0 - private _animating = false - private _lastMarkerId: number | null = null - private _overedMarkerId: number | null = null - private _lastMove = new Date().getTime() + private _vizzu?: Vizzu + private _id = 0 + private _animating = false + private _lastMarkerId: number | null = null + private _overedMarkerId: number | null = null + private _lastMove = new Date().getTime() - meta = { - name: 'tooltip', - depends: ['pointerEvents'] - } + meta = { + name: 'tooltip', + depends: ['pointerEvents'] + } - listeners = { - pointermove: this._mousemove.bind(this), - pointerleave: this._mouseleave.bind(this) - } + listeners = { + pointermove: this._mousemove.bind(this), + pointerleave: this._mouseleave.bind(this) + } - register(vizzu: Vizzu): void { - this._vizzu = vizzu - } + register(vizzu: Vizzu): void { + this._vizzu = vizzu + } - enable(enabled: boolean): void { - if (!enabled && this._lastMarkerId !== null) { - this._id++ - setTimeout(() => { - this._out(this._id) - }, 200) - } - } + enable(enabled: boolean): void { + if (!enabled && this._lastMarkerId !== null) { + this._id++ + setTimeout(() => { + this._out(this._id) + }, 200) + } + } - _mousemove(param: PointerEvent): void { - this._lastMove = new Date().getTime() - const actMarkerId = this._getMarkerId(param.target) - if (actMarkerId !== this._overedMarkerId) { - this._overedMarkerId = actMarkerId - this._mouseon(param) - } - } + _mousemove(param: PointerEvent): void { + this._lastMove = new Date().getTime() + const actMarkerId = this._getMarkerId(param.target) + if (actMarkerId !== this._overedMarkerId) { + this._overedMarkerId = actMarkerId + this._mouseon(param) + } + } - _mouseleave(param: PointerEvent): void { - this._lastMove = new Date().getTime() - this._overedMarkerId = null - this._mouseon(param) - } + _mouseleave(param: PointerEvent): void { + this._lastMove = new Date().getTime() + this._overedMarkerId = null + this._mouseon(param) + } - _mouseon(param: PointerEvent): void { - this._id++ - const id = this._id - if (param.target && this._isMarker(param.target)) { - const markerId = param.target.index - setTimeout(() => { - this._in(id, markerId) - }, 0) - } else { - setTimeout(() => { - this._out(id) - }, 200) - } - } + _mouseon(param: PointerEvent): void { + this._id++ + const id = this._id + if (param.target && this._isMarker(param.target)) { + const markerId = param.target.index + setTimeout(() => { + this._in(id, markerId) + }, 0) + } else { + setTimeout(() => { + this._out(id) + }, 200) + } + } - _getMarkerId(target: Element | null): number | null { - if (target && this._isMarker(target)) { - return target.index - } else { - return null - } - } + _getMarkerId(target: Element | null): number | null { + if (target && this._isMarker(target)) { + return target.index + } else { + return null + } + } - _isMarker(target: Element): target is Marker { - return target.tagName === 'plot-marker' - } + _isMarker(target: Element): target is Marker { + return target.tagName === 'plot-marker' + } - _in(id: number, markerId: number): void { - if (this._id === id) { - if (!this._animating) { - this._lastMarkerId = markerId - this._animating = true - this._vizzu - ?.animate([ - { - target: { config: { tooltip: markerId } }, - options: { - duration: this._lastMarkerId ? '100ms' : '250ms' - } - } - ]) - .then(() => { - this._animating = false - }) - } else { - setTimeout(() => { - this._in(id, markerId) - }, 100) - } - } - } + _in(id: number, markerId: number): void { + if (this._id === id) { + if (!this._animating) { + this._lastMarkerId = markerId + this._animating = true + this._vizzu + ?.animate([ + { + target: { config: { tooltip: markerId } }, + options: { + duration: this._lastMarkerId ? '100ms' : '250ms' + } + } + ]) + .then(() => { + this._animating = false + }) + } else { + setTimeout(() => { + this._in(id, markerId) + }, 100) + } + } + } - _out(id: number): void { - if (this._id === id) { - const ellapsed = new Date().getTime() - this._lastMove - if (!this._animating && ellapsed > 200) { - this._lastMarkerId = null - this._animating = true - this._vizzu - ?.animate([{ target: { config: { tooltip: null } }, options: { duration: '250ms' } }]) - .then(() => { - this._animating = false - }) - } else { - setTimeout(() => { - this._out(id) - }, 200 - ellapsed) - } - } - } + _out(id: number): void { + if (this._id === id) { + const ellapsed = new Date().getTime() - this._lastMove + if (!this._animating && ellapsed > 200) { + this._lastMarkerId = null + this._animating = true + this._vizzu + ?.animate([ + { target: { config: { tooltip: null } }, options: { duration: '250ms' } } + ]) + .then(() => { + this._animating = false + }) + } else { + setTimeout(() => { + this._out(id) + }, 200 - ellapsed) + } + } + } } diff --git a/src/apps/weblib/ts-api/plugins/unpivot.ts b/src/apps/weblib/ts-api/plugins/unpivot.ts index a94d81039..c201bd00e 100644 --- a/src/apps/weblib/ts-api/plugins/unpivot.ts +++ b/src/apps/weblib/ts-api/plugins/unpivot.ts @@ -5,141 +5,141 @@ type CubeRow = Data.Values | CubeRow[] /** Defines a data series of the data cube, and contains a particular variable's values in the data cube and meta info about that variable. */ interface CubeData extends Data.SeriesMetaInfo { - /** A nested array that contains the values of the data series. Nesting + /** A nested array that contains the values of the data series. Nesting level should match the number of data cube dimensions. */ - values: CubeRow + values: CubeRow } /** N dimensional data cude */ export interface DataCube extends Data.Filter { - /** The list of the dimensions of the data cube. */ - dimensions: Data.Series[] - /** The list of measures of the data cube. */ - measures: CubeData[] + /** The list of the dimensions of the data cube. */ + dimensions: Data.Series[] + /** The list of measures of the data cube. */ + measures: CubeData[] } const assert = (condition: boolean, message: string): void => { - if (!condition) { - throw new Error('Assert failed: ' + message) - } + if (!condition) { + throw new Error('Assert failed: ' + message) + } } const assertArray = (data: DataCube, array: unknown[], index: number): void => { - assert(Array.isArray(array), 'array is not a list') - try { - if (array.length !== data.dimensions[index]!.values!.length) { - throw new Error('Assert failed') - } - } catch (err) { - assert(false, 'dimensions are not the same') - } - array.forEach((item) => { - if (Array.isArray(item)) { - assertArray(data, item, index - 1) - } - }) + assert(Array.isArray(array), 'array is not a list') + try { + if (array.length !== data.dimensions[index]!.values!.length) { + throw new Error('Assert failed') + } + } catch (err) { + assert(false, 'dimensions are not the same') + } + array.forEach((item) => { + if (Array.isArray(item)) { + assertArray(data, item, index - 1) + } + }) } export default class UnPivot { - static isPivot(data: Data.Set | DataCube | undefined): boolean { - return ( - data !== undefined && - (('dimensions' in data && data.dimensions !== undefined) || - ('measures' in data && data.measures !== undefined)) - ) - } + static isPivot(data: Data.Set | DataCube | undefined): boolean { + return ( + data !== undefined && + (('dimensions' in data && data.dimensions !== undefined) || + ('measures' in data && data.measures !== undefined)) + ) + } - static convert(data: DataCube): Data.TableBySeries { - assert( - typeof data === 'object' && data !== null && !Array.isArray(data), - 'data is not an object' - ) - assert('dimensions' in data, 'data.dimensions is requreid') - assert('measures' in data, 'data.measures is requreid') + static convert(data: DataCube): Data.TableBySeries { + assert( + typeof data === 'object' && data !== null && !Array.isArray(data), + 'data is not an object' + ) + assert('dimensions' in data, 'data.dimensions is requreid') + assert('measures' in data, 'data.measures is requreid') - const convertedData: Data.TableBySeries = (({ - // eslint-disable-next-line @typescript-eslint/no-unused-vars - dimensions, - // eslint-disable-next-line @typescript-eslint/no-unused-vars - measures, - ...o - }: DataCube): Data.TableBySeries => Object.assign(o, { series: [] }))(data) + const convertedData: Data.TableBySeries = (({ + // eslint-disable-next-line @typescript-eslint/no-unused-vars + dimensions, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + measures, + ...o + }: DataCube): Data.TableBySeries => Object.assign(o, { series: [] }))(data) - let dimensionsProduct = 1 - assert(Array.isArray(data.dimensions), 'data.dimensions is not a list') - for (let i = 0; i < data.dimensions.length; i++) { - const item = data.dimensions[i]! - assert( - typeof item === 'object' && item !== null && !Array.isArray(item), - 'data.dimensions.item is not an object' - ) - assert('name' in item, 'data.dimensions.item.name is requreid') - assert( - typeof item.type === 'undefined' || item.type === 'dimension', - 'data.dimensions.item.type is invalid' - ) - assert('values' in item, 'data.dimensions.item.values is requreid') - assert(Array.isArray(item.values), 'data.dimensions.item.values is not a list') - assert(item.values!.length !== 0, 'data.dimensions.item.values length is zero') - dimensionsProduct *= item.values!.length - } + let dimensionsProduct = 1 + assert(Array.isArray(data.dimensions), 'data.dimensions is not a list') + for (let i = 0; i < data.dimensions.length; i++) { + const item = data.dimensions[i]! + assert( + typeof item === 'object' && item !== null && !Array.isArray(item), + 'data.dimensions.item is not an object' + ) + assert('name' in item, 'data.dimensions.item.name is requreid') + assert( + typeof item.type === 'undefined' || item.type === 'dimension', + 'data.dimensions.item.type is invalid' + ) + assert('values' in item, 'data.dimensions.item.values is requreid') + assert(Array.isArray(item.values), 'data.dimensions.item.values is not a list') + assert(item.values!.length !== 0, 'data.dimensions.item.values length is zero') + dimensionsProduct *= item.values!.length + } - let dimensionsProductProcessed = 1 - for (let i = 0; i < data.dimensions.length; i++) { - const item = data.dimensions[i]! - let values = [] as string[] - const valuesItem = [] as string[] - item.values!.forEach((value) => { - for (let b = 1; b <= dimensionsProductProcessed; b++) { - valuesItem.push(value as string) - } - }) - dimensionsProductProcessed *= item.values!.length - for (let a = 1; a <= dimensionsProduct / dimensionsProductProcessed; a++) { - values = values.concat(valuesItem) - } + let dimensionsProductProcessed = 1 + for (let i = 0; i < data.dimensions.length; i++) { + const item = data.dimensions[i]! + let values = [] as string[] + const valuesItem = [] as string[] + item.values!.forEach((value) => { + for (let b = 1; b <= dimensionsProductProcessed; b++) { + valuesItem.push(value as string) + } + }) + dimensionsProductProcessed *= item.values!.length + for (let a = 1; a <= dimensionsProduct / dimensionsProductProcessed; a++) { + values = values.concat(valuesItem) + } - const seriesItem = { - name: item.name, - type: item.type || 'dimension', - values - } - convertedData.series.push(seriesItem) - } + const seriesItem = { + name: item.name, + type: item.type || 'dimension', + values + } + convertedData.series.push(seriesItem) + } - assert( - typeof data.measures === 'object' && data.measures !== null, - 'data.measures is not a list or an object' - ) - if (!Array.isArray(data.measures)) { - data.measures = [data.measures] - } - for (let i = 0; i < data.measures.length; i++) { - const item = data.measures[i]! - assert( - typeof item === 'object' && item !== null && !Array.isArray(item), - 'data.measures.item is not an object' - ) - assert('name' in item, 'data.measures.item.name is requreid') - assert('values' in item, 'data.measures.item.values is requreid') - assert(Array.isArray(item.values), 'data.measures.item.values is not a list') - assertArray(data, item.values, data.dimensions.length - 1) - const seriesItem: { - name: string - type?: 'dimension' | 'measure' | undefined - values: unknown[] - } = { - name: item.name, - type: item.type, - values: (item.values as unknown[]).flat(Infinity) - } - if (typeof seriesItem.type === 'undefined') { - delete seriesItem.type - } - assert(seriesItem.values.length === dimensionsProduct, 'dimensions are not the same') - convertedData.series.push(seriesItem as Data.Series) - } + assert( + typeof data.measures === 'object' && data.measures !== null, + 'data.measures is not a list or an object' + ) + if (!Array.isArray(data.measures)) { + data.measures = [data.measures] + } + for (let i = 0; i < data.measures.length; i++) { + const item = data.measures[i]! + assert( + typeof item === 'object' && item !== null && !Array.isArray(item), + 'data.measures.item is not an object' + ) + assert('name' in item, 'data.measures.item.name is requreid') + assert('values' in item, 'data.measures.item.values is requreid') + assert(Array.isArray(item.values), 'data.measures.item.values is not a list') + assertArray(data, item.values, data.dimensions.length - 1) + const seriesItem: { + name: string + type?: 'dimension' | 'measure' | undefined + values: unknown[] + } = { + name: item.name, + type: item.type, + values: (item.values as unknown[]).flat(Infinity) + } + if (typeof seriesItem.type === 'undefined') { + delete seriesItem.type + } + assert(seriesItem.values.length === dimensionsProduct, 'dimensions are not the same') + convertedData.series.push(seriesItem as Data.Series) + } - return convertedData - } + return convertedData + } } diff --git a/src/apps/weblib/ts-api/render.ts b/src/apps/weblib/ts-api/render.ts index aafda3b86..138e182a6 100644 --- a/src/apps/weblib/ts-api/render.ts +++ b/src/apps/weblib/ts-api/render.ts @@ -7,229 +7,229 @@ import { CChart } from './module/cchart.js' import { HtmlCanvas } from './htmlcanvas.js' export interface RenderingApi extends PluginApi { - /** Re-renders the chart. */ - update(): void + /** Re-renders the chart. */ + update(): void } export class Render implements Plugin, Canvas { - private _canvas: HtmlCanvas - private _ccanvas: CCanvas - private _enabled: boolean - private _cchart: CChart - private _polygonInProgress: boolean - private _currentLineWidth: number = 1 - - meta = { name: 'rendering' } - - get api(): RenderingApi { - return { - update: (): void => { - this.updateFrame(true) - } - } - } - - enable(enabled: boolean): void { - this._enabled = enabled - } - - constructor(module: Module, cchart: CChart, canvas: HtmlCanvas) { - this._canvas = canvas - this._canvas.onchange = (): void => { - this.updateFrame(true) - } - this._enabled = true - this._polygonInProgress = false - this._cchart = cchart - this._ccanvas = module.createCanvas() - module.registerRenderer(this._ccanvas, this) - } - - updateFrame(force: boolean = false): void { - const size = this._canvas.calcSize() - if (size.x >= 1 && size.y >= 1) { - const renderControl = !this._enabled ? 2 : force ? 1 : 0 - this._cchart.update(this._ccanvas, size.x, size.y, renderControl) - } - } - - setCursor(name: CString): void { - this._canvas.element.style.cursor = this._ccanvas.getString(name) - } - - frameBegin(): void { - this._currentLineWidth = 1 - this._canvas.frameBegin() - } - - frameEnd(): void { - this._canvas.frameEnd() - } - - setClipRect(x: number, y: number, sizex: number, sizey: number): void { - const dc = this._canvas.context - dc.beginPath() - dc.rect(x, y, sizex, sizey) - dc.clip() - } - - setClipCircle(x: number, y: number, radius: number): void { - const dc = this._canvas.context - dc.beginPath() - dc.arc(x, y, radius, 0, 6.28318530718) - dc.clip() - } - - setClipPolygon(): void { - const dc = this._canvas.context - dc.closePath() - dc.clip() - this._polygonInProgress = false - } - - setBrushColor(r: number, g: number, b: number, a: number): void { - const dc = this._canvas.context - dc.fillStyle = 'rgba(' + r * 255 + ',' + g * 255 + ',' + b * 255 + ',' + a + ')' - } - - setLineColor(r: number, g: number, b: number, a: number): void { - const dc = this._canvas.context - dc.strokeStyle = 'rgba(' + r * 255 + ',' + g * 255 + ',' + b * 255 + ',' + a + ')' - } - - setLineWidth(width: number): void { - const dc = this._canvas.context - dc.lineWidth = width - this._currentLineWidth = width - } - - setFont(font: CString): void { - const dc = this._canvas.context - dc.font = this._ccanvas.getString(font) - } - - beginDropShadow(): void {} - - setDropShadowBlur(radius: number): void { - const dc = this._canvas.context - dc.shadowBlur = radius - } - - setDropShadowColor(r: number, g: number, b: number, a: number): void { - const dc = this._canvas.context - dc.shadowColor = 'rgba(' + r * 255 + ',' + g * 255 + ',' + b * 255 + ',' + a + ')' - } - - setDropShadowOffset(x: number, y: number): void { - const dc = this._canvas.context - dc.shadowOffsetX = x - dc.shadowOffsetY = y - } - - endDropShadow(): void { - const dc = this._canvas.context - dc.shadowBlur = 0 - dc.shadowOffsetX = 0 - dc.shadowOffsetY = 0 - dc.shadowColor = 'rgba(0, 0, 0, 0)' - } - - beginPolygon(): void { - const dc = this._canvas.context - dc.beginPath() - } - - addPoint(x: number, y: number): void { - const dc = this._canvas.context - if (!this._polygonInProgress) dc.moveTo(x, y) - else dc.lineTo(x, y) - this._polygonInProgress = true - } - - addBezier(c0x: number, c0y: number, c1x: number, c1y: number, x: number, y: number): void { - const dc = this._canvas.context - dc.bezierCurveTo(c0x, c0y, c1x, c1y, x, y) - } - - endPolygon(): void { - const dc = this._canvas.context - dc.closePath() - dc.fill() - if (this._currentLineWidth !== 0) dc.stroke() - this._polygonInProgress = false - } - - rectangle(x: number, y: number, sizex: number, sizey: number): void { - const dc = this._canvas.context - dc.beginPath() - dc.rect(x, y, sizex, sizey) - dc.fill() - if (this._currentLineWidth !== 0) dc.stroke() - } - - circle(x: number, y: number, radius: number): void { - const dc = this._canvas.context - dc.beginPath() - dc.arc(x, y, radius, 0, 6.28318530718) - dc.fill() - if (this._currentLineWidth !== 0) dc.stroke() - } - - line(x1: number, y1: number, x2: number, y2: number): void { - const dc = this._canvas.context - dc.beginPath() - dc.moveTo(x1, y1) - dc.lineTo(x2, y2) - if (this._currentLineWidth !== 0) dc.stroke() - } - - textBoundary(text: CString, sizeX: CPointer, sizeY: CPointer): void { - const dc = this._canvas.context - let metrics = dc.measureText(this._ccanvas.getString(text)) - const width = metrics.width - metrics = dc.measureText('Op') - const height = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent - this._ccanvas.setNumber(sizeX, width) - this._ccanvas.setNumber(sizeY, height) - } - - text(x: number, y: number, sizex: number, sizey: number, text: CString): void { - const dc = this._canvas.context - dc.textAlign = 'left' - dc.textBaseline = 'top' - x = x + (sizex < 0 ? -sizex : 0) - y = y + (sizey < 0 ? -sizey : 0) - dc.fillText(this._ccanvas.getString(text), x, y) - } - - setBrushGradient( - x1: number, - y1: number, - x2: number, - y2: number, - stopCount: number, - stopsPtr: CColorGradientPtr - ): void { - const dc = this._canvas.context - const grd = dc.createLinearGradient(x1, y1, x2, y2) - this._ccanvas - .getColorGradient(stopsPtr, stopCount) - .stops.forEach((g) => grd.addColorStop(g.offset, g.color)) - dc.fillStyle = grd - } - - transform(a: number, b: number, c: number, d: number, e: number, f: number): void { - const dc = this._canvas.context - dc.transform(a, b, c, d, e, f) - } - - save(): void { - const dc = this._canvas.context - dc.save() - } - - restore(): void { - const dc = this._canvas.context - dc.restore() - } + private _canvas: HtmlCanvas + private _ccanvas: CCanvas + private _enabled: boolean + private _cchart: CChart + private _polygonInProgress: boolean + private _currentLineWidth: number = 1 + + meta = { name: 'rendering' } + + get api(): RenderingApi { + return { + update: (): void => { + this.updateFrame(true) + } + } + } + + enable(enabled: boolean): void { + this._enabled = enabled + } + + constructor(module: Module, cchart: CChart, canvas: HtmlCanvas) { + this._canvas = canvas + this._canvas.onchange = (): void => { + this.updateFrame(true) + } + this._enabled = true + this._polygonInProgress = false + this._cchart = cchart + this._ccanvas = module.createCanvas() + module.registerRenderer(this._ccanvas, this) + } + + updateFrame(force: boolean = false): void { + const size = this._canvas.calcSize() + if (size.x >= 1 && size.y >= 1) { + const renderControl = !this._enabled ? 2 : force ? 1 : 0 + this._cchart.update(this._ccanvas, size.x, size.y, renderControl) + } + } + + setCursor(name: CString): void { + this._canvas.element.style.cursor = this._ccanvas.getString(name) + } + + frameBegin(): void { + this._currentLineWidth = 1 + this._canvas.frameBegin() + } + + frameEnd(): void { + this._canvas.frameEnd() + } + + setClipRect(x: number, y: number, sizex: number, sizey: number): void { + const dc = this._canvas.context + dc.beginPath() + dc.rect(x, y, sizex, sizey) + dc.clip() + } + + setClipCircle(x: number, y: number, radius: number): void { + const dc = this._canvas.context + dc.beginPath() + dc.arc(x, y, radius, 0, 6.28318530718) + dc.clip() + } + + setClipPolygon(): void { + const dc = this._canvas.context + dc.closePath() + dc.clip() + this._polygonInProgress = false + } + + setBrushColor(r: number, g: number, b: number, a: number): void { + const dc = this._canvas.context + dc.fillStyle = 'rgba(' + r * 255 + ',' + g * 255 + ',' + b * 255 + ',' + a + ')' + } + + setLineColor(r: number, g: number, b: number, a: number): void { + const dc = this._canvas.context + dc.strokeStyle = 'rgba(' + r * 255 + ',' + g * 255 + ',' + b * 255 + ',' + a + ')' + } + + setLineWidth(width: number): void { + const dc = this._canvas.context + dc.lineWidth = width + this._currentLineWidth = width + } + + setFont(font: CString): void { + const dc = this._canvas.context + dc.font = this._ccanvas.getString(font) + } + + beginDropShadow(): void {} + + setDropShadowBlur(radius: number): void { + const dc = this._canvas.context + dc.shadowBlur = radius + } + + setDropShadowColor(r: number, g: number, b: number, a: number): void { + const dc = this._canvas.context + dc.shadowColor = 'rgba(' + r * 255 + ',' + g * 255 + ',' + b * 255 + ',' + a + ')' + } + + setDropShadowOffset(x: number, y: number): void { + const dc = this._canvas.context + dc.shadowOffsetX = x + dc.shadowOffsetY = y + } + + endDropShadow(): void { + const dc = this._canvas.context + dc.shadowBlur = 0 + dc.shadowOffsetX = 0 + dc.shadowOffsetY = 0 + dc.shadowColor = 'rgba(0, 0, 0, 0)' + } + + beginPolygon(): void { + const dc = this._canvas.context + dc.beginPath() + } + + addPoint(x: number, y: number): void { + const dc = this._canvas.context + if (!this._polygonInProgress) dc.moveTo(x, y) + else dc.lineTo(x, y) + this._polygonInProgress = true + } + + addBezier(c0x: number, c0y: number, c1x: number, c1y: number, x: number, y: number): void { + const dc = this._canvas.context + dc.bezierCurveTo(c0x, c0y, c1x, c1y, x, y) + } + + endPolygon(): void { + const dc = this._canvas.context + dc.closePath() + dc.fill() + if (this._currentLineWidth !== 0) dc.stroke() + this._polygonInProgress = false + } + + rectangle(x: number, y: number, sizex: number, sizey: number): void { + const dc = this._canvas.context + dc.beginPath() + dc.rect(x, y, sizex, sizey) + dc.fill() + if (this._currentLineWidth !== 0) dc.stroke() + } + + circle(x: number, y: number, radius: number): void { + const dc = this._canvas.context + dc.beginPath() + dc.arc(x, y, radius, 0, 6.28318530718) + dc.fill() + if (this._currentLineWidth !== 0) dc.stroke() + } + + line(x1: number, y1: number, x2: number, y2: number): void { + const dc = this._canvas.context + dc.beginPath() + dc.moveTo(x1, y1) + dc.lineTo(x2, y2) + if (this._currentLineWidth !== 0) dc.stroke() + } + + textBoundary(text: CString, sizeX: CPointer, sizeY: CPointer): void { + const dc = this._canvas.context + let metrics = dc.measureText(this._ccanvas.getString(text)) + const width = metrics.width + metrics = dc.measureText('Op') + const height = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent + this._ccanvas.setNumber(sizeX, width) + this._ccanvas.setNumber(sizeY, height) + } + + text(x: number, y: number, sizex: number, sizey: number, text: CString): void { + const dc = this._canvas.context + dc.textAlign = 'left' + dc.textBaseline = 'top' + x = x + (sizex < 0 ? -sizex : 0) + y = y + (sizey < 0 ? -sizey : 0) + dc.fillText(this._ccanvas.getString(text), x, y) + } + + setBrushGradient( + x1: number, + y1: number, + x2: number, + y2: number, + stopCount: number, + stopsPtr: CColorGradientPtr + ): void { + const dc = this._canvas.context + const grd = dc.createLinearGradient(x1, y1, x2, y2) + this._ccanvas + .getColorGradient(stopsPtr, stopCount) + .stops.forEach((g) => grd.addColorStop(g.offset, g.color)) + dc.fillStyle = grd + } + + transform(a: number, b: number, c: number, d: number, e: number, f: number): void { + const dc = this._canvas.context + dc.transform(a, b, c, d, e, f) + } + + save(): void { + const dc = this._canvas.context + dc.save() + } + + restore(): void { + const dc = this._canvas.context + dc.restore() + } } diff --git a/src/apps/weblib/ts-api/tsconfig.json b/src/apps/weblib/ts-api/tsconfig.json index 6320041c2..e0d0784aa 100644 --- a/src/apps/weblib/ts-api/tsconfig.json +++ b/src/apps/weblib/ts-api/tsconfig.json @@ -1,13 +1,13 @@ { - "extends": "@tsconfig/strictest/tsconfig.json", - "include": ["**/*.ts"], - "compilerOptions": { - "target": "es2021", - "module": "ES6", - "rootDir": "./", - "outDir": "../../../../dist", - "moduleResolution": "node", - "declaration": true, - "skipLibCheck": false - } + "extends": "@tsconfig/strictest/tsconfig.json", + "include": ["**/*.ts"], + "compilerOptions": { + "target": "es2021", + "module": "ES6", + "rootDir": "./", + "outDir": "../../../../dist", + "moduleResolution": "node", + "declaration": true, + "skipLibCheck": false + } } diff --git a/src/apps/weblib/ts-api/utils.ts b/src/apps/weblib/ts-api/utils.ts index 142df8bdc..6fee600aa 100644 --- a/src/apps/weblib/ts-api/utils.ts +++ b/src/apps/weblib/ts-api/utils.ts @@ -1,76 +1,76 @@ import { Mirrored } from './tsutils' export function recursiveCopy<T>(value: T, Ignore?: new (...args: never[]) => unknown): T { - if (value === null || typeof value !== 'object') { - return value - } + if (value === null || typeof value !== 'object') { + return value + } - if (value instanceof Function) { - return value - } + if (value instanceof Function) { + return value + } - if (Array.isArray(value) && value instanceof Array) { - return value.map((item) => recursiveCopy(item, Ignore)) as T - } + if (Array.isArray(value) && value instanceof Array) { + return value.map((item) => recursiveCopy(item, Ignore)) as T + } - if (Ignore && value instanceof Ignore) { - return value - } + if (Ignore && value instanceof Ignore) { + return value + } - const copyObj = {} as T - for (const key in value) { - if (key in value) { - copyObj[key] = recursiveCopy(value[key], Ignore) - } - } - return copyObj + const copyObj = {} as T + for (const key in value) { + if (key in value) { + copyObj[key] = recursiveCopy(value[key], Ignore) + } + } + return copyObj } type Visitor = (path: string, value: unknown) => void export function iterateObject<T>(obj: T, paramHandler: Visitor, path: string = ''): void { - if (obj && obj !== null && typeof obj === 'object') { - Object.keys(obj).forEach((key) => { - const newPath = path + (path.length === 0 ? '' : '.') + key - const value = obj[key as keyof T] - if (value !== null && typeof value === 'object') { - iterateObject(value, paramHandler, newPath) - } else { - paramHandler(newPath, value) - } - }) - } + if (obj && obj !== null && typeof obj === 'object') { + Object.keys(obj).forEach((key) => { + const newPath = path + (path.length === 0 ? '' : '.') + key + const value = obj[key as keyof T] + if (value !== null && typeof value === 'object') { + iterateObject(value, paramHandler, newPath) + } else { + paramHandler(newPath, value) + } + }) + } } function isObject(value: unknown): value is Record<string, unknown> { - return typeof value === 'object' && value !== null + return typeof value === 'object' && value !== null } function setNestedProp<T>(obj: T, path: string, value: unknown): void { - const propList = path.split('.') - let currentObj: unknown = obj - propList.forEach((prop, i) => { - if (!isObject(currentObj)) { - throw new Error(`Expected an object, but got ${typeof currentObj}`) - } - if (i < propList.length - 1) { - currentObj[prop] = currentObj[prop] || (typeof propList[i + 1] === 'number' ? [] : {}) - currentObj = currentObj[prop] - } else { - currentObj[prop] = value - } - }) + const propList = path.split('.') + let currentObj: unknown = obj + propList.forEach((prop, i) => { + if (!isObject(currentObj)) { + throw new Error(`Expected an object, but got ${typeof currentObj}`) + } + if (i < propList.length - 1) { + currentObj[prop] = currentObj[prop] || (typeof propList[i + 1] === 'number' ? [] : {}) + currentObj = currentObj[prop] + } else { + currentObj[prop] = value + } + }) } type Lister = () => string[] type Getter = (path: string) => unknown export function mirrorObject<T>(lister: Lister, getter: Getter): Mirrored<T> { - const list = lister() - const res = {} as T - for (const path of list) { - const value = getter(path) - setNestedProp(res, path, value) - } - return Object.freeze(res) as Mirrored<T> + const list = lister() + const res = {} as T + for (const path of list) { + const value = getter(path) + setNestedProp(res, path, value) + } + return Object.freeze(res) as Mirrored<T> } diff --git a/src/apps/weblib/ts-api/vizzu.ts b/src/apps/weblib/ts-api/vizzu.ts index cf99d0ac6..efb22346d 100644 --- a/src/apps/weblib/ts-api/vizzu.ts +++ b/src/apps/weblib/ts-api/vizzu.ts @@ -34,126 +34,126 @@ export type LibOptions = LoaderOptions - pointerEvents: enables pointer events on the chart. */ export type Feature = - | 'logging' - | 'tooltip' - | 'rendering' - | 'cssProperties' - | 'coordSystem' - | 'htmlCanvas' - | 'shorthands' - | 'pivotData' - | 'pointerEvents' + | 'logging' + | 'tooltip' + | 'rendering' + | 'cssProperties' + | 'coordSystem' + | 'htmlCanvas' + | 'shorthands' + | 'pivotData' + | 'pointerEvents' export interface FeatureOptions { - features?: Plugin[] + features?: Plugin[] } export type VizzuOptions = FeatureOptions & LazyCanvasOptions export type FeatureFunction = (feature: Feature | Plugin, enabled?: boolean) => PluginApi export interface Features extends Record<string, PluginApi>, FeatureFunction { - coordSystem: CoordSystemApi - htmlCanvas: HtmlCanvasApi + coordSystem: CoordSystemApi + htmlCanvas: HtmlCanvasApi } /** Class representing a single chart in Vizzu. */ export default class Vizzu { - /** Promise representing the initialization will resolve when + /** Promise representing the initialization will resolve when initialization is finished. Any API call will potentially cause an error before this promise is resolved. */ - initializing: Promise<Vizzu> - private _chart?: Chart - private _anim: AnimCompleting - private _plugins: PluginRegistry - - /** Returns the chart preset collection. */ - static get presets(): Presets { - return new Presets() - } - - /** Setter method for Library options. */ - static options(options: LibOptions): void { - loader.options = options - } - - /** Initializes the library, if not called, first constructor call will do that. */ - static initialize(): Promise<void> { - return loader.initialize().then(() => {}) - } - - /** Creates a new chart and connects it to the div or canvas HTML + initializing: Promise<Vizzu> + private _chart?: Chart + private _anim: AnimCompleting + private _plugins: PluginRegistry + + /** Returns the chart preset collection. */ + static get presets(): Presets { + return new Presets() + } + + /** Setter method for Library options. */ + static options(options: LibOptions): void { + loader.options = options + } + + /** Initializes the library, if not called, first constructor call will do that. */ + static initialize(): Promise<void> { + return loader.initialize().then(() => {}) + } + + /** Creates a new chart and connects it to the div or canvas HTML element specified by its ID or DOM object. The new chart is empty by default, but can be set to an initial state in the second optional parameter. */ - constructor(options: VizzuOptions, initState?: Anim.Target) { - this._plugins = new PluginRegistry(this, this._getFeatureList(options)) - - this.initializing = loader.initialize().then((module) => { - this._chart = new Chart(module, options, this._plugins) - this._chart.registerBuiltins() - this._chart.start() - return this - }) - - this._anim = this.initializing - - if (initState) { - this.initializing = this.animate([ - { - target: initState, - options: { duration: 0 } - } - ]).then(() => this) - } - } - - private _getFeatureList(options: VizzuOptions): Plugin[] { - if (typeof options === 'object' && options !== null && 'features' in options) { - return options.features - } - return [] as Plugin[] - } - - /** If called as a function: + constructor(options: VizzuOptions, initState?: Anim.Target) { + this._plugins = new PluginRegistry(this, this._getFeatureList(options)) + + this.initializing = loader.initialize().then((module) => { + this._chart = new Chart(module, options, this._plugins) + this._chart.registerBuiltins() + this._chart.start() + return this + }) + + this._anim = this.initializing + + if (initState) { + this.initializing = this.animate([ + { + target: initState, + options: { duration: 0 } + } + ]).then(() => this) + } + } + + private _getFeatureList(options: VizzuOptions): Plugin[] { + if (typeof options === 'object' && options !== null && 'features' in options) { + return options.features + } + return [] as Plugin[] + } + + /** If called as a function: (name, enabled): it enables/disables built-in features and registered plugins. (plugin, enabled?): registers the given plugin. Otherwise gives access to the interfaces of the registered plugins, where every plugin acceccible as a property with the plugin name. */ - get feature(): Features { - const fn: FeatureFunction = this._feature.bind(this) - return new Proxy(fn, { - get: (_target, pluginName: string): PluginApi => { - return this._plugins.api(pluginName) - } - }) as Features - } - - private _feature(nameOrInstance: string | Plugin, enabled?: boolean): PluginApi { - if (enabled !== undefined && typeof enabled !== 'boolean') - throw new Error('enabled parameter must be boolean if specified') - - let name - let enabledInRegister = false - if (typeof nameOrInstance !== 'string') { - const instance = nameOrInstance - name = this._plugins.getRegisteredName(instance) - if (!name) { - name = this._plugins.register(instance, enabled ?? true) - enabledInRegister = true - } - } else { - name = nameOrInstance - } - - const enabledProvided = enabled !== undefined - if (enabledProvided && !enabledInRegister) { - this._plugins.enable(name, enabled) - } - - return this._plugins.api(name) - } - - /** Initiates the animation either to the new chart state passed as the first + get feature(): Features { + const fn: FeatureFunction = this._feature.bind(this) + return new Proxy(fn, { + get: (_target, pluginName: string): PluginApi => { + return this._plugins.api(pluginName) + } + }) as Features + } + + private _feature(nameOrInstance: string | Plugin, enabled?: boolean): PluginApi { + if (enabled !== undefined && typeof enabled !== 'boolean') + throw new Error('enabled parameter must be boolean if specified') + + let name + let enabledInRegister = false + if (typeof nameOrInstance !== 'string') { + const instance = nameOrInstance + name = this._plugins.getRegisteredName(instance) + if (!name) { + name = this._plugins.register(instance, enabled ?? true) + enabledInRegister = true + } + } else { + name = nameOrInstance + } + + const enabledProvided = enabled !== undefined + if (enabledProvided && !enabledInRegister) { + this._plugins.enable(name, enabled) + } + + return this._plugins.api(name) + } + + /** Initiates the animation either to the new chart state passed as the first argument, or through a sequence of keyframe charts passed as the first argument. If there is a currently running animation, all subsequent calls will schedule the corresponding animation after the end of the @@ -174,118 +174,120 @@ export default class Vizzu { finished. Since there can be multiple animations in the queue, the result promise provides a nested promise member `activated`, which resolves when the requested animation gets active. */ - animate(target: Anim.AnimTarget, options?: Anim.ControlOptions): AnimCompleting { - const copiedTarget = recursiveCopy(target, CObject) - const copiedOptions = recursiveCopy(options) - const ctx = Object.assign( - { target: copiedTarget, promise: this._anim }, - copiedOptions !== undefined ? { options: copiedOptions } : {} - ) - this._plugins.hook(Hooks.registerAnimation, ctx).default((ctx) => { - let activate: (control: AnimControl) => void = () => {} - const activated = new Promise<AnimControl>((resolve) => { - activate = resolve - }) - const promise = ctx.promise.then(() => this._animate(copiedTarget, copiedOptions, activate)) - ctx.promise = Object.assign(promise, { activated }) - }) - this._anim = ctx.promise - return this._anim - } - - private _animate( - target: Anim.AnimTarget, - options: Anim.ControlOptions | undefined, - activate: (control: AnimControl) => void - ): Promise<Vizzu> { - if (!this._chart) throw new NotInitializedError() - return this._chart.prepareAnimation(target, options).then(() => { - return this._runAnimation(activate) - }) - } - - private _runAnimation(activate: (control: AnimControl) => void): Promise<Vizzu> { - return new Promise((resolve, reject) => { - const callback = (ok: boolean): void => { - if (ok) { - resolve(this) - } else { - // eslint-disable-next-line prefer-promise-reject-errors - reject(new CancelError()) - this._anim = Promise.resolve(this) - } - } - if (!this._chart) throw new NotInitializedError() - this._chart.runAnimation(callback) - activate(this._chart.getAnimControl()) - }) - } - - /** Returns controls for the ongoing animation, if any. + animate(target: Anim.AnimTarget, options?: Anim.ControlOptions): AnimCompleting { + const copiedTarget = recursiveCopy(target, CObject) + const copiedOptions = recursiveCopy(options) + const ctx = Object.assign( + { target: copiedTarget, promise: this._anim }, + copiedOptions !== undefined ? { options: copiedOptions } : {} + ) + this._plugins.hook(Hooks.registerAnimation, ctx).default((ctx) => { + let activate: (control: AnimControl) => void = () => {} + const activated = new Promise<AnimControl>((resolve) => { + activate = resolve + }) + const promise = ctx.promise.then(() => + this._animate(copiedTarget, copiedOptions, activate) + ) + ctx.promise = Object.assign(promise, { activated }) + }) + this._anim = ctx.promise + return this._anim + } + + private _animate( + target: Anim.AnimTarget, + options: Anim.ControlOptions | undefined, + activate: (control: AnimControl) => void + ): Promise<Vizzu> { + if (!this._chart) throw new NotInitializedError() + return this._chart.prepareAnimation(target, options).then(() => { + return this._runAnimation(activate) + }) + } + + private _runAnimation(activate: (control: AnimControl) => void): Promise<Vizzu> { + return new Promise((resolve, reject) => { + const callback = (ok: boolean): void => { + if (ok) { + resolve(this) + } else { + // eslint-disable-next-line prefer-promise-reject-errors + reject(new CancelError()) + this._anim = Promise.resolve(this) + } + } + if (!this._chart) throw new NotInitializedError() + this._chart.runAnimation(callback) + activate(this._chart.getAnimControl()) + }) + } + + /** Returns controls for the ongoing animation, if any. @deprecated since version 0.4.0 */ - get animation(): AnimControl { - if (!this._chart) throw new NotInitializedError() - return this._chart.getAnimControl() - } - - /** Returns the version number of the library. */ - version(): string { - if (!this._chart) throw new NotInitializedError() - return this._chart.version() - } - - /** Property for read-only access to data metainfo object. */ - get data(): Mirrored<Data.Metainfo> { - if (!this._chart) throw new NotInitializedError() - return this._chart.data - } - - /** Property for read-only access to chart parameter object. */ - get config(): Mirrored<Config.Chart> { - if (!this._chart) throw new NotInitializedError() - return this._chart.config - } - - /** Property for read-only access to style object without default values. */ - get style(): Mirrored<Styles.Chart> { - if (!this._chart) throw new NotInitializedError() - return this._chart.style - } - - /** Property for read-only access to the style object after setting defaults. */ - getComputedStyle(): Mirrored<Styles.Chart> { - if (!this._chart) throw new NotInitializedError() - return this._chart.getComputedStyle() - } - - /** Installs the provided event handler to the event specified by name. */ - on<T extends EventType>(eventName: T, handler: EventHandler<EventMap[T]>): void { - if (!this._chart) throw new NotInitializedError() - this._chart.on(eventName, handler) - } - - /** Uninstalls the provided event handler from the event specified by name. */ - off<T extends EventType>(eventName: T, handler: EventHandler<EventMap[T]>): void { - if (!this._chart) throw new NotInitializedError() - this._chart.off(eventName, handler) - } - - /** Returns a reference to the actual chart state for further reuse. + get animation(): AnimControl { + if (!this._chart) throw new NotInitializedError() + return this._chart.getAnimControl() + } + + /** Returns the version number of the library. */ + version(): string { + if (!this._chart) throw new NotInitializedError() + return this._chart.version() + } + + /** Property for read-only access to data metainfo object. */ + get data(): Mirrored<Data.Metainfo> { + if (!this._chart) throw new NotInitializedError() + return this._chart.data + } + + /** Property for read-only access to chart parameter object. */ + get config(): Mirrored<Config.Chart> { + if (!this._chart) throw new NotInitializedError() + return this._chart.config + } + + /** Property for read-only access to style object without default values. */ + get style(): Mirrored<Styles.Chart> { + if (!this._chart) throw new NotInitializedError() + return this._chart.style + } + + /** Property for read-only access to the style object after setting defaults. */ + getComputedStyle(): Mirrored<Styles.Chart> { + if (!this._chart) throw new NotInitializedError() + return this._chart.getComputedStyle() + } + + /** Installs the provided event handler to the event specified by name. */ + on<T extends EventType>(eventName: T, handler: EventHandler<EventMap[T]>): void { + if (!this._chart) throw new NotInitializedError() + this._chart.on(eventName, handler) + } + + /** Uninstalls the provided event handler from the event specified by name. */ + off<T extends EventType>(eventName: T, handler: EventHandler<EventMap[T]>): void { + if (!this._chart) throw new NotInitializedError() + this._chart.off(eventName, handler) + } + + /** Returns a reference to the actual chart state for further reuse. This reference includes the chart config, style parameters and the data filter but does not include the actual data and the animation options. */ - store(): Snapshot { - if (!this._chart) throw new NotInitializedError() - return this._chart.store() - } + store(): Snapshot { + if (!this._chart) throw new NotInitializedError() + return this._chart.store() + } - /** Removes the reference of the chart from every place it attached itself, + /** Removes the reference of the chart from every place it attached itself, this method must be called in order to get the chart properly garbage collected. */ - detach(): void { - try { - this._plugins.destruct() - } finally { - this._chart?.destruct() - } - } + detach(): void { + try { + this._plugins.destruct() + } finally { + this._chart?.destruct() + } + } } diff --git a/src/apps/weblib/typeschema-api/anim.yaml b/src/apps/weblib/typeschema-api/anim.yaml index 12a7e63bc..522852148 100644 --- a/src/apps/weblib/typeschema-api/anim.yaml +++ b/src/apps/weblib/typeschema-api/anim.yaml @@ -1,188 +1,188 @@ --- $import: - Data: ./data - Config: ./config - Styles: ./styles - CA: ../module/canimctrl - CC: ../module/cchart + Data: ./data + Config: ./config + Styles: ./styles + CA: ../module/canimctrl + CC: ../module/cchart definitions: - Duration: - description: | - Duration can be set in seconds or milliseconds. - In case no unit is set, it defaults to seconds. - oneOf: - - { type: string, mask: /:number:s/ } - - { type: string, mask: /:number:ms/ } - - type: number + Duration: + description: | + Duration can be set in seconds or milliseconds. + In case no unit is set, it defaults to seconds. + oneOf: + - { type: string, mask: /:number:s/ } + - { type: string, mask: /:number:ms/ } + - type: number - Position: - description: Seek position in the animation. - oneOf: - - { type: string, mask: /:number:%/ } - - { $ref: Duration } + Position: + description: Seek position in the animation. + oneOf: + - { type: string, mask: /:number:%/ } + - { $ref: Duration } - Easing: - oneOf: - - type: string - enum: [none, linear, step-start, step-end, ease, ease-in, ease-out, ease-in-out] - - type: string - mask: '/cubic-bezier(:number:,:number:,:number:,:number:)/' + Easing: + oneOf: + - type: string + enum: [none, linear, step-start, step-end, ease, ease-in, ease-out, ease-in-out] + - type: string + mask: '/cubic-bezier(:number:,:number:,:number:,:number:)/' - GroupOptions: - description: Animation parameters for an animation group. - type: object - properties: - easing: - description: Sets the easing used for the animation. - $ref: Easing - duration: - description: The length of time an animation should take to complete. - $ref: Duration - delay: - description: Waiting time interval before the animation starts. - $ref: Duration + GroupOptions: + description: Animation parameters for an animation group. + type: object + properties: + easing: + description: Sets the easing used for the animation. + $ref: Easing + duration: + description: The length of time an animation should take to complete. + $ref: Duration + delay: + description: Waiting time interval before the animation starts. + $ref: Duration - RegroupStrategy: - description: | - Type of transition when the categorical series differ on the source and the target chart. - - fade: the source chart fades out while the target chart fades in - - drilldown: markers are splitted to be able to represent the target chart - - aggregate: markers are aggregated then splitted differently to be - able to represent the target chart. - type: string - enum: [fade, drilldown, aggregate] + RegroupStrategy: + description: | + Type of transition when the categorical series differ on the source and the target chart. + - fade: the source chart fades out while the target chart fades in + - drilldown: markers are splitted to be able to represent the target chart + - aggregate: markers are aggregated then splitted differently to be + able to represent the target chart. + type: string + enum: [fade, drilldown, aggregate] - Options: - $extends: GroupOptions - type: object - description: | - If no animation settings are passed to Vizzu, it will use an automatic - setting depending on the actual configuration of the chart. This behavior can be - overridden via the animation setting parameter. + Options: + $extends: GroupOptions + type: object + description: | + If no animation settings are passed to Vizzu, it will use an automatic + setting depending on the actual configuration of the chart. This behavior can be + overridden via the animation setting parameter. - The animation between two states of the chart can require the transitioning - of several different chart properties. These properties are grouped into - separately configurable animation groups. + The animation between two states of the chart can require the transitioning + of several different chart properties. These properties are grouped into + separately configurable animation groups. - The parameters can also be set for the animation as a whole. These settings - rescale the durations and delays of the animation groups to the - specified total delay and duration. - properties: - style: - description: Animation group for style parameters. - $ref: GroupOptions - title: - description: Title animation parameters. - $ref: GroupOptions - subtitle: - description: Subtitle animation parameters. - $ref: GroupOptions - caption: - description: Caption animation parameters. - $ref: GroupOptions - legend: - description: Legend animation parameters. - $ref: GroupOptions - show: - description: | - Animation group for new markers fading in - (due to filtering or added/removed data series). - $ref: GroupOptions - hide: - description: | - Animation group for markers fading out - (due to filtering or added/removed data series). - $ref: GroupOptions - color: - description: Marker color animation group. - $ref: GroupOptions - coordSystem: - description: Coordinate system transformations animation group. - $ref: GroupOptions - geometry: - description: Marker geometry morph animation group. - $ref: GroupOptions - y: - description: Animation group for marker transitions in the direction of the y-axis. - $ref: GroupOptions - x: - description: Animation group for marker transitions in the direction of the x-axis. - $ref: GroupOptions - tooltip: - description: Animation group for tooltip transitions. - $ref: GroupOptions - connection: - description: Animation group for area/line rewiring transitions. - $ref: GroupOptions - regroupStrategy: - description: | - Selects the algorithm for transition in case of data grouped - differently on the source and target chart. - $ref: RegroupStrategy + The parameters can also be set for the animation as a whole. These settings + rescale the durations and delays of the animation groups to the + specified total delay and duration. + properties: + style: + description: Animation group for style parameters. + $ref: GroupOptions + title: + description: Title animation parameters. + $ref: GroupOptions + subtitle: + description: Subtitle animation parameters. + $ref: GroupOptions + caption: + description: Caption animation parameters. + $ref: GroupOptions + legend: + description: Legend animation parameters. + $ref: GroupOptions + show: + description: | + Animation group for new markers fading in + (due to filtering or added/removed data series). + $ref: GroupOptions + hide: + description: | + Animation group for markers fading out + (due to filtering or added/removed data series). + $ref: GroupOptions + color: + description: Marker color animation group. + $ref: GroupOptions + coordSystem: + description: Coordinate system transformations animation group. + $ref: GroupOptions + geometry: + description: Marker geometry morph animation group. + $ref: GroupOptions + y: + description: Animation group for marker transitions in the direction of the y-axis. + $ref: GroupOptions + x: + description: Animation group for marker transitions in the direction of the x-axis. + $ref: GroupOptions + tooltip: + description: Animation group for tooltip transitions. + $ref: GroupOptions + connection: + description: Animation group for area/line rewiring transitions. + $ref: GroupOptions + regroupStrategy: + description: | + Selects the algorithm for transition in case of data grouped + differently on the source and target chart. + $ref: RegroupStrategy - ControlOptions: - type: object - description: Animation playback related oprtions. - properties: - playState: - type: string - enum: [paused, running] + ControlOptions: + type: object + description: Animation playback related oprtions. + properties: + playState: + type: string + enum: [paused, running] + description: | + Determines if the animation should start automatically after the + animate() call. + position: + type: number + description: The starting position of the animation. + direction: + type: string + enum: [normal, reverse] + description: Play direction of the animation. + speed: + type: number + description: | + Playback speed of the animation. It is 1.0 by default. + Negative values are considered 0. + + Target: description: | - Determines if the animation should start automatically after the - animate() call. - position: - type: number - description: The starting position of the animation. - direction: - type: string - enum: [normal, reverse] - description: Play direction of the animation. - speed: - type: number + Represents a state in the animation describing the data, the chart, and + the style parameters to be changed from the actual state. + Passing null as style will reset every style parameter to default. + type: object + properties: + data: + description: Data set. + $ref: Data:Set + config: + description: Chart configuration changes. + $ref: Config:Chart + style: + description: Style changes. + $ref: Styles:Chart + nullable: true + + Keyframe: description: | - Playback speed of the animation. It is 1.0 by default. - Negative values are considered 0. + Object for describing a single animation target chart state and the + options of the animation to this chart state. + type: object + properties: + target: + oneOf: + - $ref: Target + - $ref: CC:Snapshot + options: + $ref: Options + required: [target] - Target: - description: | - Represents a state in the animation describing the data, the chart, and - the style parameters to be changed from the actual state. - Passing null as style will reset every style parameter to default. - type: object - properties: - data: - description: Data set. - $ref: Data:Set - config: - description: Chart configuration changes. - $ref: Config:Chart - style: - description: Style changes. - $ref: Styles:Chart - nullable: true + Keyframes: + description: Sequence of keyframe descriptors + type: array + items: { $ref: Keyframe } - Keyframe: - description: | - Object for describing a single animation target chart state and the - options of the animation to this chart state. - type: object - properties: - target: + AnimTarget: + description: Types, that can represent an animation. oneOf: - - $ref: Target - - $ref: CC:Snapshot - options: - $ref: Options - required: [target] - - Keyframes: - description: Sequence of keyframe descriptors - type: array - items: { $ref: Keyframe } - - AnimTarget: - description: Types, that can represent an animation. - oneOf: - - $ref: Keyframes - - $ref: CA:CAnimation + - $ref: Keyframes + - $ref: CA:CAnimation diff --git a/src/apps/weblib/typeschema-api/config.yaml b/src/apps/weblib/typeschema-api/config.yaml index cc774b9ea..20b7089ab 100644 --- a/src/apps/weblib/typeschema-api/config.yaml +++ b/src/apps/weblib/typeschema-api/config.yaml @@ -1,240 +1,240 @@ --- $import: - Data: ./data + Data: ./data definitions: - ChannelExtrema: - description: | - Units: - - no unit: the same unit as in the data; - - %: percentage relative to the min/max of the data; - - min,max: offset from min/max of the data; - - auto: automatic range based on chart config; - oneOf: - - type: number - - { type: string, mask: /:number:%/ } - - { type: string, mask: /:number:min/ } - - { type: string, mask: /:number:max/ } - - { type: string, enum: [auto] } - - ChannelRange: - description: Channel range specifies how to scale the represented data. - type: object - properties: - min: - $ref: ChannelExtrema - max: - $ref: ChannelExtrema - - AutoBool: - oneOf: - - type: boolean - - { type: string, enum: [auto] } - - Channel: - description: | - Channels are the main building blocks of the chart. Each channel describes - a particular aspect of the markers (vertical & horizontal position, color, etc.) - and connects them to the underlying data. A single measure and an ordered list of - dimensions can be on each channel. The dimensions will recursively slice the - measure on the channel. The channels are represented on the chart as an - axis or legend. - type: object - properties: - title: + ChannelExtrema: description: | - This title is shown on the axis or legend corresponding to the channel. - If 'auto', the title will be the name of the measure attached to - that channel. + Units: + - no unit: the same unit as in the data; + - %: percentage relative to the min/max of the data; + - min,max: offset from min/max of the data; + - auto: automatic range based on chart config; oneOf: - - type: string - - { type: string, enum: [auto] } - nullable: true - set: - description: List of data series descriptors on the channel. - $ref: Data:SeriesList - nullable: true - attach: - description: | - List of data series descriptors to be added to the - channel beside the ones already added. - $ref: Data:SeriesList - detach: - description: | - List of data series descriptors to be removed from the - channel. - $ref: Data:SeriesList - range: - description: | - Specifies the range that determines how the represented data scales - on the channel. - $ref: ChannelRange - labelLevel: - description: | - Only one dimension can be shown on an axis or legend by - name. This index specifies which attached series should be used. - type: number - axis: - description: Enables the axis line on axis channels. - $ref: AutoBool - labels: - description: Enables the axis labels on axis channels. - $ref: AutoBool - ticks: - description: Enables the axis ticks on axis channels showing measure data. - $ref: AutoBool - interlacing: - description: Enables the interlacing on axis channels showing measure data. - $ref: AutoBool - guides: - description: Enables the grid lines on axis channels showing dimension data. - $ref: AutoBool - markerGuides: - description: | - Enables the guide lines on axis channels showing measure data - for all marker positions. - $ref: AutoBool - step: - description: | - Base interval of the interlacing on the axis. + - type: number + - { type: string, mask: /:number:%/ } + - { type: string, mask: /:number:min/ } + - { type: string, mask: /:number:max/ } + - { type: string, enum: [auto] } + + ChannelRange: + description: Channel range specifies how to scale the represented data. + type: object + properties: + min: + $ref: ChannelExtrema + max: + $ref: ChannelExtrema + + AutoBool: oneOf: - - type: number - - { type: string, enum: [auto] } + - type: boolean + - { type: string, enum: [auto] } - Channels: - description: | - Channel configuration. Setting a channel to null will remove all data series from it. - type: object - properties: - x: - $ref: Channel - description: | - Parameters for the X-axis, determining the position of the markers on the - x-axis - or their angle when using polar coordinates. - Note: leaving x and y channels empty will result in a - chart "without coordinates" like a Treemap or a Bubble Chart. - y: - $ref: Channel - description: | - Parameters for the Y-axis, determining the position of the markers on the - y-axis - or their radius when using polar coordinates) . - color: - $ref: Channel - description: | - Parameters for the markers' base color. The markers' actual color can - also be affected by the lightness channel. - lightness: - $ref: Channel - description: Parameters for markers' lightness. - size: - $ref: Channel - description: | - Parameters for the markers' size. Effective only for circle and line - geometry affecting the circle area or the line width respectively. - label: - $ref: Channel - description: | - Parameters for the content of the labels that appear on the markers. - noop: - $ref: Channel - description: | - Splits the markers as all the other channels, but have no - effect on the markers' appearance. Thus, it only works with dimensions. + Channel: + description: | + Channels are the main building blocks of the chart. Each channel describes + a particular aspect of the markers (vertical & horizontal position, color, etc.) + and connects them to the underlying data. A single measure and an ordered list of + dimensions can be on each channel. The dimensions will recursively slice the + measure on the channel. The channels are represented on the chart as an + axis or legend. + type: object + properties: + title: + description: | + This title is shown on the axis or legend corresponding to the channel. + If 'auto', the title will be the name of the measure attached to + that channel. + oneOf: + - type: string + - { type: string, enum: [auto] } + nullable: true + set: + description: List of data series descriptors on the channel. + $ref: Data:SeriesList + nullable: true + attach: + description: | + List of data series descriptors to be added to the + channel beside the ones already added. + $ref: Data:SeriesList + detach: + description: | + List of data series descriptors to be removed from the + channel. + $ref: Data:SeriesList + range: + description: | + Specifies the range that determines how the represented data scales + on the channel. + $ref: ChannelRange + labelLevel: + description: | + Only one dimension can be shown on an axis or legend by + name. This index specifies which attached series should be used. + type: number + axis: + description: Enables the axis line on axis channels. + $ref: AutoBool + labels: + description: Enables the axis labels on axis channels. + $ref: AutoBool + ticks: + description: Enables the axis ticks on axis channels showing measure data. + $ref: AutoBool + interlacing: + description: Enables the interlacing on axis channels showing measure data. + $ref: AutoBool + guides: + description: Enables the grid lines on axis channels showing dimension data. + $ref: AutoBool + markerGuides: + description: | + Enables the guide lines on axis channels showing measure data + for all marker positions. + $ref: AutoBool + step: + description: | + Base interval of the interlacing on the axis. + oneOf: + - type: number + - { type: string, enum: [auto] } - Chart: - description: | - The config contains all of the parameters needed to render a particular - static chart or a state of an animated chart. - type: object - properties: - channels: - description: | - List of the chart's channels' configuration. The chart object also - extends the channels object as a configuration shorthand. - $ref: Channels - title: - description: | - This is the title shown on the top of the chart. - If set to null, the title will not be shown and will not take up any - space in the chart layout. - type: string - nullable: true - subtitle: - description: | - This is the subtitle shown on the top of the chart under the title. - If set to null, the subtitle will not be shown and will not take up any - space in the chart layout. - type: string - nullable: true - caption: - description: | - This is the caption shown on the bottom of the chart. - If set to null, the caption will not be shown and will not take up any - space in the chart layout. - type: string - nullable: true - legend: - description: | - Specifies which channel should be shown on the legend. - If set to null, the legend will not be shown and will not take up any - space in the chart layout. - If set to auto, the internal logic will select the most suitable channel - for the legend. - type: string - enum: [color, lightness, size, auto] - nullable: true - coordSystem: - description: | - Sets the coordinate system for the chart. Switch to the 'polar' - coordinate system to create a chart from the pie/radial chart family. - type: string - enum: [cartesian, polar] - angle: - description: | - Rotates the plot area to the specified angle in radian. - Note: this is an experimental, not tested feature. - type: number - geometry: - description: | - Sets the geometric elements used for the markers to represent the data. - type: string - enum: [rectangle, circle, area, line] - orientation: - description: | - If both axes have measures on them, this parameter sets the - orientation of the chart, meaning to which axis the graphical elements - are oriented to. - type: string - enum: [auto, horizontal, vertical] - sort: - description: | - - 'none': markers are sorted in the order as the corresponding data - appear in the data set. - - 'byValue': markers will be sorted by the corresponding measure (if present) - in decreasing order. - type: string - enum: [none, byValue] - reverse: - description: Reverts the order of the markers if set. - type: boolean - align: - description: | - Sets the alignment of the markers with relation to the x- or the y-axis depending - on where the measure is. In case both axes have measures on them, this is determined - by the `orientation` of the chart. - type: string - enum: [none, min, center, max, stretch] - split: - description: | - If set to true, markers will be split by the dimension(s) along the axis. - This works if you have at least one dimension and a measure on the same axis.In case - both axes have measures and dimension(s) on them, this is determined by the - `orientation` of the chart. - type: boolean - tooltip: - description: | - Index of the marker, the tooltip should be turned on. This parameter is not needed - to set manually, tooltip will be taken care of autamatically when `tooltip` feature - is enabled. - type: number - nullable: true + Channels: + description: | + Channel configuration. Setting a channel to null will remove all data series from it. + type: object + properties: + x: + $ref: Channel + description: | + Parameters for the X-axis, determining the position of the markers on the + x-axis - or their angle when using polar coordinates. + Note: leaving x and y channels empty will result in a + chart "without coordinates" like a Treemap or a Bubble Chart. + y: + $ref: Channel + description: | + Parameters for the Y-axis, determining the position of the markers on the + y-axis - or their radius when using polar coordinates) . + color: + $ref: Channel + description: | + Parameters for the markers' base color. The markers' actual color can + also be affected by the lightness channel. + lightness: + $ref: Channel + description: Parameters for markers' lightness. + size: + $ref: Channel + description: | + Parameters for the markers' size. Effective only for circle and line + geometry affecting the circle area or the line width respectively. + label: + $ref: Channel + description: | + Parameters for the content of the labels that appear on the markers. + noop: + $ref: Channel + description: | + Splits the markers as all the other channels, but have no + effect on the markers' appearance. Thus, it only works with dimensions. + + Chart: + description: | + The config contains all of the parameters needed to render a particular + static chart or a state of an animated chart. + type: object + properties: + channels: + description: | + List of the chart's channels' configuration. The chart object also + extends the channels object as a configuration shorthand. + $ref: Channels + title: + description: | + This is the title shown on the top of the chart. + If set to null, the title will not be shown and will not take up any + space in the chart layout. + type: string + nullable: true + subtitle: + description: | + This is the subtitle shown on the top of the chart under the title. + If set to null, the subtitle will not be shown and will not take up any + space in the chart layout. + type: string + nullable: true + caption: + description: | + This is the caption shown on the bottom of the chart. + If set to null, the caption will not be shown and will not take up any + space in the chart layout. + type: string + nullable: true + legend: + description: | + Specifies which channel should be shown on the legend. + If set to null, the legend will not be shown and will not take up any + space in the chart layout. + If set to auto, the internal logic will select the most suitable channel + for the legend. + type: string + enum: [color, lightness, size, auto] + nullable: true + coordSystem: + description: | + Sets the coordinate system for the chart. Switch to the 'polar' + coordinate system to create a chart from the pie/radial chart family. + type: string + enum: [cartesian, polar] + angle: + description: | + Rotates the plot area to the specified angle in radian. + Note: this is an experimental, not tested feature. + type: number + geometry: + description: | + Sets the geometric elements used for the markers to represent the data. + type: string + enum: [rectangle, circle, area, line] + orientation: + description: | + If both axes have measures on them, this parameter sets the + orientation of the chart, meaning to which axis the graphical elements + are oriented to. + type: string + enum: [auto, horizontal, vertical] + sort: + description: | + - 'none': markers are sorted in the order as the corresponding data + appear in the data set. + - 'byValue': markers will be sorted by the corresponding measure (if present) + in decreasing order. + type: string + enum: [none, byValue] + reverse: + description: Reverts the order of the markers if set. + type: boolean + align: + description: | + Sets the alignment of the markers with relation to the x- or the y-axis depending + on where the measure is. In case both axes have measures on them, this is determined + by the `orientation` of the chart. + type: string + enum: [none, min, center, max, stretch] + split: + description: | + If set to true, markers will be split by the dimension(s) along the axis. + This works if you have at least one dimension and a measure on the same axis.In case + both axes have measures and dimension(s) on them, this is determined by the + `orientation` of the chart. + type: boolean + tooltip: + description: | + Index of the marker, the tooltip should be turned on. This parameter is not needed + to set manually, tooltip will be taken care of autamatically when `tooltip` feature + is enabled. + type: number + nullable: true diff --git a/src/apps/weblib/typeschema-api/data.yaml b/src/apps/weblib/typeschema-api/data.yaml index cb17b9937..060c04808 100644 --- a/src/apps/weblib/typeschema-api/data.yaml +++ b/src/apps/weblib/typeschema-api/data.yaml @@ -1,231 +1,231 @@ --- definitions: - SeriesName: - description: Name of the data series. - type: string - - SeriesType: - description: | - Type of the data series: - - 'dimension' - categorical data containing strings - (dates should also be added as strings); - - 'measure' - continuous data containing numbers. - type: string - enum: [dimension, measure] - - SeriesMetaInfo: - description: Additional info about a data series besides the contained data. - type: object - properties: - name: - description: | - Name of the data series. It will be the unique id of the series to - reference it in various parts of the API, mainly in channel configuration and - in data record filters. This name will also be used by default for Axis and - Legend title. - $ref: SeriesName - type: + SeriesName: + description: Name of the data series. + type: string + + SeriesType: description: | - Type of the data series. - If not set, the library will attempt to determine the type based on - the type of the first value. Number type will result in measure, - string type will result in dimension. - $ref: SeriesType - unit: - description: Unit of the data series. + Type of the data series: + - 'dimension' - categorical data containing strings + (dates should also be added as strings); + - 'measure' - continuous data containing numbers. type: string - required: [name] - - AbstractSeriesInfo: - $extends: SeriesMetaInfo - type: object - description: Generic meta data about any data series - properties: - length: - description: Count of values in the series. - type: number - required: [length] - - DimensionSeriesInfo: - $extends: AbstractSeriesInfo - description: Meta data about dimension data series - type: object - properties: - categories: - description: Distinct values in the series - type: array - items: - type: string - required: [categories] - - Range: - type: object - description: Represents a numeric interval. - properties: - min: - description: Minimal value in the series - type: number - max: - description: Maximal value in the series - type: number - required: [min, max] - - MeasureSeriesInfo: - $extends: AbstractSeriesInfo - description: Meta data about measure data series - type: object - properties: - range: - $ref: Range - required: [range] - - SeriesInfo: - description: MetaInfo for different series types. - oneOf: - - $ref: DimensionSeriesInfo - - $ref: MeasureSeriesInfo - - Metainfo: - description: Meta data about the data set - type: object - properties: - series: - type: array - items: - $ref: SeriesInfo - required: [series] - - Value: - description: Represents a categorical or data value - oneOf: - - type: string - - type: number - - Values: - description: List of data values in a series. - oneOf: - - type: array - items: { type: string } - - type: array - items: - type: number - nullable: true - - Series: - $extends: SeriesMetaInfo - description: | - Defines a data series of the data set, and contains a particular variable's - values in the data set and meta info about the variable. - type: object - properties: - values: + enum: [dimension, measure] + + SeriesMetaInfo: + description: Additional info about a data series besides the contained data. + type: object + properties: + name: + description: | + Name of the data series. It will be the unique id of the series to + reference it in various parts of the API, mainly in channel configuration and + in data record filters. This name will also be used by default for Axis and + Legend title. + $ref: SeriesName + type: + description: | + Type of the data series. + If not set, the library will attempt to determine the type based on + the type of the first value. Number type will result in measure, + string type will result in dimension. + $ref: SeriesType + unit: + description: Unit of the data series. + type: string + required: [name] + + AbstractSeriesInfo: + $extends: SeriesMetaInfo + type: object + description: Generic meta data about any data series + properties: + length: + description: Count of values in the series. + type: number + required: [length] + + DimensionSeriesInfo: + $extends: AbstractSeriesInfo + description: Meta data about dimension data series + type: object + properties: + categories: + description: Distinct values in the series + type: array + items: + type: string + required: [categories] + + Range: + type: object + description: Represents a numeric interval. + properties: + min: + description: Minimal value in the series + type: number + max: + description: Maximal value in the series + type: number + required: [min, max] + + MeasureSeriesInfo: + $extends: AbstractSeriesInfo + description: Meta data about measure data series + type: object + properties: + range: + $ref: Range + required: [range] + + SeriesInfo: + description: MetaInfo for different series types. + oneOf: + - $ref: DimensionSeriesInfo + - $ref: MeasureSeriesInfo + + Metainfo: + description: Meta data about the data set + type: object + properties: + series: + type: array + items: + $ref: SeriesInfo + required: [series] + + Value: + description: Represents a categorical or data value + oneOf: + - type: string + - type: number + + Values: + description: List of data values in a series. + oneOf: + - type: array + items: { type: string } + - type: array + items: + type: number + nullable: true + + Series: + $extends: SeriesMetaInfo description: | - The array that contains the values of the data series. The value types - should match the data series' `type` property. If the data series - is shorter than the longest data series defined, it will be internally - extended with empty values. - $ref: Values - - Record: - description: | - A record of the data set, containing one value of each data series - corresponding to the same index. - type: object - properties: - operator[]: + Defines a data series of the data set, and contains a particular variable's + values in the data set and meta info about the variable. + type: object + properties: + values: + description: | + The array that contains the values of the data series. The value types + should match the data series' `type` property. If the data series + is shorter than the longest data series defined, it will be internally + extended with empty values. + $ref: Values + + Record: description: | - Properties are provided for each data series, providing access to the value within - the record referenced by its data series name. + A record of the data set, containing one value of each data series + corresponding to the same index. + type: object + properties: + operator[]: + description: | + Properties are provided for each data series, providing access to the value within + the record referenced by its data series name. + type: function + arguments: + seriesName: { $ref: SeriesName } + required: [seriesName] + return: { $ref: Value } + + FilterCallback: type: function + description: A callback function receives a record arguments: - seriesName: { $ref: SeriesName } - required: [seriesName] - return: { $ref: Value } - - FilterCallback: - type: function - description: A callback function receives a record - arguments: - record: { $ref: Record } - required: [record] - return: { type: boolean } - - Filter: - type: object - description: Filter object containing a filter function - properties: - filter: - description: | - A filter callback is called on each record of the dataset on chart - generation. If the callback returns false, the record will not be shown on the chart. - $ref: FilterCallback - nullable: true - - TableBySeries: - $extends: Filter - description: Data table specified by series. - type: object - properties: - series: - description: The series that make up the the data set. + record: { $ref: Record } + required: [record] + return: { type: boolean } + + Filter: + type: object + description: Filter object containing a filter function + properties: + filter: + description: | + A filter callback is called on each record of the dataset on chart + generation. If the callback returns false, the record will not be shown on the chart. + $ref: FilterCallback + nullable: true + + TableBySeries: + $extends: Filter + description: Data table specified by series. + type: object + properties: + series: + description: The series that make up the the data set. + type: array + items: { $ref: Series } + required: [series] + + ValueArray: + description: Values of a data record in the order of the series in the dataset. type: array - items: { $ref: Series } - required: [series] - - ValueArray: - description: Values of a data record in the order of the series in the dataset. - type: array - items: { $ref: Value } - - TableByRecords: - $extends: Filter - description: Data table specified by records. - type: object - properties: - series: + items: { $ref: Value } + + TableByRecords: + $extends: Filter + description: Data table specified by records. + type: object + properties: + series: + description: | + The information about the data series in the records of the data set. + Note: not needed if it was previously specified. + type: array + items: { $ref: SeriesMetaInfo } + records: + description: The array of data records that make up the data set. + type: array + items: + oneOf: + - { $ref: ValueArray } + - { $ref: Record } + required: [records] + + Set: description: | - The information about the data series in the records of the data set. - Note: not needed if it was previously specified. - type: array - items: { $ref: SeriesMetaInfo } - records: - description: The array of data records that make up the data set. + Data set is a collection of related data series. + Each chart works on a single data set. + oneOf: + - $ref: TableBySeries + - $ref: TableByRecords + + AggregatorType: + description: | + Types of the different available data series aggregators: + + - sum: sum of the values (default) + - count: count of the values + - min: minima of the values + - max: maxima of the values + - mean: average/mean of the values + - distinct: number of different values + type: string + enum: [sum, count, min, max, mean, distinct] + + SeriesDescriptor: + description: | + The name of a series either alone or combined with an aggregator function. + oneOf: + - { $ref: SeriesName } + - { type: string, mask: /:AggregatorType:\(:SeriesName:\)/ } + + SeriesList: + description: Array or a single data series. type: array - items: - oneOf: - - { $ref: ValueArray } - - { $ref: Record } - required: [records] - - Set: - description: | - Data set is a collection of related data series. - Each chart works on a single data set. - oneOf: - - $ref: TableBySeries - - $ref: TableByRecords - - AggregatorType: - description: | - Types of the different available data series aggregators: - - - sum: sum of the values (default) - - count: count of the values - - min: minima of the values - - max: maxima of the values - - mean: average/mean of the values - - distinct: number of different values - type: string - enum: [sum, count, min, max, mean, distinct] - - SeriesDescriptor: - description: | - The name of a series either alone or combined with an aggregator function. - oneOf: - - { $ref: SeriesName } - - { type: string, mask: /:AggregatorType:\(:SeriesName:\)/ } - - SeriesList: - description: Array or a single data series. - type: array - items: { $ref: SeriesDescriptor } + items: { $ref: SeriesDescriptor } diff --git a/src/apps/weblib/typeschema-api/styles.yaml b/src/apps/weblib/typeschema-api/styles.yaml index 2bcc5ee73..4d8c117a1 100644 --- a/src/apps/weblib/typeschema-api/styles.yaml +++ b/src/apps/weblib/typeschema-api/styles.yaml @@ -1,598 +1,601 @@ --- definitions: - Length: - description: | - Length can be set in pixels or in percentage of the element or the element's - font size. Pixel is the default unit. - oneOf: - - { type: string, mask: /:number:px/ } - - { type: string, mask: /:number:%/ } - - { type: string, mask: /:number:em/ } - - type: number + Length: + description: | + Length can be set in pixels or in percentage of the element or the element's + font size. Pixel is the default unit. + oneOf: + - { type: string, mask: /:number:px/ } + - { type: string, mask: /:number:%/ } + - { type: string, mask: /:number:em/ } + - type: number - Angle: - description: | - Angle can be set in radians, degrees, gradians and turns. - Radians is the default unit. - oneOf: - - { type: string, mask: /:number:rad/ } - - { type: string, mask: /:number:grad/ } - - { type: string, mask: /:number:deg/ } - - { type: string, mask: /:number:turn/ } - - type: number + Angle: + description: | + Angle can be set in radians, degrees, gradians and turns. + Radians is the default unit. + oneOf: + - { type: string, mask: /:number:rad/ } + - { type: string, mask: /:number:grad/ } + - { type: string, mask: /:number:deg/ } + - { type: string, mask: /:number:turn/ } + - type: number - Color: - description: | - The following CSS color formats are available: - rgb(), rgba(), `#RRGGBB`, `#RRGGBBAA`, `#RGB`. - oneOf: - - { type: string, mask: /#:string:/ } - - { type: string, mask: '/rgb\(:number:,:number:,:number:\)/' } - - { type: string, mask: '/rgba\(:number:,:number:,:number:,:number:\)/' } + Color: + description: | + The following CSS color formats are available: + rgb(), rgba(), `#RRGGBB`, `#RRGGBBAA`, `#RGB`. + oneOf: + - { type: string, mask: /#:string:/ } + - { type: string, mask: '/rgb\(:number:,:number:,:number:\)/' } + - { type: string, mask: '/rgba\(:number:,:number:,:number:,:number:\)/' } - NumberScale: - description: | - Number scale for human readable big number formats. - There are built in formats: - - SI Symbols: k, M, G, ... - - Short scale with US abbreviations: K, M, B, T - - Short scale with UK abbreviations: k, m, bn, tn - Can be set to custom format with a comma separated list of strings - e.g: 'thousand,million,billion,trillion' - oneOf: - - type: string - enum: [SISymbol, shortScaleSymbolUS, shortScaleSymbolUK] - - { type: string, mask: '/:string:,:string:/' } - - { type: string, mask: '/:string:,:string:,:string:/' } - - { type: string, mask: '/:string:,:string:,:string:,:string:/' } - - type: string + NumberScale: + description: | + Number scale for human readable big number formats. + There are built in formats: + - SI Symbols: k, M, G, ... + - Short scale with US abbreviations: K, M, B, T + - Short scale with UK abbreviations: k, m, bn, tn + Can be set to custom format with a comma separated list of strings + e.g: 'thousand,million,billion,trillion' + oneOf: + - type: string + enum: [SISymbol, shortScaleSymbolUS, shortScaleSymbolUK] + - { type: string, mask: '/:string:,:string:/' } + - { type: string, mask: '/:string:,:string:,:string:/' } + - { type: string, mask: '/:string:,:string:,:string:,:string:/' } + - type: string - Padding: - type: object - description: Padding on the four sides of the bounding rect. - properties: - paddingTop: - description: Top padding of the element. - $ref: Length - nullable: true - paddingRight: - description: Right padding of the element. - $ref: Length - nullable: true - paddingBottom: - description: Bottom padding of the element. - $ref: Length - nullable: true - paddingLeft: - description: Left padding of the element. - $ref: Length - nullable: true + Padding: + type: object + description: Padding on the four sides of the bounding rect. + properties: + paddingTop: + description: Top padding of the element. + $ref: Length + nullable: true + paddingRight: + description: Right padding of the element. + $ref: Length + nullable: true + paddingBottom: + description: Bottom padding of the element. + $ref: Length + nullable: true + paddingLeft: + description: Left padding of the element. + $ref: Length + nullable: true - Font: - type: object - description: Font properties. - properties: - fontFamily: - description: The family of the font. If not set, it inherits the root style font family. - type: string - nullable: true - fontStyle: - description: The style of the font. - type: string - enum: [normal, italic, oblique] - nullable: true - fontWeight: - description: The weight of the font, numbers use the same scale as CSS. - oneOf: - - type: string - enum: [normal, bold] - - type: number - nullable: true - fontSize: - description: The size of the font. Percentage values are relative to the root style font size. - $ref: Length - nullable: true + Font: + type: object + description: Font properties. + properties: + fontFamily: + description: The family of the font. If not set, it inherits the root style font family. + type: string + nullable: true + fontStyle: + description: The style of the font. + type: string + enum: [normal, italic, oblique] + nullable: true + fontWeight: + description: The weight of the font, numbers use the same scale as CSS. + oneOf: + - type: string + enum: [normal, bold] + - type: number + nullable: true + fontSize: + description: The size of the font. Percentage values are relative to the root style font size. + $ref: Length + nullable: true - Box: - type: object - description: Represents a box with border and background. - properties: - backgroundColor: - description: The background color of the element. - $ref: Color - nullable: true - borderColor: - description: The border color of the element. - $ref: Color - nullable: true - borderWidth: - description: The border width of the element. - type: number - nullable: true + Box: + type: object + description: Represents a box with border and background. + properties: + backgroundColor: + description: The background color of the element. + $ref: Color + nullable: true + borderColor: + description: The border color of the element. + $ref: Color + nullable: true + borderWidth: + description: The border width of the element. + type: number + nullable: true - Text: - type: object - description: Text formatting properties. - properties: - color: - description: The color of the displayed text. - $ref: Color - nullable: true - textAlign: - description: The alignment of the displayed text. - type: string - enum: [center, left, right] - nullable: true - backgroundColor: - description: The background color of the displayed text. - $ref: Color - nullable: true - numberFormat: + Text: + type: object + description: Text formatting properties. + properties: + color: + description: The color of the displayed text. + $ref: Color + nullable: true + textAlign: + description: The alignment of the displayed text. + type: string + enum: [center, left, right] + nullable: true + backgroundColor: + description: The background color of the displayed text. + $ref: Color + nullable: true + numberFormat: + description: | + The format of the number. Only applicable for texts showing numerical + data such as marker and axis labels. 'grouped' uses thousand separators + (e.g. 1 234 567), 'prefixed' uses scientific notation (e.g. 1.234k). + type: string + enum: [none, grouped, prefixed] + nullable: true + maxFractionDigits: + description: The maximum number of digits in fraction part if the text contains a number. + type: number + nullable: true + numberScale: + description: Number scale used for prefixed number format. + $ref: NumberScale + nullable: true + + ColorTransform: description: | - The format of the number. Only applicable for texts showing numerical - data such as marker and axis labels. 'grouped' uses thousand separators - (e.g. 1 234 567), 'prefixed' uses scientific notation (e.g. 1.234k). - type: string - enum: [none, grouped, prefixed] - nullable: true - maxFractionDigits: - description: The maximum number of digits in fraction part if the text contains a number. - type: number - nullable: true - numberScale: - description: Number scale used for prefixed number format. - $ref: NumberScale - nullable: true + The following CSS like filters can be used to alter the color: - ColorTransform: - description: | - The following CSS like filters can be used to alter the color: + - color: overrides the color. + - lightness: lightens or darkens the color; 0 means the original color, -1 + means black, 1 means white. + - grayscale: desaturates the color. 0 means the original color, 1 means fully + desaturated. + - none: no change. + oneOf: + - { type: string, mask: /color\(:Color:\)/ } + - { type: string, mask: /lightness\(:number:\)/ } + - { type: string, mask: /grayscale\(:number:\)/ } + - { type: string, mask: /opacity\(:number:\)/ } + - { type: string, enum: [none] } - - color: overrides the color. - - lightness: lightens or darkens the color; 0 means the original color, -1 - means black, 1 means white. - - grayscale: desaturates the color. 0 means the original color, 1 means fully - desaturated. - - none: no change. - oneOf: - - { type: string, mask: /color\(:Color:\)/ } - - { type: string, mask: /lightness\(:number:\)/ } - - { type: string, mask: /grayscale\(:number:\)/ } - - { type: string, mask: /opacity\(:number:\)/ } - - { type: string, enum: [none] } + OrientedLabel: + $extends: Label + type: object + description: Properties for a rotatable label. + properties: + orientation: + type: string + enum: [normal, tangential, horizontal, vertical] + description: Orientation of the label relatively to the axis or marker it is attached to. + nullable: true + angle: + $ref: Angle + description: Additional rotation of the label. + nullable: true - OrientedLabel: - $extends: Label - type: object - description: Properties for a rotatable label. - properties: - orientation: - type: string - enum: [normal, tangential, horizontal, vertical] - description: Orientation of the label relatively to the axis or marker it is attached to. - nullable: true - angle: - $ref: Angle - description: Additional rotation of the label. - nullable: true + MarkerLabel: + $extends: OrientedLabel + type: object + description: Properties for marker label. + properties: + position: + description: The label position relatively to the marker. + type: string + enum: [center, top, left, bottom, right] + nullable: true + filter: + description: | + Defines the transformation used for calculating the label color + from the marker color. + $ref: ColorTransform + nullable: true + format: + description: | + Sets the order of values on the label if both a measure and a dimension are + present. + type: string + enum: [measureFirst, dimensionsFirst] + nullable: true - MarkerLabel: - $extends: OrientedLabel - type: object - description: Properties for marker label. - properties: - position: - description: The label position relatively to the marker. - type: string - enum: [center, top, left, bottom, right] - nullable: true - filter: - description: | - Defines the transformation used for calculating the label color - from the marker color. - $ref: ColorTransform - nullable: true - format: - description: | - Sets the order of values on the label if both a measure and a dimension are - present. - type: string - enum: [measureFirst, dimensionsFirst] - nullable: true + Guides: + type: object + description: Properties for guide lines. + properties: + color: + description: The color of the guides. + $ref: Color + nullable: true + lineWidth: + description: Line width of the guide in pixel. + type: number + nullable: true - Guides: - type: object - description: Properties for guide lines. - properties: - color: - description: The color of the guides. - $ref: Color - nullable: true - lineWidth: - description: Line width of the guide in pixel. - type: number - nullable: true + Tooltip: + $extends: [Font, Box] + type: object + description: Properties for tooltip. + properties: + layout: + description: The layout of the tooltip text + type: string + enum: [singleLine, multiLine] + color: + description: The foreground color of the tooltip text + $ref: Color + shadowColor: + description: Color of the drop shadow + $ref: Color + borderRadius: + description: Corner radius for the info bubble + type: number + dropShadow: + description: Drop shadow distance from the info bubble + type: number + radius: + description: Data point marker radius + type: number + arrowSize: + description: Base size of the info bubble arrow + type: number + distance: + description: Distance between the data point and the info bubble + type: number + seriesName: + type: string + description: | + Specifies the name of the data series dispalyed + at the first position on the tooltip + nullable: true - Tooltip: - $extends: [Font, Box] - type: object - description: Properties for tooltip. - properties: - layout: - description: The layout of the tooltip text - type: string - enum: [singleLine, multiLine] - color: - description: The foreground color of the tooltip text - $ref: Color - shadowColor: - description: Color of the drop shadow - $ref: Color - borderRadius: - description: Corner radius for the info bubble - type: number - dropShadow: - description: Drop shadow distance from the info bubble - type: number - radius: - description: Data point marker radius - type: number - arrowSize: - description: Base size of the info bubble arrow - type: number - distance: - description: Distance between the data point and the info bubble - type: number - seriesName: - type: string - description: | - Specifies the name of the data series dispalyed - at the first position on the tooltip - nullable: true + Logo: + $extends: Padding + type: object + description: Properties for the logo. + properties: + width: + description: Width of the Vizzu logo + $ref: Length + nullable: true + filter: + description: Color transformation applied on the colored Vizzu Logo + $ref: ColorTransform + nullable: true - Logo: - $extends: Padding - type: object - description: Properties for the logo. - properties: - width: - description: Width of the Vizzu logo - $ref: Length - nullable: true - filter: - description: Color transformation applied on the colored Vizzu Logo - $ref: ColorTransform - nullable: true + DataPoint: + type: object + description: Data related properties of a marker. + properties: + colorGradient: + description: Color gradient used for the measure on the color channel. + $ref: ColorGradient + nullable: true + colorPalette: + description: Color palette used for the dimension on the color channel. + $ref: ColorPalette + nullable: true + minLightness: + description: | + Lightness value associated with the minimum value of the lightness + channel's range. + type: number + nullable: true + maxLightness: + description: | + Lightness value associated with the maximum value of the lightness + channel's range. + type: number + nullable: true + lineMinWidth: + description: | + Minimum of line width specified as proportion of plot area size. + e.g.: 0.01 means 1% of the width of the plot area. + type: number + nullable: true + lineMaxWidth: + description: | + Maximum line width specified as proportion of plot area size. + e.g.: 0.01 means 1% of the width of the plot area. + type: number + nullable: true + circleMinRadius: + description: | + Minimum circle radius specified as proportion of plot area size. + e.g.: 0.01 means 1% of the width of the plot area. + type: number + nullable: true + circleMaxRadius: + description: | + Maximum circle radius specified as proportion of plot area size. + e.g.: 0.01 means 1% of the width of the plot area. + type: number + nullable: true + rectangleSpacing: + description: | + Spacing between bars/columns. The value specifies the size of the + spacing as a factor of the marker size. + e.g.: 0.1 means 10% of marker height/width depending on the chart's orientation. + type: number + nullable: true - DataPoint: - type: object - description: Data related properties of a marker. - properties: - colorGradient: - description: Color gradient used for the measure on the color channel. - $ref: ColorGradient - nullable: true - colorPalette: - description: Color palette used for the dimension on the color channel. - $ref: ColorPalette - nullable: true - minLightness: - description: | - Lightness value associated with the minimum value of the lightness - channel's range. - type: number - nullable: true - maxLightness: - description: | - Lightness value associated with the maximum value of the lightness - channel's range. - type: number - nullable: true - lineMinWidth: - description: | - Minimum of line width specified as proportion of plot area size. - e.g.: 0.01 means 1% of the width of the plot area. - type: number - nullable: true - lineMaxWidth: - description: | - Maximum line width specified as proportion of plot area size. - e.g.: 0.01 means 1% of the width of the plot area. - type: number - nullable: true - circleMinRadius: - description: | - Minimum circle radius specified as proportion of plot area size. - e.g.: 0.01 means 1% of the width of the plot area. - type: number - nullable: true - circleMaxRadius: - description: | - Maximum circle radius specified as proportion of plot area size. - e.g.: 0.01 means 1% of the width of the plot area. - type: number - nullable: true - rectangleSpacing: + Marker: + $extends: DataPoint + type: object + description: Rendering related properties of a marker. + properties: + borderWidth: + description: Width of the marker border in pixels. + type: number + nullable: true + borderOpacity: + description: Opacity of the marker border. + type: number + nullable: true + borderOpacityMode: + type: string + enum: [straight, premultiplied] + nullable: true + fillOpacity: + description: Opacity of the marker fill color. + type: number + nullable: true + guides: + description: Style settings for guide lines drawn for the markers. + $ref: Guides + nullable: true + label: + description: Style settings for the marker labels. + $ref: MarkerLabel + nullable: true + + AxisLabel: description: | - Spacing between bars/columns. The value specifies the size of the - spacing as a factor of the marker size. - e.g.: 0.1 means 10% of marker height/width depending on the chart's orientation. - type: number - nullable: true + Style settings for the values shown on the axis to display the scale + being used or the categories along the axis. + Note: textAlign has no effect on the Axis label. + $extends: OrientedLabel + type: object + properties: + position: + description: Label position relatively to the plot. + type: string + enum: [axis, max-edge, min-edge] + nullable: true + side: + description: Label alignment relatively to the position on the plot. + type: string + enum: [positive, negative] + nullable: true - Marker: - $extends: DataPoint - type: object - description: Rendering related properties of a marker. - properties: - borderWidth: - description: Width of the marker border in pixels. - type: number - nullable: true - borderOpacity: - description: Opacity of the marker border. - type: number - nullable: true - borderOpacityMode: - type: string - enum: [straight, premultiplied] - nullable: true - fillOpacity: - description: Opacity of the marker fill color. - type: number - nullable: true - guides: - description: Style settings for guide lines drawn for the markers. - $ref: Guides - nullable: true - label: - description: Style settings for the marker labels. - $ref: MarkerLabel - nullable: true + AxisTitle: + description: Style settings of the Axis title + $extends: Label + type: object + properties: + position: + description: Title position relatively to the plot. + type: string + enum: [axis, min-edge, max-edge] + nullable: true + side: + description: Title alignment relatively to the position on the plot. + type: string + enum: [positive, upon, negative] + nullable: true + vposition: + description: Title position on the axis or edge. + type: string + enum: [begin, middle, end] + nullable: true + vside: + description: Title alignment on the axis or edge. + type: string + enum: [positive, upon, negative] + nullable: true + orientation: + description: The orientation of the title. + type: string + enum: [horizontal, vertical] + nullable: true - AxisLabel: - description: | - Style settings for the values shown on the axis to display the scale - being used or the categories along the axis. - Note: textAlign has no effect on the Axis label. - $extends: OrientedLabel - type: object - properties: - position: - description: Label position relatively to the plot. - type: string - enum: [axis, max-edge, min-edge] - nullable: true - side: - description: Label alignment relatively to the position on the plot. - type: string - enum: [positive, negative] - nullable: true + Ticks: + type: object + description: Properties for axis ticks. + properties: + color: + description: Color of the ticks on the axis. + $ref: Color + nullable: true + lineWidth: + description: Line width of the ticks on the axis. + type: number + nullable: true + length: + description: Length of the ticks on the axis. + $ref: Length + nullable: true + position: + description: Position of the ticks on the axis relatively to the axis line. + type: string + enum: [outside, inside, center] + nullable: true - AxisTitle: - description: Style settings of the Axis title - $extends: Label - type: object - properties: - position: - description: Title position relatively to the plot. - type: string - enum: [axis, min-edge, max-edge] - nullable: true - side: - description: Title alignment relatively to the position on the plot. - type: string - enum: [positive, upon, negative] - nullable: true - vposition: - description: Title position on the axis or edge. - type: string - enum: [begin, middle, end] - nullable: true - vside: - description: Title alignment on the axis or edge. - type: string - enum: [positive, upon, negative] - nullable: true - orientation: - description: The orientation of the title. - type: string - enum: [horizontal, vertical] - nullable: true + Interlacing: + type: object + description: Properties for axis interlacing. + properties: + color: + description: Color of the interlacing pattern. + $ref: Color + nullable: true - Ticks: - type: object - description: Properties for axis ticks. - properties: - color: - description: Color of the ticks on the axis. - $ref: Color - nullable: true - lineWidth: - description: Line width of the ticks on the axis. - type: number - nullable: true - length: - description: Length of the ticks on the axis. - $ref: Length - nullable: true - position: - description: Position of the ticks on the axis relatively to the axis line. - type: string - enum: [outside, inside, center] - nullable: true + Axis: + type: object + description: Properties for an axis. + properties: + color: + description: Color of the axis line. + $ref: Color + nullable: true + title: + description: Style parameters of the axis title. + $ref: AxisTitle + nullable: true + label: + description: Style parameters of the axis labels. + $ref: AxisLabel + nullable: true + ticks: + $ref: Ticks + nullable: true + guides: + $ref: Guides + nullable: true + interlacing: + $ref: Interlacing + nullable: true - Interlacing: - type: object - description: Properties for axis interlacing. - properties: - color: - description: Color of the interlacing pattern. - $ref: Color - nullable: true + Plot: + $extends: [Padding, Box] + type: object + description: Properties for the plot. + properties: + marker: + description: Style settings for the markers. + $ref: Marker + nullable: true + xAxis: + description: Style settings for the x-axis - or the angle when using polar coordinates. + $ref: Axis + nullable: true + yAxis: + description: Style settings for the y-axis - or the radius when using polar coordinates. + $ref: Axis + nullable: true + areaColor: + description: Color of the plot area. + $ref: Color + nullable: true + overflow: + description: | + Controls drawing outside of the plot area. If hidden, clipping will be + set for the boundary of the coordinate system. + type: string + enum: [hidden, visible] + nullable: true - Axis: - type: object - description: Properties for an axis. - properties: - color: - description: Color of the axis line. - $ref: Color - nullable: true - title: - description: Style parameters of the axis title. - $ref: AxisTitle - nullable: true - label: - description: Style parameters of the axis labels. - $ref: AxisLabel - nullable: true - ticks: - $ref: Ticks - nullable: true - guides: - $ref: Guides - nullable: true - interlacing: - $ref: Interlacing - nullable: true + LegendMarker: + type: object + description: Properties for markers on the legend. + properties: + type: + description: Shape of the legend marker. + type: string + enum: [circle, square] + nullable: true + size: + description: Size of the legend marker (diameter or side length). + $ref: Length + nullable: true - Plot: - $extends: [Padding, Box] - type: object - description: Properties for the plot. - properties: - marker: - description: Style settings for the markers. - $ref: Marker - nullable: true - xAxis: - description: Style settings for the x-axis - or the angle when using polar coordinates. - $ref: Axis - nullable: true - yAxis: - description: Style settings for the y-axis - or the radius when using polar coordinates. - $ref: Axis - nullable: true - areaColor: - description: Color of the plot area. - $ref: Color - nullable: true - overflow: - description: | - Controls drawing outside of the plot area. If hidden, clipping will be - set for the boundary of the coordinate system. - type: string - enum: [hidden, visible] - nullable: true + Legend: + $extends: [Padding, Box] + type: object + description: Properties for the legend. + properties: + width: + description: Width of the legend's boundary box. + $ref: Length + nullable: true + maxWidth: + description: Limit for the width of the boundary box. + $ref: Length + nullable: true + title: + description: Style settings for the legend's title. + $ref: Label + nullable: true + label: + description: Style settings for the labels on the legend. + $ref: Label + nullable: true + marker: + $ref: LegendMarker + nullable: true - LegendMarker: - type: object - description: Properties for markers on the legend. - properties: - type: - description: Shape of the legend marker. + ColorStop: + description: | + Color and position pairs separated by spaces, + where position is a number between 0 and 1. type: string - enum: [circle, square] - nullable: true - size: - description: Size of the legend marker (diameter or side length). - $ref: Length - nullable: true + mask: '/:Color: :number:/' - Legend: - $extends: [Padding, Box] - type: object - description: Properties for the legend. - properties: - width: - description: Width of the legend's boundary box. - $ref: Length - nullable: true - maxWidth: - description: Limit for the width of the boundary box. - $ref: Length - nullable: true - title: - description: Style settings for the legend's title. - $ref: Label - nullable: true - label: - description: Style settings for the labels on the legend. - $ref: Label - nullable: true - marker: - $ref: LegendMarker - nullable: true - - ColorStop: - description: | - Color and position pairs separated by spaces, - where position is a number between 0 and 1. - type: string - mask: '/:Color: :number:/' - - ColorGradient: - description: | - Color gradient is specified by a comma separated list of ColorStops. - This is used when a measure is on the color channel. - oneOf: - - $ref: ColorStop - - { type: string, mask: '/:ColorStop:,:ColorStop:/' } - - { type: string, mask: '/:ColorStop:,:ColorStop:,:ColorStop:/' } - - { type: string, mask: '/:ColorStop:,:ColorStop:,:ColorStop:,:ColorStop:/' } - - { type: string, mask: '/:ColorStop:,:ColorStop:,:ColorStop:,:ColorStop:,:ColorStop:/' } - - type: string + ColorGradient: + description: | + Color gradient is specified by a comma separated list of ColorStops. + This is used when a measure is on the color channel. + oneOf: + - $ref: ColorStop + - { type: string, mask: '/:ColorStop:,:ColorStop:/' } + - { type: string, mask: '/:ColorStop:,:ColorStop:,:ColorStop:/' } + - { type: string, mask: '/:ColorStop:,:ColorStop:,:ColorStop:,:ColorStop:/' } + - { + type: string, + mask: '/:ColorStop:,:ColorStop:,:ColorStop:,:ColorStop:,:ColorStop:/' + } + - type: string - ColorPalette: - description: | - Color palette is a list of colors separated by spaces. - This is used when only dimensions are on the color channel - oneOf: - - $ref: Color - - { type: string, mask: '/:Color: :Color:/' } - - { type: string, mask: '/:Color: :Color: :Color:/' } - - { type: string, mask: '/:Color: :Color: :Color: :Color:/' } - - { type: string, mask: '/:Color: :Color: :Color: :Color: :Color:/' } - - type: string + ColorPalette: + description: | + Color palette is a list of colors separated by spaces. + This is used when only dimensions are on the color channel + oneOf: + - $ref: Color + - { type: string, mask: '/:Color: :Color:/' } + - { type: string, mask: '/:Color: :Color: :Color:/' } + - { type: string, mask: '/:Color: :Color: :Color: :Color:/' } + - { type: string, mask: '/:Color: :Color: :Color: :Color: :Color:/' } + - type: string - Label: - description: Represents a Label. - allOf: - - $ref: Padding - - $ref: Font - - $ref: Text + Label: + description: Represents a Label. + allOf: + - $ref: Padding + - $ref: Font + - $ref: Text - Chart: - $extends: [Padding, Box, Font] - type: object - description: Properties for the chart. - properties: - plot: - description: Style settings for the plot area. - $ref: Plot - nullable: true - legend: - description: Style settings for the legend. - $ref: Legend - nullable: true - title: - description: Style settings for the main chart title. - $ref: Label - nullable: true - subtitle: - description: Style settings for the main chart subtitle. - $ref: Label - nullable: true - caption: - description: Style settings for the main chart caption. - $ref: Label - nullable: true - tooltip: - description: Style settings for the tooltip. - $ref: Tooltip - nullable: true - logo: - description: Style settings of the Vizzu logo. - $ref: Logo - nullable: true + Chart: + $extends: [Padding, Box, Font] + type: object + description: Properties for the chart. + properties: + plot: + description: Style settings for the plot area. + $ref: Plot + nullable: true + legend: + description: Style settings for the legend. + $ref: Legend + nullable: true + title: + description: Style settings for the main chart title. + $ref: Label + nullable: true + subtitle: + description: Style settings for the main chart subtitle. + $ref: Label + nullable: true + caption: + description: Style settings for the main chart caption. + $ref: Label + nullable: true + tooltip: + description: Style settings for the tooltip. + $ref: Tooltip + nullable: true + logo: + description: Style settings of the Vizzu logo. + $ref: Logo + nullable: true diff --git a/src/package.json b/src/package.json index 926f66c9f..97bddd5da 100644 --- a/src/package.json +++ b/src/package.json @@ -1,4 +1,4 @@ { - "name": "jest.config.js", - "type": "module" + "name": "jest.config.js", + "type": "module" } diff --git a/test/.eslintrc.cjs b/test/.eslintrc.cjs index c5509baff..cf5c12b8f 100644 --- a/test/.eslintrc.cjs +++ b/test/.eslintrc.cjs @@ -1,10 +1,10 @@ module.exports = { - globals: { - d3: true, - GIF: true, - markerjs2: true, - mjslive: true, - Module: true, - tinycolor: true - } + globals: { + d3: true, + GIF: true, + markerjs2: true, + mjslive: true, + Module: true, + tinycolor: true + } } diff --git a/test/integration/accept-changes.cjs b/test/integration/accept-changes.cjs index ebcd9c8e4..396dda8d0 100644 --- a/test/integration/accept-changes.cjs +++ b/test/integration/accept-changes.cjs @@ -2,25 +2,25 @@ const fs = require('fs') const prettier = require('prettier') function copyHashes(failHashFile, refHashFile) { - const failHashData = JSON.parse(fs.readFileSync(failHashFile)) - const refHashData = JSON.parse(fs.readFileSync(refHashFile)) + const failHashData = JSON.parse(fs.readFileSync(failHashFile)) + const refHashData = JSON.parse(fs.readFileSync(refHashFile)) - for (const testFilename in failHashData.test) { - if (!refHashData.test[testFilename]) { - refHashData.test[testFilename] = { - refs: [failHashData.test[testFilename].refs[0]] - } - } else if (refHashData.test[testFilename].refs[0] !== '') - refHashData.test[testFilename].refs[0] = failHashData.test[testFilename].refs[0] - } + for (const testFilename in failHashData.test) { + if (!refHashData.test[testFilename]) { + refHashData.test[testFilename] = { + refs: [failHashData.test[testFilename].refs[0]] + } + } else if (refHashData.test[testFilename].refs[0] !== '') + refHashData.test[testFilename].refs[0] = failHashData.test[testFilename].refs[0] + } - const formattedRefHashDataReady = prettier.format(JSON.stringify(refHashData, null, 2), { - parser: 'json', - tabWidth: 2 - }) - formattedRefHashDataReady.then((formattedRefHashData) => { - fs.writeFileSync(refHashFile, formattedRefHashData) - }) + const formattedRefHashDataReady = prettier.format(JSON.stringify(refHashData, null, 2), { + parser: 'json', + tabWidth: 2 + }) + formattedRefHashDataReady.then((formattedRefHashData) => { + fs.writeFileSync(refHashFile, formattedRefHashData) + }) } copyHashes('test_report/results/test_cases/test_cases.json', 'test_cases/test_cases.json') diff --git a/test/integration/man.cjs b/test/integration/man.cjs index bf4450bf2..fe6f58d5d 100644 --- a/test/integration/man.cjs +++ b/test/integration/man.cjs @@ -3,7 +3,7 @@ const yargs = require('yargs') const ManualServer = require('./tools/manual/server/main.cjs') try { - const usage = ` + const usage = ` Usage: $0 [tests] [options] This program allows for the manual testing of Vizzu. The program provides the following options: @@ -16,46 +16,52 @@ Select a test case in the third column to play. The animation of the selected test case will be displayed using the chosen Vizzu versions. ` - const argv = yargs - .usage(usage) - - .help('h') - .alias('h', 'help') - .version(false) - - .alias('p', 'port') - .describe('p', "Change workspace host's port") - .nargs('p', 1) - .default('p', '8080') - - .array('c') - .alias('c', 'configs') - .nargs('c', 1) - .describe( - 'c', - "Change the list of configuration files' path of the test cases" + - '\n(relative or absolute path where the repo folder is the root)' - ) - .default('c', [ - '/test/integration/test_cases/test_cases.json', - '/test/integration/tests/config_tests.json', - '/test/integration/tests/style_tests.json', - '/test/integration/tests/features.json', - '/test/integration/tests/fixes.json' - ]) - - .example([ - ['$0', 'Select all tests'], - ['$0 area_carte_2_polar.mjs', 'Select test case with name'], - ['$0 area_carte_2_polar', 'Select test case with name (without extension)'], - ['$0 area_carte_2_polar rectangle_carte_2_polar', 'Select test cases with name'], - ['$0 basic_animations/coordsystems/area_carte_2_polar.mjs', 'Select test case with path'], - ['$0 ./test_cases/basic_animations/coordsystems/*', 'Select test cases with glob pattern'] - ]).argv - - const manual = new ManualServer(argv.configs, argv._, argv.port) - manual.run() + const argv = yargs + .usage(usage) + + .help('h') + .alias('h', 'help') + .version(false) + + .alias('p', 'port') + .describe('p', "Change workspace host's port") + .nargs('p', 1) + .default('p', '8080') + + .array('c') + .alias('c', 'configs') + .nargs('c', 1) + .describe( + 'c', + "Change the list of configuration files' path of the test cases" + + '\n(relative or absolute path where the repo folder is the root)' + ) + .default('c', [ + '/test/integration/test_cases/test_cases.json', + '/test/integration/tests/config_tests.json', + '/test/integration/tests/style_tests.json', + '/test/integration/tests/features.json', + '/test/integration/tests/fixes.json' + ]) + + .example([ + ['$0', 'Select all tests'], + ['$0 area_carte_2_polar.mjs', 'Select test case with name'], + ['$0 area_carte_2_polar', 'Select test case with name (without extension)'], + ['$0 area_carte_2_polar rectangle_carte_2_polar', 'Select test cases with name'], + [ + '$0 basic_animations/coordsystems/area_carte_2_polar.mjs', + 'Select test case with path' + ], + [ + '$0 ./test_cases/basic_animations/coordsystems/*', + 'Select test cases with glob pattern' + ] + ]).argv + + const manual = new ManualServer(argv.configs, argv._, argv.port) + manual.run() } catch (err) { - process.exitCode = 1 - console.error(err) + process.exitCode = 1 + console.error(err) } diff --git a/test/integration/modules/browser/browsers-chrome.cjs b/test/integration/modules/browser/browsers-chrome.cjs index a9f2c216e..cc2457ba7 100644 --- a/test/integration/modules/browser/browsers-chrome.cjs +++ b/test/integration/modules/browser/browsers-chrome.cjs @@ -4,102 +4,102 @@ const fs = require('fs') const Chrome = require('../../modules/browser/puppeteer-chrome.cjs') class BrowsersChrome { - #browsers = [] + #browsers = [] - #browsersNum - #browsersGui + #browsersNum + #browsersGui - #browsersLogPath - #browsersLogFilePrefix - #browsersLogTimeStamp + #browsersLogPath + #browsersLogFilePrefix + #browsersLogTimeStamp - #timeout = 30000 + #timeout = 30000 - constructor( - browsersNum, - browsersGui, - browsersLogPath = undefined, - browsersLogTimeStamp = undefined - ) { - this.setBrowsersNum(browsersNum) - this.#browsersGui = browsersGui - if (browsersLogPath && browsersLogTimeStamp) { - this.#browsersLogPath = browsersLogPath - this.#browsersLogFilePrefix = 'chrome' - this.#browsersLogTimeStamp = browsersLogTimeStamp - } else { - if (browsersLogPath || browsersLogTimeStamp) { - throw new Error('parameter is required') - } - } - } + constructor( + browsersNum, + browsersGui, + browsersLogPath = undefined, + browsersLogTimeStamp = undefined + ) { + this.setBrowsersNum(browsersNum) + this.#browsersGui = browsersGui + if (browsersLogPath && browsersLogTimeStamp) { + this.#browsersLogPath = browsersLogPath + this.#browsersLogFilePrefix = 'chrome' + this.#browsersLogTimeStamp = browsersLogTimeStamp + } else { + if (browsersLogPath || browsersLogTimeStamp) { + throw new Error('parameter is required') + } + } + } - startBrowsers() { - const browsersReady = [] - for (let i = 0; i < this.#browsersNum; i++) { - const browser = new Chrome(!this.#browsersGui) - this.#browsers.push(browser) - browsersReady.push(browser.initializing) - } - return Promise.all(browsersReady) - } + startBrowsers() { + const browsersReady = [] + for (let i = 0; i < this.#browsersNum; i++) { + const browser = new Chrome(!this.#browsersGui) + this.#browsers.push(browser) + browsersReady.push(browser.initializing) + } + return Promise.all(browsersReady) + } - closeBrowsers() { - this.#browsers.forEach((browser, index) => { - if (browser) { - let browserLogReady = new Promise((resolve) => { - resolve() - }) - if (this.#browsersLogPath) { - browserLogReady = new Promise((resolve, reject) => { - fs.mkdir(this.#browsersLogPath, { recursive: true, force: true }, (err) => { - if (err) { - return reject(err) - } - return resolve( - path.join( - this.#browsersLogPath, - this.#browsersLogFilePrefix + - '_' + - index + - '_' + - this.#browsersLogTimeStamp + - '.log' - ) - ) - }) - }) - } - browserLogReady.then((browserLog) => { - browser.closeBrowser(browserLog) - }) - } - }) - } + closeBrowsers() { + this.#browsers.forEach((browser, index) => { + if (browser) { + let browserLogReady = new Promise((resolve) => { + resolve() + }) + if (this.#browsersLogPath) { + browserLogReady = new Promise((resolve, reject) => { + fs.mkdir(this.#browsersLogPath, { recursive: true, force: true }, (err) => { + if (err) { + return reject(err) + } + return resolve( + path.join( + this.#browsersLogPath, + this.#browsersLogFilePrefix + + '_' + + index + + '_' + + this.#browsersLogTimeStamp + + '.log' + ) + ) + }) + }) + } + browserLogReady.then((browserLog) => { + browser.closeBrowser(browserLog) + }) + } + }) + } - shiftBrowser() { - return this.#browsers.shift() - } + shiftBrowser() { + return this.#browsers.shift() + } - pushBrowser(browser) { - this.#browsers.push(browser) - } + pushBrowser(browser) { + this.#browsers.push(browser) + } - getBrowsersNum() { - return this.#browsersNum - } + getBrowsersNum() { + return this.#browsersNum + } - setBrowsersNum(browsersNum) { - browsersNum = parseInt(browsersNum) - if (isNaN(browsersNum)) { - throw new Error('browsersNum is integer') - } - this.#browsersNum = browsersNum - } + setBrowsersNum(browsersNum) { + browsersNum = parseInt(browsersNum) + if (isNaN(browsersNum)) { + throw new Error('browsersNum is integer') + } + this.#browsersNum = browsersNum + } - getTimeout() { - return this.#timeout - } + getTimeout() { + return this.#timeout + } } module.exports = BrowsersChrome diff --git a/test/integration/modules/browser/puppeteer-chrome.cjs b/test/integration/modules/browser/puppeteer-chrome.cjs index 28aa2e5bd..cdc4a2f87 100644 --- a/test/integration/modules/browser/puppeteer-chrome.cjs +++ b/test/integration/modules/browser/puppeteer-chrome.cjs @@ -3,89 +3,100 @@ const puppeteer = require('puppeteer-extra') const PuppeteerUserPreferences = require('puppeteer-extra-plugin-user-preferences') class PuppeteerChrome { - initializing + initializing - #browserReady - #pagesReady - #pageReady + #browserReady + #pagesReady + #pageReady - constructor(headless = true) { - this.initializing = this.#startBrowser(headless) - this.logs = [] - } + constructor(headless = true) { + this.initializing = this.#startBrowser(headless) + this.logs = [] + } - async #startBrowser(headless) { - puppeteer.use( - PuppeteerUserPreferences({ - userPrefs: { - download: { - prompt_for_download: false, - default_directory: process.cwd() - } - } - }) - ) + async #startBrowser(headless) { + puppeteer.use( + PuppeteerUserPreferences({ + userPrefs: { + download: { + prompt_for_download: false, + default_directory: process.cwd() + } + } + }) + ) - if (headless) headless = 'new' - this.#browserReady = puppeteer.launch({ - headless, - args: ['--no-sandbox', '--force-device-scale-factor=1', '--start-maximized', '--verbose'] - }) - this.#pagesReady = this.#browserReady.then((browser) => { - return browser.pages() - }) - this.#pageReady = this.#pagesReady.then((pages) => { - return pages[0] - }) - this.#pageReady.then((page) => { - page - .on('console', (message) => { - this.logs.push(message.text()) - }) - .on('pageerror', ({ message }) => this.logs.push(message)) - .on('response', (response) => this.logs.push(`${response.status()} ${response.url()}`)) - .on('requestfailed', (request) => - this.logs.push(`${request.failure().errorText} ${request.url()}`) - ) - .on('popup', (popup) => { - popup.close() - }) - }) - return this.#browserReady - } + if (headless) headless = 'new' + this.#browserReady = puppeteer.launch({ + headless, + args: [ + '--no-sandbox', + '--force-device-scale-factor=1', + '--start-maximized', + '--verbose' + ] + }) + this.#pagesReady = this.#browserReady.then((browser) => { + return browser.pages() + }) + this.#pageReady = this.#pagesReady.then((pages) => { + return pages[0] + }) + this.#pageReady.then((page) => { + page.on('console', (message) => { + this.logs.push(message.text()) + }) + .on('pageerror', ({ message }) => this.logs.push(message)) + .on('response', (response) => + this.logs.push(`${response.status()} ${response.url()}`) + ) + .on('requestfailed', (request) => + this.logs.push(`${request.failure().errorText} ${request.url()}`) + ) + .on('popup', (popup) => { + popup.close() + }) + }) + return this.#browserReady + } - async closeBrowser(browserLog) { - this.#browserReady.then((browser) => { - browser.close() - if (browserLog) { - fs.appendFile(browserLog, this.logs.join('\n'), (err) => { - if (err) { - throw err - } - }) - } - }) - } + async closeBrowser(browserLog) { + this.#browserReady.then((browser) => { + browser.close() + if (browserLog) { + fs.appendFile(browserLog, this.logs.join('\n'), (err) => { + if (err) { + throw err + } + }) + } + }) + } - getUrl(url) { - return this.#pageReady.then((page) => { - return page.goto(url) - }) - } + getUrl(url) { + return this.#pageReady.then((page) => { + return page.goto(url) + }) + } - executeScript(script) { - return this.#pageReady.then((page) => { - return page.evaluate(script) - }) - } + executeScript(script) { + return this.#pageReady.then((page) => { + return page.evaluate(script) + }) + } - waitUntilTitleIs(title, timeout) { - return this.#pageReady.then((page) => { - return page.waitForFunction((expectedTitle) => document.title === expectedTitle, {}, title, { - timeout - }) - }) - } + waitUntilTitleIs(title, timeout) { + return this.#pageReady.then((page) => { + return page.waitForFunction( + (expectedTitle) => document.title === expectedTitle, + {}, + title, + { + timeout + } + ) + }) + } } module.exports = PuppeteerChrome diff --git a/test/integration/modules/browser/selenium-chrome.cjs b/test/integration/modules/browser/selenium-chrome.cjs index 26e90a418..5b8a65e7f 100644 --- a/test/integration/modules/browser/selenium-chrome.cjs +++ b/test/integration/modules/browser/selenium-chrome.cjs @@ -4,97 +4,97 @@ const webdriver = require('selenium-webdriver') const chrome = require('selenium-webdriver/chrome') class SeleniumChrome { - initializing + initializing - #chromedriver + #chromedriver - constructor(headless = true) { - this.initializing = this.#startBrowser(headless) - } + constructor(headless = true) { + this.initializing = this.#startBrowser(headless) + } - #startBrowser(headless) { - return new Promise((resolve, reject) => { - const builder = new webdriver.Builder() - this.#chromedriver = builder - .forBrowser('chrome') - .setChromeOptions(this.#setBrowserOptions(headless)) - .withCapabilities(webdriver.Capabilities.chrome()) - .build() - this.#chromedriver - .then(() => { - return resolve() - }) - .catch((err) => { - return reject(err) - }) - }) - } + #startBrowser(headless) { + return new Promise((resolve, reject) => { + const builder = new webdriver.Builder() + this.#chromedriver = builder + .forBrowser('chrome') + .setChromeOptions(this.#setBrowserOptions(headless)) + .withCapabilities(webdriver.Capabilities.chrome()) + .build() + this.#chromedriver + .then(() => { + return resolve() + }) + .catch((err) => { + return reject(err) + }) + }) + } - closeBrowser(browserLog) { - if (this.#chromedriver) { - this.initializing - .then(() => { - let browserLogReady = new Promise((resolve) => { - resolve() - }) - if (browserLog) { - browserLogReady = new Promise((resolve, reject) => { - this.#chromedriver - .manage() - .logs() - .get(webdriver.logging.Type.BROWSER) - .then((logs) => { - for (const entry of logs) { - fs.appendFile(browserLog, entry.message, function (err) { - if (err) { - return reject(err) - } - }) - } - return resolve() - }) - }) - } - browserLogReady.then(() => { - this.#chromedriver.quit().catch((err) => { - const errMsg = err.toString() - if (!errMsg.includes('ECONNREFUSED connect ECONNREFUSED')) { - throw err - } - }) - }) - }) - .catch((err) => { - console.log(err) - }) - } - } + closeBrowser(browserLog) { + if (this.#chromedriver) { + this.initializing + .then(() => { + let browserLogReady = new Promise((resolve) => { + resolve() + }) + if (browserLog) { + browserLogReady = new Promise((resolve, reject) => { + this.#chromedriver + .manage() + .logs() + .get(webdriver.logging.Type.BROWSER) + .then((logs) => { + for (const entry of logs) { + fs.appendFile(browserLog, entry.message, function (err) { + if (err) { + return reject(err) + } + }) + } + return resolve() + }) + }) + } + browserLogReady.then(() => { + this.#chromedriver.quit().catch((err) => { + const errMsg = err.toString() + if (!errMsg.includes('ECONNREFUSED connect ECONNREFUSED')) { + throw err + } + }) + }) + }) + .catch((err) => { + console.log(err) + }) + } + } - #setBrowserOptions(headless) { - const options = new chrome.Options() - const prefs = new webdriver.logging.Preferences() - prefs.setLevel(webdriver.logging.Type.BROWSER, webdriver.logging.Level.ALL) - options.setLoggingPrefs(prefs) - options.addArguments('force-device-scale-factor=1') - options.addArguments('start-maximized') - options.addArguments('--verbose') - if (headless) { - options.addArguments('--headless', '--no-sandbox', '--disable-dev-shm-usage') - } - return options - } + #setBrowserOptions(headless) { + const options = new chrome.Options() + const prefs = new webdriver.logging.Preferences() + prefs.setLevel(webdriver.logging.Type.BROWSER, webdriver.logging.Level.ALL) + options.setLoggingPrefs(prefs) + options.addArguments('force-device-scale-factor=1') + options.addArguments('start-maximized') + options.addArguments('--verbose') + if (headless) { + options.addArguments('--headless', '--no-sandbox', '--disable-dev-shm-usage') + } + return options + } - getUrl(url) { - return this.#chromedriver.get(url) - } + getUrl(url) { + return this.#chromedriver.get(url) + } - executeScript(script) { - return this.#chromedriver.executeScript(script) - } + executeScript(script) { + return this.#chromedriver.executeScript(script) + } - waitUntilTitleIs(title, timeout) { - return this.#chromedriver.wait(webdriver.until.titleIs(title), timeout) - } + waitUntilTitleIs(title, timeout) { + return this.#chromedriver.wait(webdriver.until.titleIs(title), timeout) + } } module.exports = SeleniumChrome diff --git a/test/integration/modules/console/assert.cjs b/test/integration/modules/console/assert.cjs index dda338539..92b665a3b 100644 --- a/test/integration/modules/console/assert.cjs +++ b/test/integration/modules/console/assert.cjs @@ -1,7 +1,7 @@ const assert = (condition, message) => { - if (!condition) { - throw new Error('Assert failed: ' + (message || '')) - } + if (!condition) { + throw new Error('Assert failed: ' + (message || '')) + } } module.exports = assert diff --git a/test/integration/modules/console/assert.test.cjs b/test/integration/modules/console/assert.test.cjs index d330953b0..c928bd9fb 100644 --- a/test/integration/modules/console/assert.test.cjs +++ b/test/integration/modules/console/assert.test.cjs @@ -1,21 +1,21 @@ const assert = require('./assert.cjs') describe('assert()', () => { - test('if passed', () => { - expect(() => { - assert(true) - }).not.toThrow() - }) + test('if passed', () => { + expect(() => { + assert(true) + }).not.toThrow() + }) - test('if failed without msg', () => { - expect(() => { - assert(false) - }).toThrow('Assert failed: ') - }) + test('if failed without msg', () => { + expect(() => { + assert(false) + }).toThrow('Assert failed: ') + }) - test('if failed with msg', () => { - expect(() => { - assert(false, 'err msg') - }).toThrow('Assert failed: err msg') - }) + test('if failed with msg', () => { + expect(() => { + assert(false, 'err msg') + }).toThrow('Assert failed: err msg') + }) }) diff --git a/test/integration/modules/console/console.cjs b/test/integration/modules/console/console.cjs index fe358abb0..3120616b1 100644 --- a/test/integration/modules/console/console.cjs +++ b/test/integration/modules/console/console.cjs @@ -4,84 +4,84 @@ const cnsl = require('console') const strip = require('strip-color') const colors = require('colors') colors.setTheme({ - warn: 'yellow', - error: 'red', - success: 'green' + warn: 'yellow', + error: 'red', + success: 'green' }) class Console { - #timeStamp - #logFile - #fileConsoleReady + #timeStamp + #logFile + #fileConsoleReady - constructor(logPrefix = undefined, logPath = undefined) { - this.#setTimestamp(new Date()) - this.#setLogFile(logPrefix, logPath) - } + constructor(logPrefix = undefined, logPath = undefined) { + this.#setTimestamp(new Date()) + this.#setLogFile(logPrefix, logPath) + } - log(msg) { - return new Promise((resolve, reject) => { - if (!msg) { - // eslint-disable-next-line prefer-promise-reject-errors - return reject('parameter is required') - } - console.log(msg) - if (!this.#logFile) { - return resolve() - } else { - if (!this.#fileConsoleReady) { - this.#fileConsoleReady = this.#setFileConsole() - } - this.#fileConsoleReady - .then((fileConsole) => { - fileConsole.log(strip(msg)) - return resolve() - }) - .catch((err) => { - return reject(err) - }) - } - }) - } + log(msg) { + return new Promise((resolve, reject) => { + if (!msg) { + // eslint-disable-next-line prefer-promise-reject-errors + return reject('parameter is required') + } + console.log(msg) + if (!this.#logFile) { + return resolve() + } else { + if (!this.#fileConsoleReady) { + this.#fileConsoleReady = this.#setFileConsole() + } + this.#fileConsoleReady + .then((fileConsole) => { + fileConsole.log(strip(msg)) + return resolve() + }) + .catch((err) => { + return reject(err) + }) + } + }) + } - getTimeStamp() { - return this.#timeStamp - } + getTimeStamp() { + return this.#timeStamp + } - getLogFile() { - return this.#logFile - } + getLogFile() { + return this.#logFile + } - #setTimestamp(date) { - this.#timeStamp = - date.getFullYear() + - (date.getMonth() + 1).toString().padStart(2, 0) + - date.getDate().toString().padStart(2, 0) + - '_' + - date.getHours().toString().padStart(2, 0) + - date.getMinutes().toString().padStart(2, 0) + - date.getSeconds().toString().padStart(2, 0) - } + #setTimestamp(date) { + this.#timeStamp = + date.getFullYear() + + (date.getMonth() + 1).toString().padStart(2, 0) + + date.getDate().toString().padStart(2, 0) + + '_' + + date.getHours().toString().padStart(2, 0) + + date.getMinutes().toString().padStart(2, 0) + + date.getSeconds().toString().padStart(2, 0) + } - #setLogFile(logPrefix, logPath) { - if (logPrefix && logPath) { - this.#logFile = path.join(logPath, logPrefix + '_' + this.#timeStamp + '.log') - } else if (logPrefix && !logPath) { - this.#logFile = path.join(process.cwd(), logPrefix + '_' + this.#timeStamp + '.log') - } - } + #setLogFile(logPrefix, logPath) { + if (logPrefix && logPath) { + this.#logFile = path.join(logPath, logPrefix + '_' + this.#timeStamp + '.log') + } else if (logPrefix && !logPath) { + this.#logFile = path.join(process.cwd(), logPrefix + '_' + this.#timeStamp + '.log') + } + } - #setFileConsole() { - return new Promise((resolve, reject) => { - fs.mkdir(path.dirname(this.#logFile), { recursive: true }, (err) => { - if (err) { - return reject(err) - } - const out = fs.createWriteStream(this.#logFile) - return resolve(new cnsl.Console(out, out)) - }) - }) - } + #setFileConsole() { + return new Promise((resolve, reject) => { + fs.mkdir(path.dirname(this.#logFile), { recursive: true }, (err) => { + if (err) { + return reject(err) + } + const out = fs.createWriteStream(this.#logFile) + return resolve(new cnsl.Console(out, out)) + }) + }) + } } module.exports = Console diff --git a/test/integration/modules/console/console.test.cjs b/test/integration/modules/console/console.test.cjs index 279f64a47..d699d4678 100644 --- a/test/integration/modules/console/console.test.cjs +++ b/test/integration/modules/console/console.test.cjs @@ -3,168 +3,168 @@ const path = require('path') const fs = require('fs') describe('new Console()', () => { - test('if logFile is undefined', () => { - const cnsl = new Console() - const logFile = cnsl.getLogFile() - expect(logFile).toBeUndefined() - }) - - test('if timeStamp is valid', () => { - const startDate = new Date() - const cnsl = new Console() - const timeStamp = cnsl.getTimeStamp() - expect(timeStamp.length).toBe(15) - const separator = timeStamp.substring(8, 9) - expect(separator).toBe('_') - const year = timeStamp.substring(0, 4) - const month = timeStamp.substring(4, 6) - 1 - const day = timeStamp.substring(6, 8) - const hour = timeStamp.substring(9, 11) - const min = timeStamp.substring(11, 13) - const sec = timeStamp.substring(13, 15) - const timeStampDateMin = new Date(year, month, day, hour, min, sec, 0) - const timeStampDateMax = new Date(year, month, day, hour, min, sec, 999) - const endDate = new Date() - expect(timeStampDateMin).toBeBeforeOrEqualTo(endDate) - expect(timeStampDateMax).toBeAfterOrEqualTo(startDate) - }) + test('if logFile is undefined', () => { + const cnsl = new Console() + const logFile = cnsl.getLogFile() + expect(logFile).toBeUndefined() + }) + + test('if timeStamp is valid', () => { + const startDate = new Date() + const cnsl = new Console() + const timeStamp = cnsl.getTimeStamp() + expect(timeStamp.length).toBe(15) + const separator = timeStamp.substring(8, 9) + expect(separator).toBe('_') + const year = timeStamp.substring(0, 4) + const month = timeStamp.substring(4, 6) - 1 + const day = timeStamp.substring(6, 8) + const hour = timeStamp.substring(9, 11) + const min = timeStamp.substring(11, 13) + const sec = timeStamp.substring(13, 15) + const timeStampDateMin = new Date(year, month, day, hour, min, sec, 0) + const timeStampDateMax = new Date(year, month, day, hour, min, sec, 999) + const endDate = new Date() + expect(timeStampDateMin).toBeBeforeOrEqualTo(endDate) + expect(timeStampDateMax).toBeAfterOrEqualTo(startDate) + }) }) describe('new Console(logPrefix)', () => { - test("if logFile's dirname is __dirname", () => { - const cnsl = new Console(logPrefix) - const logFile = cnsl.getLogFile() - expect(path.dirname(logFile)).toBe(process.cwd()) - }) - - const logPrefix = 'logPrefix' - const cwdSaved = process.cwd() - process.chdir('../') - const cwd = process.cwd() - const cnsl = new Console(logPrefix) - const logFile = cnsl.getLogFile() - process.chdir(cwdSaved) - test("if logFile's dirname is cwd", () => { - expect(path.dirname(logFile)).toBe(cwd) - }) - - test("if logFile's basename starts with logPrefix", () => { - expect(path.basename(logFile)).toStartWith('logPrefix') - }) + test("if logFile's dirname is __dirname", () => { + const cnsl = new Console(logPrefix) + const logFile = cnsl.getLogFile() + expect(path.dirname(logFile)).toBe(process.cwd()) + }) + + const logPrefix = 'logPrefix' + const cwdSaved = process.cwd() + process.chdir('../') + const cwd = process.cwd() + const cnsl = new Console(logPrefix) + const logFile = cnsl.getLogFile() + process.chdir(cwdSaved) + test("if logFile's dirname is cwd", () => { + expect(path.dirname(logFile)).toBe(cwd) + }) + + test("if logFile's basename starts with logPrefix", () => { + expect(path.basename(logFile)).toStartWith('logPrefix') + }) }) describe('new Console(logPrefix, logPath)', () => { - const logPrefix = 'logPrefix' - const logPath = './logPath' - const cnsl = new Console(logPrefix, logPath) - const logFile = cnsl.getLogFile() - const timeStamp = cnsl.getTimeStamp() - test('if logFile is logPath/logPrefix_timeStamp.log', () => { - expect(logFile).toBe(path.join(logPath, logPrefix + '_' + timeStamp + '.log')) - }) + const logPrefix = 'logPrefix' + const logPath = './logPath' + const cnsl = new Console(logPrefix, logPath) + const logFile = cnsl.getLogFile() + const timeStamp = cnsl.getTimeStamp() + test('if logFile is logPath/logPrefix_timeStamp.log', () => { + expect(logFile).toBe(path.join(logPath, logPrefix + '_' + timeStamp + '.log')) + }) }) describe('new Console().cnsl.log()', () => { - test('if cnsl.log() does not log', () => { - const cnsl = new Console() - return expect(cnsl.log()).rejects.toBe('parameter is required') - }) - - test('if cnsl.log("Hello World") logs "Hello World"', () => { - const msg = 'Hello World' - const somethingSpy = jest.spyOn(console, 'log').mockImplementation(() => {}) - const cnsl = new Console() - return cnsl.log(msg).then(() => { - expect(somethingSpy).toBeCalledWith(msg) - }) - }) + test('if cnsl.log() does not log', () => { + const cnsl = new Console() + return expect(cnsl.log()).rejects.toBe('parameter is required') + }) + + test('if cnsl.log("Hello World") logs "Hello World"', () => { + const msg = 'Hello World' + const somethingSpy = jest.spyOn(console, 'log').mockImplementation(() => {}) + const cnsl = new Console() + return cnsl.log(msg).then(() => { + expect(somethingSpy).toBeCalledWith(msg) + }) + }) }) describe('new Console(logPrefix, logPath|undefined).cnsl.log()', () => { - let logFile - - afterEach(() => { - fs.rmSync(logFile, { force: true, recursive: true }) - }) - - test('if cnsl.log("Hello World") logs "Hello World" (logPath is undefined)', () => { - const logPrefix = 'logPrefix' - const cnsl = new Console(logPrefix) - logFile = cnsl.getLogFile() - const msg = 'Hello World' - const somethingSpy = jest.spyOn(console, 'log').mockImplementation(() => {}) - - return cnsl.log(msg).then(() => { - expect(somethingSpy).toBeCalledWith(msg) - }) - }) - - test('if cnsl.log("Hello World") logs "Hello World" (logPath)', () => { - const logPrefix = 'logPrefix' - const logPath = path.join(__dirname, '../..', 'test_report/unit/console') - const cnsl = new Console(logPrefix, logPath) - logFile = cnsl.getLogFile() - const msg = 'Hello World' - const somethingSpy = jest.spyOn(console, 'log').mockImplementation(() => {}) - - return cnsl.log(msg).then(() => { - expect(somethingSpy).toBeCalledWith(msg) - }) - }) - - test('if 2xcnsl.log() logs 2x (logPath)', async () => { - const logPrefix = 'logPrefix' - const logPath = path.join(__dirname, '../..', 'test_report/unit/console') - const cnsl = new Console(logPrefix, logPath) - logFile = cnsl.getLogFile() - const msg1 = 'warn' - const msg2 = 'error' - const msg3 = 'success' - const msg4 = 'Hello World' - const somethingSpy = jest.spyOn(console, 'log').mockImplementation(() => {}) - - const logReady = [] - logReady.push(cnsl.log(msg1.warn)) - logReady.push(cnsl.log(msg2.error)) - logReady.push(cnsl.log(msg3.success)) - logReady.push(cnsl.log(msg4)) - await Promise.all(logReady) - - expect(somethingSpy).toBeCalledTimes(4) - expect(somethingSpy).toBeCalledWith(msg1.warn) - expect(somethingSpy).toBeCalledWith(msg2.error) - expect(somethingSpy).toBeCalledWith(msg3.success) - expect(somethingSpy).toBeCalledWith(msg4) - - const checkFileContent = () => { - return fs.promises - .access(cnsl.getLogFile()) - .then(() => fs.promises.readFile(cnsl.getLogFile(), 'utf8')) - .then((data) => { - return data - }) - .catch((err) => { - if (err.code === 'ENOENT') { - return '' - } else { - throw err - } - }) - } - - const checkFileWithTimeout = async (expectedContent, timeoutMs, intervalMs) => { - const startTime = Date.now() - while (Date.now() - startTime < timeoutMs) { - const fileContent = await checkFileContent() - if (fileContent === expectedContent) { - return - } - await new Promise((resolve) => setTimeout(resolve, intervalMs)) - } - throw new Error(`File content did not match within ${timeoutMs}ms`) - } - - const expectedContent = msg1 + '\n' + msg2 + '\n' + msg3 + '\n' + msg4 + '\n' - await checkFileWithTimeout(expectedContent, 2000, 100) - }) + let logFile + + afterEach(() => { + fs.rmSync(logFile, { force: true, recursive: true }) + }) + + test('if cnsl.log("Hello World") logs "Hello World" (logPath is undefined)', () => { + const logPrefix = 'logPrefix' + const cnsl = new Console(logPrefix) + logFile = cnsl.getLogFile() + const msg = 'Hello World' + const somethingSpy = jest.spyOn(console, 'log').mockImplementation(() => {}) + + return cnsl.log(msg).then(() => { + expect(somethingSpy).toBeCalledWith(msg) + }) + }) + + test('if cnsl.log("Hello World") logs "Hello World" (logPath)', () => { + const logPrefix = 'logPrefix' + const logPath = path.join(__dirname, '../..', 'test_report/unit/console') + const cnsl = new Console(logPrefix, logPath) + logFile = cnsl.getLogFile() + const msg = 'Hello World' + const somethingSpy = jest.spyOn(console, 'log').mockImplementation(() => {}) + + return cnsl.log(msg).then(() => { + expect(somethingSpy).toBeCalledWith(msg) + }) + }) + + test('if 2xcnsl.log() logs 2x (logPath)', async () => { + const logPrefix = 'logPrefix' + const logPath = path.join(__dirname, '../..', 'test_report/unit/console') + const cnsl = new Console(logPrefix, logPath) + logFile = cnsl.getLogFile() + const msg1 = 'warn' + const msg2 = 'error' + const msg3 = 'success' + const msg4 = 'Hello World' + const somethingSpy = jest.spyOn(console, 'log').mockImplementation(() => {}) + + const logReady = [] + logReady.push(cnsl.log(msg1.warn)) + logReady.push(cnsl.log(msg2.error)) + logReady.push(cnsl.log(msg3.success)) + logReady.push(cnsl.log(msg4)) + await Promise.all(logReady) + + expect(somethingSpy).toBeCalledTimes(4) + expect(somethingSpy).toBeCalledWith(msg1.warn) + expect(somethingSpy).toBeCalledWith(msg2.error) + expect(somethingSpy).toBeCalledWith(msg3.success) + expect(somethingSpy).toBeCalledWith(msg4) + + const checkFileContent = () => { + return fs.promises + .access(cnsl.getLogFile()) + .then(() => fs.promises.readFile(cnsl.getLogFile(), 'utf8')) + .then((data) => { + return data + }) + .catch((err) => { + if (err.code === 'ENOENT') { + return '' + } else { + throw err + } + }) + } + + const checkFileWithTimeout = async (expectedContent, timeoutMs, intervalMs) => { + const startTime = Date.now() + while (Date.now() - startTime < timeoutMs) { + const fileContent = await checkFileContent() + if (fileContent === expectedContent) { + return + } + await new Promise((resolve) => setTimeout(resolve, intervalMs)) + } + throw new Error(`File content did not match within ${timeoutMs}ms`) + } + + const expectedContent = msg1 + '\n' + msg2 + '\n' + msg3 + '\n' + msg4 + '\n' + await checkFileWithTimeout(expectedContent, 2000, 100) + }) }) diff --git a/test/integration/modules/img/imgdiff.js b/test/integration/modules/img/imgdiff.js index 4438fc94b..09ff90994 100644 --- a/test/integration/modules/img/imgdiff.js +++ b/test/integration/modules/img/imgdiff.js @@ -1,127 +1,133 @@ class ImgDiff { - constructor(frame, frameRef, difCanvas) { - this.frame = frame - this.frameRef = frameRef - this.difCanvas = difCanvas - } - - getDiff() { - const doc = this.frame.contentWindow.document - const docRef = this.frameRef.contentWindow.document - if (doc.vizzuImgData && docRef.vizzuImgData && doc.vizzuImgIndex === docRef.vizzuImgIndex) { - const { width: w, height: h, data } = doc.vizzuImgData - const res = ImgDiff.compare('move', data, docRef.vizzuImgData.data, w, h) - - const dif = new ImageData(res.diffData, w, h) - this.difCanvas.width = 800 - this.difCanvas.height = 500 - const ctx = this.difCanvas.getContext('2d') - ctx.clearRect(0, 0, w, h) - ctx.putImageData(dif, 0, 0) - doc.vizzuImgData = docRef.vizzuImgData = undefined - this.difCanvas.style.border = `1px solid ${res.match ? 'green' : 'red'}` - } - - setTimeout(() => this.getDiff(), 100) - } - - static compare(type, act, ref, w, h) { - let match = true - const diffData = new Uint8ClampedArray(w * h * 4) - for (let i = 0; i < diffData.length; i += 4) { - const same = ImgDiff.isSame(act, ref, i) - if (!same) match = false - - if (type === 'move') ImgDiff.moveDetection(act, ref, diffData, i) - else ImgDiff.changeDetection(act, ref, diffData, i) - - const gray = ImgDiff.gray(act, ref, i) - const c = 0.85 + 0.15 * gray - diffData[i + 0] *= c - diffData[i + 1] *= c - diffData[i + 2] *= c - - diffData[i + 3] = 255 - } - return { match, diffData } - } - - static moveDetection(act, ref, diffData, i) { - const dif = ImgDiff.signDif(act, ref, i) - const dr = dif.pos === 0 ? 0 : 0.2 + 0.8 * dif.pos - const db = dif.neg === 0 ? 0 : 0.2 + 0.8 * dif.neg - diffData[i + 0] = (1 - db) * 255 - diffData[i + 1] = (1 - db) * (1 - dr) * 255 - diffData[i + 2] = (1 - dr) * 255 - } - - static changeDetection(act, ref, diffData, i) { - const difs = ImgDiff.absDifs(act, ref, i) - diffData[i + 0] = difs.r === 0 ? 255 : 0.75 * (255 - difs.r) - diffData[i + 1] = difs.g === 0 ? 255 : 0.75 * (255 - difs.g) - diffData[i + 2] = difs.b === 0 ? 255 : 0.75 * (255 - difs.b) - } - - static signDif(act, ref, i) { - const d = ImgDiff.difs(act, ref, i) - const pos = - (ImgDiff.posdif(d.r) + ImgDiff.posdif(d.g) + ImgDiff.posdif(d.b) + ImgDiff.posdif(d.a)) / - (4 * 255) - const neg = - (ImgDiff.negdif(d.r) + ImgDiff.negdif(d.g) + ImgDiff.negdif(d.b) + ImgDiff.negdif(d.a)) / - (4 * 255) - return { pos, neg } - } - - static absDifs(a, b, i) { - const d = ImgDiff.difs(a, b, i) - return { - r: Math.abs(d.r), - g: Math.abs(d.g), - b: Math.abs(d.b), - a: Math.abs(d.a) - } - } - - static difs(act, ref, i) { - const r = act[i + 0] - ref[i + 0] - const g = act[i + 1] - ref[i + 1] - const b = act[i + 2] - ref[i + 2] - const a = act[i + 3] - ref[i + 3] - return { r, g, b, a } - } - - static gray(act, ref, i) { - return ( - (act[i + 0] + - ref[i + 0] + - act[i + 1] + - ref[i + 1] + - act[i + 2] + - ref[i + 2] + - act[i + 3] + - ref[i + 3]) / - 8 / - 255 - ) - } - - static isSame(act, ref, i) { - return ( - act[i + 0] === ref[i + 0] && - act[i + 1] === ref[i + 1] && - act[i + 2] === ref[i + 2] && - act[i + 3] === ref[i + 3] - ) - } - - static posdif(x) { - return x > 0 ? x : 0 - } - - static negdif(x) { - return x < 0 ? -x : 0 - } + constructor(frame, frameRef, difCanvas) { + this.frame = frame + this.frameRef = frameRef + this.difCanvas = difCanvas + } + + getDiff() { + const doc = this.frame.contentWindow.document + const docRef = this.frameRef.contentWindow.document + if (doc.vizzuImgData && docRef.vizzuImgData && doc.vizzuImgIndex === docRef.vizzuImgIndex) { + const { width: w, height: h, data } = doc.vizzuImgData + const res = ImgDiff.compare('move', data, docRef.vizzuImgData.data, w, h) + + const dif = new ImageData(res.diffData, w, h) + this.difCanvas.width = 800 + this.difCanvas.height = 500 + const ctx = this.difCanvas.getContext('2d') + ctx.clearRect(0, 0, w, h) + ctx.putImageData(dif, 0, 0) + doc.vizzuImgData = docRef.vizzuImgData = undefined + this.difCanvas.style.border = `1px solid ${res.match ? 'green' : 'red'}` + } + + setTimeout(() => this.getDiff(), 100) + } + + static compare(type, act, ref, w, h) { + let match = true + const diffData = new Uint8ClampedArray(w * h * 4) + for (let i = 0; i < diffData.length; i += 4) { + const same = ImgDiff.isSame(act, ref, i) + if (!same) match = false + + if (type === 'move') ImgDiff.moveDetection(act, ref, diffData, i) + else ImgDiff.changeDetection(act, ref, diffData, i) + + const gray = ImgDiff.gray(act, ref, i) + const c = 0.85 + 0.15 * gray + diffData[i + 0] *= c + diffData[i + 1] *= c + diffData[i + 2] *= c + + diffData[i + 3] = 255 + } + return { match, diffData } + } + + static moveDetection(act, ref, diffData, i) { + const dif = ImgDiff.signDif(act, ref, i) + const dr = dif.pos === 0 ? 0 : 0.2 + 0.8 * dif.pos + const db = dif.neg === 0 ? 0 : 0.2 + 0.8 * dif.neg + diffData[i + 0] = (1 - db) * 255 + diffData[i + 1] = (1 - db) * (1 - dr) * 255 + diffData[i + 2] = (1 - dr) * 255 + } + + static changeDetection(act, ref, diffData, i) { + const difs = ImgDiff.absDifs(act, ref, i) + diffData[i + 0] = difs.r === 0 ? 255 : 0.75 * (255 - difs.r) + diffData[i + 1] = difs.g === 0 ? 255 : 0.75 * (255 - difs.g) + diffData[i + 2] = difs.b === 0 ? 255 : 0.75 * (255 - difs.b) + } + + static signDif(act, ref, i) { + const d = ImgDiff.difs(act, ref, i) + const pos = + (ImgDiff.posdif(d.r) + + ImgDiff.posdif(d.g) + + ImgDiff.posdif(d.b) + + ImgDiff.posdif(d.a)) / + (4 * 255) + const neg = + (ImgDiff.negdif(d.r) + + ImgDiff.negdif(d.g) + + ImgDiff.negdif(d.b) + + ImgDiff.negdif(d.a)) / + (4 * 255) + return { pos, neg } + } + + static absDifs(a, b, i) { + const d = ImgDiff.difs(a, b, i) + return { + r: Math.abs(d.r), + g: Math.abs(d.g), + b: Math.abs(d.b), + a: Math.abs(d.a) + } + } + + static difs(act, ref, i) { + const r = act[i + 0] - ref[i + 0] + const g = act[i + 1] - ref[i + 1] + const b = act[i + 2] - ref[i + 2] + const a = act[i + 3] - ref[i + 3] + return { r, g, b, a } + } + + static gray(act, ref, i) { + return ( + (act[i + 0] + + ref[i + 0] + + act[i + 1] + + ref[i + 1] + + act[i + 2] + + ref[i + 2] + + act[i + 3] + + ref[i + 3]) / + 8 / + 255 + ) + } + + static isSame(act, ref, i) { + return ( + act[i + 0] === ref[i + 0] && + act[i + 1] === ref[i + 1] && + act[i + 2] === ref[i + 2] && + act[i + 3] === ref[i + 3] + ) + } + + static posdif(x) { + return x > 0 ? x : 0 + } + + static negdif(x) { + return x < 0 ? -x : 0 + } } export default ImgDiff diff --git a/test/integration/modules/integration-test/client/index.html b/test/integration/modules/integration-test/client/index.html index 158bba355..c01563a95 100644 --- a/test/integration/modules/integration-test/client/index.html +++ b/test/integration/modules/integration-test/client/index.html @@ -1,12 +1,12 @@ <!doctype html> <html> - <head> - <title>Testing... - - - - - - - + + Testing... + + + + + + + diff --git a/test/integration/modules/integration-test/client/index.js b/test/integration/modules/integration-test/client/index.js index bfb9af64c..7d4cb8373 100644 --- a/test/integration/modules/integration-test/client/index.js +++ b/test/integration/modules/integration-test/client/index.js @@ -1,153 +1,160 @@ function catchError(err) { - console.error(err) - let errMsg = err.toString() - if (err.stack !== undefined) { - errMsg = err.stack - } - window.testData = { result: 'ERROR', description: errMsg } - document.title = 'Finished' + console.error(err) + let errMsg = err.toString() + if (err.stack !== undefined) { + errMsg = err.stack + } + window.testData = { result: 'ERROR', description: errMsg } + document.title = 'Finished' } function digestMessage(message) { - return crypto.subtle.digest('SHA-256', message).then((hashBuffer) => { - const hashArray = Array.from(new Uint8Array(hashBuffer)) - const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('') - return hashHex - }) + return crypto.subtle.digest('SHA-256', message).then((hashBuffer) => { + const hashArray = Array.from(new Uint8Array(hashBuffer)) + const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('') + return hashHex + }) } function getAnimStep(testCasesModule, testType, testIndex) { - let animStep - if (testType === 'multi') { - animStep = testCasesModule[testIndex].animStep - } - if (!animStep) { - animStep = 20 - } - return animStep + let animStep + if (testType === 'multi') { + animStep = testCasesModule[testIndex].animStep + } + if (!animStep) { + animStep = 20 + } + return animStep } function getTestSteps(testCasesModule, testType, testIndex) { - let testSteps = [] - if (testType === 'single') { - testSteps = testCasesModule - } else if (testType === 'multi') { - testSteps = testCasesModule[testIndex].testSteps - } - return testSteps + let testSteps = [] + if (testType === 'single') { + testSteps = testCasesModule + } else if (testType === 'multi') { + testSteps = testCasesModule[testIndex].testSteps + } + return testSteps } window.addEventListener('error', (event) => { - catchError(event.error) + catchError(event.error) }) try { - const queryString = window.location.search - const urlParams = new URLSearchParams(queryString) - const testFile = urlParams.get('testFile') - const testType = urlParams.get('testType') - const testIndex = urlParams.get('testIndex') - const vizzuUrl = urlParams.get('vizzuUrl') - const refHash = urlParams.get('refHash') - const createImages = urlParams.get('createImages') - const testData = { result: '', hash: '', seeks: [], images: [], hashes: [] } + const queryString = window.location.search + const urlParams = new URLSearchParams(queryString) + const testFile = urlParams.get('testFile') + const testType = urlParams.get('testType') + const testIndex = urlParams.get('testIndex') + const vizzuUrl = urlParams.get('vizzuUrl') + const refHash = urlParams.get('refHash') + const createImages = urlParams.get('createImages') + const testData = { result: '', hash: '', seeks: [], images: [], hashes: [] } - import(vizzuUrl) - .then((vizzuModule) => { - const Vizzu = vizzuModule.default - return import(testFile + '.mjs').then((testCasesModule) => { - const animStep = getAnimStep(testCasesModule.default, testType, testIndex) - const seeks = [] - for (let seek = parseFloat(animStep); seek <= 100; seek += parseFloat(animStep)) { - seeks.push(seek) - } - const chart = new Vizzu('vizzuCanvas') - return chart.initializing.then((chart) => { - let promise = Promise.resolve(chart) - const promises = [] - const testSteps = getTestSteps(testCasesModule.default, testType, testIndex) - for (let i = 0; i < testSteps.length; i++) { - console.log(i) - promise = promise.then((chart) => { - testData.seeks[i] = [] - testData.images[i] = [] - testData.hashes[i] = [] - const animFinished = testSteps[i](chart) - if (animFinished === undefined) { - throw new Error('test step return value is undefined') - } - if (animFinished.activated) - animFinished.activated.then((control) => { - control.pause() - seeks.forEach((seek) => { - seek = seek + '%' - testData.seeks[i].push(seek) - control.seek(seek) - chart.feature.rendering.update() - const canvasElement = document.getElementById('vizzuCanvas') - if (createImages !== 'DISABLED') { - const dataURL = canvasElement.toDataURL() - testData.images[i].push(dataURL) - } - const ctx = canvasElement.getContext('2d') - const digestData = ctx.getImageData( - 0, - 0, - canvasElement.width, - canvasElement.height - ) - let digest = digestMessage(digestData.data.buffer.slice()) - digest = digest.then((digestBuffer) => { - testData.hashes[i].push(digestBuffer) - }) - promises.push(digest) - }) - control.play() - }) - return animFinished - }) - } - return promise.then(() => { - return Promise.all(promises).then(() => { - testData.hashes.forEach((items) => { - testData.hash += items.join('') - }) - const buf = new ArrayBuffer(testData.hash.length * 2) - const bufView = new Uint16Array(buf) - for (let i = 0, strLen = testData.hash.length; i < strLen; i++) { - bufView[i] = testData.hash.charCodeAt(i) - } - digestMessage(bufView).then((hash) => { - hash = hash.substring(0, 7) - testData.hash = hash - if (refHash !== '') { - if (refHash.includes(hash)) { - testData.result = 'PASSED' - if (createImages === 'FAILED') { - delete testData.images - } - } else { - testData.description = 'hash: ' + testData.hash + ' ' + '(ref: ' + refHash + ')' - testData.result = 'FAILED' - } - } else { - testData.description = 'ref hash does not exist (hash: ' + testData.hash + ')' - testData.result = 'WARNING' - testData.warning = 'noref' - } - if (typeof window.testData === 'undefined') { - window.testData = testData - document.title = 'Finished' - } - }) - }) - }) - }) - }) - }) - .catch((err) => { - catchError(err) - }) + import(vizzuUrl) + .then((vizzuModule) => { + const Vizzu = vizzuModule.default + return import(testFile + '.mjs').then((testCasesModule) => { + const animStep = getAnimStep(testCasesModule.default, testType, testIndex) + const seeks = [] + for (let seek = parseFloat(animStep); seek <= 100; seek += parseFloat(animStep)) { + seeks.push(seek) + } + const chart = new Vizzu('vizzuCanvas') + return chart.initializing.then((chart) => { + let promise = Promise.resolve(chart) + const promises = [] + const testSteps = getTestSteps(testCasesModule.default, testType, testIndex) + for (let i = 0; i < testSteps.length; i++) { + console.log(i) + promise = promise.then((chart) => { + testData.seeks[i] = [] + testData.images[i] = [] + testData.hashes[i] = [] + const animFinished = testSteps[i](chart) + if (animFinished === undefined) { + throw new Error('test step return value is undefined') + } + if (animFinished.activated) + animFinished.activated.then((control) => { + control.pause() + seeks.forEach((seek) => { + seek = seek + '%' + testData.seeks[i].push(seek) + control.seek(seek) + chart.feature.rendering.update() + const canvasElement = document.getElementById('vizzuCanvas') + if (createImages !== 'DISABLED') { + const dataURL = canvasElement.toDataURL() + testData.images[i].push(dataURL) + } + const ctx = canvasElement.getContext('2d') + const digestData = ctx.getImageData( + 0, + 0, + canvasElement.width, + canvasElement.height + ) + let digest = digestMessage(digestData.data.buffer.slice()) + digest = digest.then((digestBuffer) => { + testData.hashes[i].push(digestBuffer) + }) + promises.push(digest) + }) + control.play() + }) + return animFinished + }) + } + return promise.then(() => { + return Promise.all(promises).then(() => { + testData.hashes.forEach((items) => { + testData.hash += items.join('') + }) + const buf = new ArrayBuffer(testData.hash.length * 2) + const bufView = new Uint16Array(buf) + for (let i = 0, strLen = testData.hash.length; i < strLen; i++) { + bufView[i] = testData.hash.charCodeAt(i) + } + digestMessage(bufView).then((hash) => { + hash = hash.substring(0, 7) + testData.hash = hash + if (refHash !== '') { + if (refHash.includes(hash)) { + testData.result = 'PASSED' + if (createImages === 'FAILED') { + delete testData.images + } + } else { + testData.description = + 'hash: ' + + testData.hash + + ' ' + + '(ref: ' + + refHash + + ')' + testData.result = 'FAILED' + } + } else { + testData.description = + 'ref hash does not exist (hash: ' + testData.hash + ')' + testData.result = 'WARNING' + testData.warning = 'noref' + } + if (typeof window.testData === 'undefined') { + window.testData = testData + document.title = 'Finished' + } + }) + }) + }) + }) + }) + }) + .catch((err) => { + catchError(err) + }) } catch (err) { - catchError(err) + catchError(err) } diff --git a/test/integration/modules/integration-test/test-case/test-case-result.cjs b/test/integration/modules/integration-test/test-case/test-case-result.cjs index 90e763edc..1132f1f22 100644 --- a/test/integration/modules/integration-test/test-case/test-case-result.cjs +++ b/test/integration/modules/integration-test/test-case/test-case-result.cjs @@ -6,404 +6,426 @@ const fs = require('fs') const TestEnv = require('../../../modules/integration-test/test-env.cjs') class TestCaseResult { - #cnsl + #cnsl - #testCaseObj - #testData + #testCaseObj + #testData - #browserChrome - #vizzuUrl - #vizzuRefUrl + #browserChrome + #vizzuUrl + #vizzuRefUrl - #runTestCaseRef + #runTestCaseRef - #testCaseFormattedName - #testCaseResultPath + #testCaseFormattedName + #testCaseResultPath - #imgDiffModuleReady + #imgDiffModuleReady - constructor(testCaseObj, testData, browserChrome, vizzuUrl, vizzuRefUrl, runTestCaseRef) { - this.#cnsl = testCaseObj.cnsl + constructor(testCaseObj, testData, browserChrome, vizzuUrl, vizzuRefUrl, runTestCaseRef) { + this.#cnsl = testCaseObj.cnsl - this.#testCaseObj = testCaseObj - this.#testData = testData - this.#browserChrome = browserChrome - this.#vizzuUrl = vizzuUrl - this.#vizzuRefUrl = vizzuRefUrl + this.#testCaseObj = testCaseObj + this.#testData = testData + this.#browserChrome = browserChrome + this.#vizzuUrl = vizzuUrl + this.#vizzuRefUrl = vizzuRefUrl - this.#runTestCaseRef = runTestCaseRef + this.#runTestCaseRef = runTestCaseRef - this.#testCaseFormattedName = this.#getTestCaseFormattedName() - this.#testCaseResultPath = this.#getTestCaseResultPath() + this.#testCaseFormattedName = this.#getTestCaseFormattedName() + this.#testCaseResultPath = this.#getTestCaseResultPath() - this.#imgDiffModuleReady = import('../../../modules/img/imgdiff.js') - } + this.#imgDiffModuleReady = import('../../../modules/img/imgdiff.js') + } - #getTestCaseFormattedName() { - return path.relative( - TestEnv.getTestSuitePath(), - path.join(TestEnv.getWorkspacePath(), this.#testCaseObj.testCase.testName) - ) - } + #getTestCaseFormattedName() { + return path.relative( + TestEnv.getTestSuitePath(), + path.join(TestEnv.getWorkspacePath(), this.#testCaseObj.testCase.testName) + ) + } - #getTestCaseResultPath() { - return path.join(TestEnv.getTestSuiteResultsPath(), this.#testCaseFormattedName) - } + #getTestCaseResultPath() { + return path.join(TestEnv.getTestSuiteResultsPath(), this.#testCaseFormattedName) + } - createTestCaseResult() { - return new Promise((resolve, reject) => { - const deleteTestCaseResultReady = this.#deleteTestCaseResult() - deleteTestCaseResultReady.then(() => { - if (this.#testCaseObj.createImages === 'ALL') { - this.#createImages() - } - if (this.#testCaseObj.testCase.errorMsg) { - if (this.#testData.result === 'ERROR') { - if (this.#testData.description.includes(this.#testCaseObj.testCase.errorMsg)) { - return resolve(this.#createTestCaseResultPassed(this.#testCaseObj.testCase.errorMsg)) - } else { - return resolve(this.#createTestCaseResultError()) - } - } else { - this.#testData.result = 'ERROR' - this.#testData.description = 'did not occur ' + this.#testCaseObj.testCase.errorMsg - return resolve(this.#createTestCaseResultError()) - } - } else { - if (this.#testData.result === 'PASSED') { - return resolve(this.#createTestCaseResultPassed(this.#testData.hash)) - } else if (this.#testData.result === 'WARNING' || this.#testData.result === 'FAILED') { - return resolve(this.#createTestCaseResultFailure()) - } else { - return resolve(this.#createTestCaseResultError()) - } - } - }) - }) - } + createTestCaseResult() { + return new Promise((resolve, reject) => { + const deleteTestCaseResultReady = this.#deleteTestCaseResult() + deleteTestCaseResultReady.then(() => { + if (this.#testCaseObj.createImages === 'ALL') { + this.#createImages() + } + if (this.#testCaseObj.testCase.errorMsg) { + if (this.#testData.result === 'ERROR') { + if ( + this.#testData.description.includes(this.#testCaseObj.testCase.errorMsg) + ) { + return resolve( + this.#createTestCaseResultPassed( + this.#testCaseObj.testCase.errorMsg + ) + ) + } else { + return resolve(this.#createTestCaseResultError()) + } + } else { + this.#testData.result = 'ERROR' + this.#testData.description = + 'did not occur ' + this.#testCaseObj.testCase.errorMsg + return resolve(this.#createTestCaseResultError()) + } + } else { + if (this.#testData.result === 'PASSED') { + return resolve(this.#createTestCaseResultPassed(this.#testData.hash)) + } else if ( + this.#testData.result === 'WARNING' || + this.#testData.result === 'FAILED' + ) { + return resolve(this.#createTestCaseResultFailure()) + } else { + return resolve(this.#createTestCaseResultError()) + } + } + }) + }) + } - #deleteTestCaseResult() { - return new Promise((resolve, reject) => { - fs.rm(this.#testCaseResultPath, { recursive: true, force: true }, (err) => { - if (err) { - return reject(err) - } - return resolve() - }) - }) - } + #deleteTestCaseResult() { + return new Promise((resolve, reject) => { + fs.rm(this.#testCaseResultPath, { recursive: true, force: true }, (err) => { + if (err) { + return reject(err) + } + return resolve() + }) + }) + } - #createTestCaseResultPassed(msg) { - this.#testCaseObj.testSuiteResults.PASSED.push(this.#testCaseObj.testCase.testName) - this.#cnsl.writePassedLog(' ' + this.#testCaseFormattedName) - this.#cnsl.log( - ('[ ' + 'PASSED'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + ' ] ').success + - '[ ' + - String(++this.#testCaseObj.testSuiteResults.FINISHED).padEnd( - this.#cnsl.getTestNumberPad(), - ' ' - ) + - ' ] ' + - '[ ' + - msg + - ' ] ' + - this.#testCaseFormattedName - ) - } + #createTestCaseResultPassed(msg) { + this.#testCaseObj.testSuiteResults.PASSED.push(this.#testCaseObj.testCase.testName) + this.#cnsl.writePassedLog(' ' + this.#testCaseFormattedName) + this.#cnsl.log( + ('[ ' + 'PASSED'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + ' ] ').success + + '[ ' + + String(++this.#testCaseObj.testSuiteResults.FINISHED).padEnd( + this.#cnsl.getTestNumberPad(), + ' ' + ) + + ' ] ' + + '[ ' + + msg + + ' ] ' + + this.#testCaseFormattedName + ) + } - #createTestCaseResultFailure() { - return new Promise((resolve, reject) => { - if (this.#testData.result === 'WARNING') { - if (this.#testData.warning === 'noref' && this.#testCaseObj.Werror.includes('noref')) { - this.#createTestCaseResultFailed() - return resolve() - } - this.#createTestCaseResultWarning() - return resolve() - } else { - if ( - this.#vizzuRefUrl && - this.#vizzuUrl !== this.#vizzuRefUrl && - !this.#maxFailedImagesReached() - ) { - const testCaseObj = Object.assign({}, this.#testCaseObj) - testCaseObj.createImages = 'ALL' - this.#runTestCaseRef(testCaseObj, this.#browserChrome, this.#vizzuRefUrl) - .then((testDataRef) => { - const failureMsgs = [] - if (testDataRef.result !== 'ERROR') { - let diff = false - for (let i = 0; i < (this.#testData?.hashes?.length ?? 0); i++) { - for (let j = 0; j < (this.#testData?.hashes?.[i]?.length ?? 0); j++) { - const hashRef = testDataRef?.hashes?.[i]?.[j] - if (this.#testData.hashes[i][j] !== hashRef) { - if (this.#testCaseObj.createImages !== 'DISABLED') { - this.#createImage(testDataRef, '-2ref', i, j) - this.#createDifImage(testDataRef, i, j) - } - failureMsgs.push( - ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + - '[ ' + - 'step: ' + - i + - '. - seek: ' + - this.#testData.seeks[i][j] + - ' - hash: ' + - this.#testData.hashes[i][j].substring(0, 7) + - ' ' + - '(ref: ' + - hashRef?.substring(0, 7) + - ')' + - ' ]' - ) - diff = true - } - } - } - if (!diff) { - failureMsgs.push( - ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + - '[ the currently counted hashes are the same, the difference is probably caused by the environment ]' - ) - this.#testData.warning = 'sameref' - } - return failureMsgs - } else { - const errParts = this.#getTestCaseResultErrorParts(testDataRef) - const failureMsgs = [ - ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + '[ failed to run reference ]' - ] - if (errParts) { - failureMsgs[0] += ` [ ${errParts[0]} ]` - if (errParts.length > 1) { - errParts.forEach((item, index) => { - errParts[index] = ''.padEnd(this.#cnsl.getTestStatusPad() + 7, ' ') + item - }) - failureMsgs.push(...errParts.slice(1)) - } - } - return failureMsgs - } - }) - .then((failureMsgs) => { - if ( - this.#testData.warning === 'sameref' && - !this.#testCaseObj.Werror.includes('sameref') - ) { - this.#createTestCaseResultWarning(failureMsgs) - return resolve() - } - this.#createTestCaseResultFailed(failureMsgs) - return resolve() - }) - } else { - this.#createTestCaseResultFailed() - return resolve() - } - } - }) - } + #createTestCaseResultFailure() { + return new Promise((resolve, reject) => { + if (this.#testData.result === 'WARNING') { + if ( + this.#testData.warning === 'noref' && + this.#testCaseObj.Werror.includes('noref') + ) { + this.#createTestCaseResultFailed() + return resolve() + } + this.#createTestCaseResultWarning() + return resolve() + } else { + if ( + this.#vizzuRefUrl && + this.#vizzuUrl !== this.#vizzuRefUrl && + !this.#maxFailedImagesReached() + ) { + const testCaseObj = Object.assign({}, this.#testCaseObj) + testCaseObj.createImages = 'ALL' + this.#runTestCaseRef(testCaseObj, this.#browserChrome, this.#vizzuRefUrl) + .then((testDataRef) => { + const failureMsgs = [] + if (testDataRef.result !== 'ERROR') { + let diff = false + for (let i = 0; i < (this.#testData?.hashes?.length ?? 0); i++) { + for ( + let j = 0; + j < (this.#testData?.hashes?.[i]?.length ?? 0); + j++ + ) { + const hashRef = testDataRef?.hashes?.[i]?.[j] + if (this.#testData.hashes[i][j] !== hashRef) { + if (this.#testCaseObj.createImages !== 'DISABLED') { + this.#createImage(testDataRef, '-2ref', i, j) + this.#createDifImage(testDataRef, i, j) + } + failureMsgs.push( + ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + + '[ ' + + 'step: ' + + i + + '. - seek: ' + + this.#testData.seeks[i][j] + + ' - hash: ' + + this.#testData.hashes[i][j].substring(0, 7) + + ' ' + + '(ref: ' + + hashRef?.substring(0, 7) + + ')' + + ' ]' + ) + diff = true + } + } + } + if (!diff) { + failureMsgs.push( + ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + + '[ the currently counted hashes are the same, the difference is probably caused by the environment ]' + ) + this.#testData.warning = 'sameref' + } + return failureMsgs + } else { + const errParts = this.#getTestCaseResultErrorParts(testDataRef) + const failureMsgs = [ + ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + + '[ failed to run reference ]' + ] + if (errParts) { + failureMsgs[0] += ` [ ${errParts[0]} ]` + if (errParts.length > 1) { + errParts.forEach((item, index) => { + errParts[index] = + ''.padEnd(this.#cnsl.getTestStatusPad() + 7, ' ') + + item + }) + failureMsgs.push(...errParts.slice(1)) + } + } + return failureMsgs + } + }) + .then((failureMsgs) => { + if ( + this.#testData.warning === 'sameref' && + !this.#testCaseObj.Werror.includes('sameref') + ) { + this.#createTestCaseResultWarning(failureMsgs) + return resolve() + } + this.#createTestCaseResultFailed(failureMsgs) + return resolve() + }) + } else { + this.#createTestCaseResultFailed() + return resolve() + } + } + }) + } - #createTestCaseResultWarning(failureMsgs) { - if (this.#testCaseObj.createImages === 'FAILED' && !this.#maxFailedImagesReached()) { - this.#createImages() - } - this.#testCaseObj.testSuiteResults.WARNING.push(this.#testCaseObj.testCase.testName) - this.#cnsl.writeWarningsLog(' ' + this.#testCaseFormattedName) - this.#createTestCaseResultManual() - this.#cnsl.log( - ( - '[ ' + - 'WARNING'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ] ' + - '[ ' + - String(++this.#testCaseObj.testSuiteResults.FINISHED).padEnd( - this.#cnsl.getTestNumberPad(), - ' ' - ) + - ' ] ' + - '[ ' + - this.#testData.description + - ' ] ' - ).warn + this.#testCaseFormattedName - ) - if (failureMsgs) { - failureMsgs.forEach((failureMsg) => { - this.#cnsl.log(failureMsg) - }) - } - } + #createTestCaseResultWarning(failureMsgs) { + if (this.#testCaseObj.createImages === 'FAILED' && !this.#maxFailedImagesReached()) { + this.#createImages() + } + this.#testCaseObj.testSuiteResults.WARNING.push(this.#testCaseObj.testCase.testName) + this.#cnsl.writeWarningsLog(' ' + this.#testCaseFormattedName) + this.#createTestCaseResultManual() + this.#cnsl.log( + ( + '[ ' + + 'WARNING'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ] ' + + '[ ' + + String(++this.#testCaseObj.testSuiteResults.FINISHED).padEnd( + this.#cnsl.getTestNumberPad(), + ' ' + ) + + ' ] ' + + '[ ' + + this.#testData.description + + ' ] ' + ).warn + this.#testCaseFormattedName + ) + if (failureMsgs) { + failureMsgs.forEach((failureMsg) => { + this.#cnsl.log(failureMsg) + }) + } + } - #createTestCaseResultFailed(failureMsgs) { - if (this.#testCaseObj.createImages === 'FAILED' && !this.#maxFailedImagesReached()) { - this.#createImages() - } - this.#testCaseObj.testSuiteResults.FAILED.push(this.#testCaseObj.testCase.testName) - this.#cnsl.writeFailedLog(' ' + this.#testCaseFormattedName) - this.#createTestCaseResultManual() - this.#createTestCaseResultErrorMsg() - if (failureMsgs) { - failureMsgs.forEach((failureMsg) => { - this.#cnsl.log(failureMsg) - }) - } - } + #createTestCaseResultFailed(failureMsgs) { + if (this.#testCaseObj.createImages === 'FAILED' && !this.#maxFailedImagesReached()) { + this.#createImages() + } + this.#testCaseObj.testSuiteResults.FAILED.push(this.#testCaseObj.testCase.testName) + this.#cnsl.writeFailedLog(' ' + this.#testCaseFormattedName) + this.#createTestCaseResultManual() + this.#createTestCaseResultErrorMsg() + if (failureMsgs) { + failureMsgs.forEach((failureMsg) => { + this.#cnsl.log(failureMsg) + }) + } + } - #createTestCaseResultError() { - this.#testCaseObj.testSuiteResults.FAILED.push(this.#testCaseObj.testCase.testName) - this.#cnsl.writeFailedLog(' ' + this.#testCaseFormattedName) - this.#createTestCaseResultManual() - this.#createTestCaseResultErrorMsg() - } + #createTestCaseResultError() { + this.#testCaseObj.testSuiteResults.FAILED.push(this.#testCaseObj.testCase.testName) + this.#cnsl.writeFailedLog(' ' + this.#testCaseFormattedName) + this.#createTestCaseResultManual() + this.#createTestCaseResultErrorMsg() + } - #createTestCaseResultErrorMsg() { - const errParts = this.#getTestCaseResultErrorParts(this.#testData) - if (errParts) { - this.#cnsl.log( - ( - '[ ' + - this.#testData.result.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ] ' + - '[ ' + - String(++this.#testCaseObj.testSuiteResults.FINISHED).padEnd( - this.#cnsl.getTestNumberPad(), - ' ' - ) + - ' ] ' + - '[ ' + - errParts[0] + - ' ] ' - ).error + this.#testCaseFormattedName - ) - if (errParts.length > 1) { - errParts.slice(1).forEach((item) => { - this.#cnsl.log(''.padEnd(this.#cnsl.getTestStatusPad() + 7, ' ') + item) - }) - } - } - } + #createTestCaseResultErrorMsg() { + const errParts = this.#getTestCaseResultErrorParts(this.#testData) + if (errParts) { + this.#cnsl.log( + ( + '[ ' + + this.#testData.result.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ] ' + + '[ ' + + String(++this.#testCaseObj.testSuiteResults.FINISHED).padEnd( + this.#cnsl.getTestNumberPad(), + ' ' + ) + + ' ] ' + + '[ ' + + errParts[0] + + ' ] ' + ).error + this.#testCaseFormattedName + ) + if (errParts.length > 1) { + errParts.slice(1).forEach((item) => { + this.#cnsl.log(''.padEnd(this.#cnsl.getTestStatusPad() + 7, ' ') + item) + }) + } + } + } - #getTestCaseResultErrorParts(testData) { - return testData.description - .split('http://127.0.0.1:' + String(this.#testCaseObj.workspaceHostServerPort)) - .join(path.resolve(TestEnv.getWorkspacePath())) - .split('\n') - } + #getTestCaseResultErrorParts(testData) { + return testData.description + .split('http://127.0.0.1:' + String(this.#testCaseObj.workspaceHostServerPort)) + .join(path.resolve(TestEnv.getWorkspacePath())) + .split('\n') + } - #createTestCaseResultManual() { - this.#testCaseObj.testSuiteResults.MANUAL.push(this.#testCaseObj.testCase) - const formatted = this.#testCaseFormattedName - this.#testCaseObj.testSuiteResults.MANUAL_FORMATTED.push(formatted) - this.#cnsl.writeFailuresLog(' ' + formatted) - } + #createTestCaseResultManual() { + this.#testCaseObj.testSuiteResults.MANUAL.push(this.#testCaseObj.testCase) + const formatted = this.#testCaseFormattedName + this.#testCaseObj.testSuiteResults.MANUAL_FORMATTED.push(formatted) + this.#cnsl.writeFailuresLog(' ' + formatted) + } - #createImages() { - for (let i = 0; i < (this.#testData?.seeks?.length ?? 0); i++) { - for (let j = 0; j < (this.#testData?.seeks[i]?.length ?? 0); j++) { - this.#createImage(this.#testData, '-1new', i, j) - } - } - } + #createImages() { + for (let i = 0; i < (this.#testData?.seeks?.length ?? 0); i++) { + for (let j = 0; j < (this.#testData?.seeks[i]?.length ?? 0); j++) { + this.#createImage(this.#testData, '-1new', i, j) + } + } + } - #createImage(data, fileAdd, i, j) { - if (!(data?.seeks?.[i]?.[j] && data?.images?.[i]?.[j])) { - return - } - fs.mkdir(this.#testCaseResultPath, { recursive: true, force: true }, (err) => { - if (err) { - throw err - } - const seek = data.seeks[i][j].replace('%', '').split('.') - if ((seek.length ?? 0) === 1) { - seek.push('0') - } - fs.writeFile( - this.#testCaseResultPath + - '/' + - path.basename(this.#testCaseResultPath) + - '_' + - i.toString().padStart(3, '0') + - '_' + - seek[0].padStart(3, '0') + - '.' + - seek[1].padEnd(3, '0') + - '%' + - fileAdd + - '.png', - data.images[i][j].substring(22), - 'base64', - (err) => { - if (err) { - throw err - } - } - ) - }) - } + #createImage(data, fileAdd, i, j) { + if (!(data?.seeks?.[i]?.[j] && data?.images?.[i]?.[j])) { + return + } + fs.mkdir(this.#testCaseResultPath, { recursive: true, force: true }, (err) => { + if (err) { + throw err + } + const seek = data.seeks[i][j].replace('%', '').split('.') + if ((seek.length ?? 0) === 1) { + seek.push('0') + } + fs.writeFile( + this.#testCaseResultPath + + '/' + + path.basename(this.#testCaseResultPath) + + '_' + + i.toString().padStart(3, '0') + + '_' + + seek[0].padStart(3, '0') + + '.' + + seek[1].padEnd(3, '0') + + '%' + + fileAdd + + '.png', + data.images[i][j].substring(22), + 'base64', + (err) => { + if (err) { + throw err + } + } + ) + }) + } - #createDifImage(testDataRef, i, j) { - if ( - !( - this.#testData?.seeks?.[i]?.[j] && - this.#testData?.images?.[i]?.[j] && - testDataRef?.images?.[i]?.[j] - ) - ) { - return - } - const seek = this.#testData.seeks[i][j].replace('%', '').split('.') - if ((seek.length ?? 0) === 1) { - seek.push('0') - } - const img1 = pngjs.PNG.sync.read( - Buffer.from(this.#testData.images[i][j].substring(22), 'base64') - ) - const img2 = pngjs.PNG.sync.read(Buffer.from(testDataRef.images[i][j].substring(22), 'base64')) - const { width, height } = img1 - this.#imgDiffModuleReady.then((imgDiffModule) => { - const ImgDiff = imgDiffModule.default - const compareResult = ImgDiff.compare('move', img1.data, img2.data, width, height) - if (!compareResult.match) { - const imgDiff = new pngjs.PNG({ width, height }) - imgDiff.data = compareResult.diffData - fs.mkdir(this.#testCaseResultPath, { recursive: true, force: true }, (err) => { - if (err) { - throw err - } - fs.writeFile( - this.#testCaseResultPath + - '/' + - path.basename(this.#testCaseResultPath) + - '_' + - i.toString().padStart(3, '0') + - '_' + - seek[0].padStart(3, '0') + - '.' + - seek[1].padEnd(3, '0') + - '%' + - '-3diff' + - '.png', - pngjs.PNG.sync.write(imgDiff), - (err) => { - if (err) { - throw err - } - } - ) - }) - } - }) - } + #createDifImage(testDataRef, i, j) { + if ( + !( + this.#testData?.seeks?.[i]?.[j] && + this.#testData?.images?.[i]?.[j] && + testDataRef?.images?.[i]?.[j] + ) + ) { + return + } + const seek = this.#testData.seeks[i][j].replace('%', '').split('.') + if ((seek.length ?? 0) === 1) { + seek.push('0') + } + const img1 = pngjs.PNG.sync.read( + Buffer.from(this.#testData.images[i][j].substring(22), 'base64') + ) + const img2 = pngjs.PNG.sync.read( + Buffer.from(testDataRef.images[i][j].substring(22), 'base64') + ) + const { width, height } = img1 + this.#imgDiffModuleReady.then((imgDiffModule) => { + const ImgDiff = imgDiffModule.default + const compareResult = ImgDiff.compare('move', img1.data, img2.data, width, height) + if (!compareResult.match) { + const imgDiff = new pngjs.PNG({ width, height }) + imgDiff.data = compareResult.diffData + fs.mkdir(this.#testCaseResultPath, { recursive: true, force: true }, (err) => { + if (err) { + throw err + } + fs.writeFile( + this.#testCaseResultPath + + '/' + + path.basename(this.#testCaseResultPath) + + '_' + + i.toString().padStart(3, '0') + + '_' + + seek[0].padStart(3, '0') + + '.' + + seek[1].padEnd(3, '0') + + '%' + + '-3diff' + + '.png', + pngjs.PNG.sync.write(imgDiff), + (err) => { + if (err) { + throw err + } + } + ) + }) + } + }) + } - #maxFailedImagesReached() { - if (!this.#testCaseObj.maxFailedImages) { - return false - } - const failedCases = - this.#testCaseObj.testSuiteResults.FAILED.length + - this.#testCaseObj.testSuiteResults.WARNING.length - return failedCases >= this.#testCaseObj.maxFailedImages - } + #maxFailedImagesReached() { + if (!this.#testCaseObj.maxFailedImages) { + return false + } + const failedCases = + this.#testCaseObj.testSuiteResults.FAILED.length + + this.#testCaseObj.testSuiteResults.WARNING.length + return failedCases >= this.#testCaseObj.maxFailedImages + } } module.exports = TestCaseResult diff --git a/test/integration/modules/integration-test/test-case/test-case.cjs b/test/integration/modules/integration-test/test-case/test-case.cjs index fe1796a87..01700405f 100644 --- a/test/integration/modules/integration-test/test-case/test-case.cjs +++ b/test/integration/modules/integration-test/test-case/test-case.cjs @@ -4,89 +4,89 @@ const TestEnv = require('../../../modules/integration-test/test-env.cjs') const TestCaseResult = require('../../../modules/integration-test/test-case/test-case-result.cjs') class TestCase { - static runTestCase(testCaseObj, vizzuUrl, vizzuRefUrl) { - return new Promise((resolve, reject) => { - const browserChrome = testCaseObj.browsersChrome.shiftBrowser() - TestCase.runTestCaseClient(testCaseObj, browserChrome, vizzuUrl).then((testData) => { - testCaseObj.testSuiteResults.RESULTS[testCaseObj.testCase.testName] = testData - const testCaseResult = new TestCaseResult( - testCaseObj, - testData, - browserChrome, - vizzuUrl, - vizzuRefUrl, - TestCase.runTestCaseRef - ) - testCaseResult.createTestCaseResult().then(() => { - testCaseObj.browsersChrome.pushBrowser(browserChrome) - return resolve() - }) - }) - }) - } + static runTestCase(testCaseObj, vizzuUrl, vizzuRefUrl) { + return new Promise((resolve, reject) => { + const browserChrome = testCaseObj.browsersChrome.shiftBrowser() + TestCase.runTestCaseClient(testCaseObj, browserChrome, vizzuUrl).then((testData) => { + testCaseObj.testSuiteResults.RESULTS[testCaseObj.testCase.testName] = testData + const testCaseResult = new TestCaseResult( + testCaseObj, + testData, + browserChrome, + vizzuUrl, + vizzuRefUrl, + TestCase.runTestCaseRef + ) + testCaseResult.createTestCaseResult().then(() => { + testCaseObj.browsersChrome.pushBrowser(browserChrome) + return resolve() + }) + }) + }) + } - static runTestCaseRef(testCaseObj, browserChrome, vizzuUrl) { - return new Promise((resolve, reject) => { - TestCase.runTestCaseClient(testCaseObj, browserChrome, vizzuUrl) - .then((testDataRef) => { - return resolve(testDataRef) - }) - .catch((err) => { - return reject(err) - }) - }) - } + static runTestCaseRef(testCaseObj, browserChrome, vizzuUrl) { + return new Promise((resolve, reject) => { + TestCase.runTestCaseClient(testCaseObj, browserChrome, vizzuUrl) + .then((testDataRef) => { + return resolve(testDataRef) + }) + .catch((err) => { + return reject(err) + }) + }) + } - static runTestCaseClient(testCaseObj, browserChrome, vizzuUrl) { - return new Promise((resolve, reject) => { - let refHash = [] - if (testCaseObj.testCase.testName in testCaseObj.testCasesConfig.tests) { - if ('refs' in testCaseObj.testCasesConfig.tests[testCaseObj.testCase.testName]) { - refHash = testCaseObj.testCasesConfig.tests[testCaseObj.testCase.testName].refs - } - } - if (vizzuUrl.startsWith('/')) { - vizzuUrl = '/' + path.relative(TestEnv.getWorkspacePath(), vizzuUrl) - } - browserChrome - .getUrl( - 'http://127.0.0.1:' + - String(testCaseObj.workspaceHostServerPort) + - '/test/integration/modules/integration-test/client/index.html' + - '?testFile=' + - testCaseObj.testCase.testFile + - '&testType=' + - testCaseObj.testCase.testType + - '&testIndex=' + - testCaseObj.testCase.testIndex + - '&vizzuUrl=' + - vizzuUrl + - '&refHash=' + - refHash.toString() + - '&createImages=' + - testCaseObj.createImages - ) - .then(() => { - browserChrome - .waitUntilTitleIs('Finished', testCaseObj.animTimeout) - .then(() => { - browserChrome - .executeScript(() => { - return testData // eslint-disable-line no-undef - }) - .then((testData) => { - return resolve(testData) - }) - }) - .catch((err) => { - if (!err.toString().includes('TimeoutError: Waiting failed')) { - throw err - } - return resolve({ result: 'ERROR', description: 'Timeout' }) - }) - }) - }) - } + static runTestCaseClient(testCaseObj, browserChrome, vizzuUrl) { + return new Promise((resolve, reject) => { + let refHash = [] + if (testCaseObj.testCase.testName in testCaseObj.testCasesConfig.tests) { + if ('refs' in testCaseObj.testCasesConfig.tests[testCaseObj.testCase.testName]) { + refHash = testCaseObj.testCasesConfig.tests[testCaseObj.testCase.testName].refs + } + } + if (vizzuUrl.startsWith('/')) { + vizzuUrl = '/' + path.relative(TestEnv.getWorkspacePath(), vizzuUrl) + } + browserChrome + .getUrl( + 'http://127.0.0.1:' + + String(testCaseObj.workspaceHostServerPort) + + '/test/integration/modules/integration-test/client/index.html' + + '?testFile=' + + testCaseObj.testCase.testFile + + '&testType=' + + testCaseObj.testCase.testType + + '&testIndex=' + + testCaseObj.testCase.testIndex + + '&vizzuUrl=' + + vizzuUrl + + '&refHash=' + + refHash.toString() + + '&createImages=' + + testCaseObj.createImages + ) + .then(() => { + browserChrome + .waitUntilTitleIs('Finished', testCaseObj.animTimeout) + .then(() => { + browserChrome + .executeScript(() => { + return testData // eslint-disable-line no-undef + }) + .then((testData) => { + return resolve(testData) + }) + }) + .catch((err) => { + if (!err.toString().includes('TimeoutError: Waiting failed')) { + throw err + } + return resolve({ result: 'ERROR', description: 'Timeout' }) + }) + }) + }) + } } module.exports = TestCase diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.cjs b/test/integration/modules/integration-test/test-case/test-cases-config.cjs index d56550d0f..f11470686 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.cjs +++ b/test/integration/modules/integration-test/test-case/test-cases-config.cjs @@ -7,170 +7,173 @@ const WorkspacePath = require('../../../modules/workspace/workspace-path.cjs') const TestEnv = require('../../../modules/integration-test/test-env.cjs') class TestCasesConfig { - static getConfig(configPathList) { - return new Promise((resolve, reject) => { - const configsReady = [] - const configs = { suites: [], tests: {} } - assert(Array.isArray(configPathList), 'configPathList is array') - const configPathListClone = configPathList.slice() - configPathListClone.forEach((configPath, index) => { - configPathListClone[index] = WorkspacePath.resolvePath( - configPath, - TestEnv.getWorkspacePath(), - TestEnv.getTestSuitePath() - ) - const configReady = new Promise((resolve, reject) => { - TestCasesConfig.readConfig(configPathListClone[index]) - .then((config) => { - assert(TestCasesConfig.isConfig(config), 'config schema validation failed') - const suite = { - suite: path.join(TestEnv.getWorkspacePath(), config.data.suite), - config: config.path, - tests: {} - } - if (config.data.test) { - Object.keys(config.data.test).forEach((testCase) => { - const testCaseId = path.join(config.data.suite, testCase) - const testCaseData = config.data.test[testCase] - suite.tests[testCaseId] = testCaseData - configs.tests[testCaseId] = testCaseData - }) - } - configs.suites.push(suite) - return resolve() - }) - .catch((err) => { - return reject(err) - }) - }) - configsReady.push(configReady) - }) - Promise.all(configsReady) - .then(() => { - return resolve(configs) - }) - .catch((err) => { - return reject(err) - }) - }) - } + static getConfig(configPathList) { + return new Promise((resolve, reject) => { + const configsReady = [] + const configs = { suites: [], tests: {} } + assert(Array.isArray(configPathList), 'configPathList is array') + const configPathListClone = configPathList.slice() + configPathListClone.forEach((configPath, index) => { + configPathListClone[index] = WorkspacePath.resolvePath( + configPath, + TestEnv.getWorkspacePath(), + TestEnv.getTestSuitePath() + ) + const configReady = new Promise((resolve, reject) => { + TestCasesConfig.readConfig(configPathListClone[index]) + .then((config) => { + assert( + TestCasesConfig.isConfig(config), + 'config schema validation failed' + ) + const suite = { + suite: path.join(TestEnv.getWorkspacePath(), config.data.suite), + config: config.path, + tests: {} + } + if (config.data.test) { + Object.keys(config.data.test).forEach((testCase) => { + const testCaseId = path.join(config.data.suite, testCase) + const testCaseData = config.data.test[testCase] + suite.tests[testCaseId] = testCaseData + configs.tests[testCaseId] = testCaseData + }) + } + configs.suites.push(suite) + return resolve() + }) + .catch((err) => { + return reject(err) + }) + }) + configsReady.push(configReady) + }) + Promise.all(configsReady) + .then(() => { + return resolve(configs) + }) + .catch((err) => { + return reject(err) + }) + }) + } - static readConfig(configPath) { - return new Promise((resolve, reject) => { - fs.stat(configPath, (err) => { - if (err === null) { - fs.readFile(configPath, (err, data) => { - if (err) { - return reject(err) - } - try { - data = JSON.parse(data) - } catch (err) { - return reject(err) - } - return resolve({ path: configPath, data }) - }) - } else { - return reject(err) - } - }) - }) - } + static readConfig(configPath) { + return new Promise((resolve, reject) => { + fs.stat(configPath, (err) => { + if (err === null) { + fs.readFile(configPath, (err, data) => { + if (err) { + return reject(err) + } + try { + data = JSON.parse(data) + } catch (err) { + return reject(err) + } + return resolve({ path: configPath, data }) + }) + } else { + return reject(err) + } + }) + }) + } - static isConfig(config) { - const validate = new Ajv().compile(TestCasesConfig.getConfigSchema()) - return validate(config) - } + static isConfig(config) { + const validate = new Ajv().compile(TestCasesConfig.getConfigSchema()) + return validate(config) + } - static getConfigSchema() { - return { - type: 'object', - properties: { - path: { - type: 'string' - }, - data: { - type: 'object', - properties: { - suite: { - type: 'string' - }, - test: { - type: 'object', - additionalProperties: { - type: 'object', - properties: { - refs: { - type: 'array' - } - }, - additionalProperties: false - } - } - }, - required: ['suite'], - additionalProperties: false - } - }, - required: ['path', 'data'], - additionalProperties: false - } - } + static getConfigSchema() { + return { + type: 'object', + properties: { + path: { + type: 'string' + }, + data: { + type: 'object', + properties: { + suite: { + type: 'string' + }, + test: { + type: 'object', + additionalProperties: { + type: 'object', + properties: { + refs: { + type: 'array' + } + }, + additionalProperties: false + } + } + }, + required: ['suite'], + additionalProperties: false + } + }, + required: ['path', 'data'], + additionalProperties: false + } + } - static isTestCasesConfig(testCasesConfig) { - const validate = new Ajv().compile(TestCasesConfig.getTestCasesConfigSchema()) - return validate(testCasesConfig) - } + static isTestCasesConfig(testCasesConfig) { + const validate = new Ajv().compile(TestCasesConfig.getTestCasesConfigSchema()) + return validate(testCasesConfig) + } - static getTestCasesConfigSchema() { - return { - type: 'object', - properties: { - suites: { - type: 'array', - items: { - type: 'object', - properties: { - suite: { - type: 'string' - }, - config: { - type: 'string' - }, - tests: { - type: 'object', - additionalProperties: { - type: 'object', - properties: { - refs: { - type: 'array' - } - }, - additionalProperties: false - } - } - }, - required: ['suite', 'config', 'tests'], - additionalProperties: false - } - }, - tests: { - type: 'object', - additionalProperties: { - type: 'object', - properties: { - refs: { - type: 'array' - } - }, - additionalProperties: false - } - } - }, - required: ['suites', 'tests'], - additionalProperties: false - } - } + static getTestCasesConfigSchema() { + return { + type: 'object', + properties: { + suites: { + type: 'array', + items: { + type: 'object', + properties: { + suite: { + type: 'string' + }, + config: { + type: 'string' + }, + tests: { + type: 'object', + additionalProperties: { + type: 'object', + properties: { + refs: { + type: 'array' + } + }, + additionalProperties: false + } + } + }, + required: ['suite', 'config', 'tests'], + additionalProperties: false + } + }, + tests: { + type: 'object', + additionalProperties: { + type: 'object', + properties: { + refs: { + type: 'array' + } + }, + additionalProperties: false + } + } + }, + required: ['suites', 'tests'], + additionalProperties: false + } + } } module.exports = TestCasesConfig diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test.cjs b/test/integration/modules/integration-test/test-case/test-cases-config.test.cjs index 57fee3d58..8b48d3e4b 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test.cjs +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test.cjs @@ -3,122 +3,124 @@ const TestCasesConfig = require('./test-cases-config.cjs') const testCasesResult = require('./test-cases-config.test/test-cases-result.cjs') describe('getConfig()', () => { - describe('configPathList', () => { - test('if configPathList is no an array, err is thrown', () => { - return expect(TestCasesConfig.getConfig()).rejects.toThrow( - 'Assert failed: configPathList is array' - ) - }) + describe('configPathList', () => { + test('if configPathList is no an array, err is thrown', () => { + return expect(TestCasesConfig.getConfig()).rejects.toThrow( + 'Assert failed: configPathList is array' + ) + }) - test('if configPathList is an empty array', () => { - return TestCasesConfig.getConfig([]).then((config) => { - expect(config).toEqual({ suites: [], tests: {} }) - }) - }) - }) + test('if configPathList is an empty array', () => { + return TestCasesConfig.getConfig([]).then((config) => { + expect(config).toEqual({ suites: [], tests: {} }) + }) + }) + }) - describe('configPath', () => { - test('if configPath name is not string, err is thrown', () => { - return expect(TestCasesConfig.getConfig([[]])).rejects.toThrow( - 'The "path" argument must be of type string. Received an instance of Array' - ) - }) + describe('configPath', () => { + test('if configPath name is not string, err is thrown', () => { + return expect(TestCasesConfig.getConfig([[]])).rejects.toThrow( + 'The "path" argument must be of type string. Received an instance of Array' + ) + }) - test('if configPath is not file, err is thrown', () => { - return expect( - TestCasesConfig.getConfig(['./modules/integration-test/test-case/test-cases-config.test']) - ).rejects.toThrow('EISDIR: illegal operation on a directory, read') - }) + test('if configPath is not file, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test' + ]) + ).rejects.toThrow('EISDIR: illegal operation on a directory, read') + }) - test('if configPath does not exist, err is thrown', () => { - return expect( - TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notexist.json' - ]) - ).rejects.toThrow('ENOENT: no such file or directory') - }) + test('if configPath does not exist, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-notexist.json' + ]) + ).rejects.toThrow('ENOENT: no such file or directory') + }) - test('if configPath is not json, err is thrown', () => { - return expect( - TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json' - ]) - ).rejects.toThrow('Unexpected end of JSON input') - }) - }) + test('if configPath is not json, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json' + ]) + ).rejects.toThrow('Unexpected end of JSON input') + }) + }) - describe('config', () => { - describe('does not fit into schema', () => { - test('if 1, err is thrown', () => { - return expect( - TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json' - ]) - ).rejects.toThrow('Assert failed: config schema validation failed') - }) + describe('config', () => { + describe('does not fit into schema', () => { + test('if 1, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json' + ]) + ).rejects.toThrow('Assert failed: config schema validation failed') + }) - test('if 2, err is thrown', () => { - return expect( - TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json' - ]) - ).rejects.toThrow('Assert failed: config schema validation failed') - }) + test('if 2, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json' + ]) + ).rejects.toThrow('Assert failed: config schema validation failed') + }) - test('if 3, err is thrown', () => { - return expect( - TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json' - ]) - ).rejects.toThrow('Assert failed: config schema validation failed') - }) + test('if 3, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json' + ]) + ).rejects.toThrow('Assert failed: config schema validation failed') + }) - test('if 4, err is thrown', () => { - return expect( - TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json' - ]) - ).rejects.toThrow('Assert failed: config schema validation failed') - }) + test('if 4, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json' + ]) + ).rejects.toThrow('Assert failed: config schema validation failed') + }) - test('if 5, err is thrown', () => { - return expect( - TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json' - ]) - ).rejects.toThrow('Assert failed: config schema validation failed') - }) + test('if 5, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json' + ]) + ).rejects.toThrow('Assert failed: config schema validation failed') + }) - test('if 6, err is thrown', () => { - return expect( - TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json' - ]) - ).rejects.toThrow('Assert failed: config schema validation failed') - }) + test('if 6, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json' + ]) + ).rejects.toThrow('Assert failed: config schema validation failed') + }) - test('if 7, err is thrown', () => { - return expect( - TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json' - ]) - ).rejects.toThrow('Assert failed: config schema validation failed') - }) - }) + test('if 7, err is thrown', () => { + return expect( + TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json' + ]) + ).rejects.toThrow('Assert failed: config schema validation failed') + }) + }) - test('if config fits into schema, config is valid', () => { - return TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-1.json', - './modules/integration-test/test-case/test-cases-config.test/test-cases-2.json', - './modules/integration-test/test-case/test-cases-config.test/test-cases-3.json' - ]).then((config) => { - config.suites = config.suites.sort((a, b) => { - if (a.suite < b.suite) return -1 - return a.suite > b.suite ? 1 : 0 - }) - expect(config).toEqual(testCasesResult) - expect(TestCasesConfig.isTestCasesConfig(config)).toBeTruthy() - }) - }) - }) + test('if config fits into schema, config is valid', () => { + return TestCasesConfig.getConfig([ + './modules/integration-test/test-case/test-cases-config.test/test-cases-1.json', + './modules/integration-test/test-case/test-cases-config.test/test-cases-2.json', + './modules/integration-test/test-case/test-cases-config.test/test-cases-3.json' + ]).then((config) => { + config.suites = config.suites.sort((a, b) => { + if (a.suite < b.suite) return -1 + return a.suite > b.suite ? 1 : 0 + }) + expect(config).toEqual(testCasesResult) + expect(TestCasesConfig.isTestCasesConfig(config)).toBeTruthy() + }) + }) + }) }) diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json index 7394b9ba7..b28b35c23 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json @@ -1,20 +1,20 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite-1", - "test": { - "example-group-1/example-1": { - "refs": ["1111111"] - }, - "example-group-1/example-2": { - "refs": ["2222222"] - }, - "example-group-2/example-3": { - "refs": ["3333333"] - }, - "example-group-2/example-4": { - "refs": ["4444444"] - }, - "example-group-2/example-5": { - "refs": ["5555555"] - } - } + "suite": "/test/integration/modules/integration-test/test-cases/test-suite-1", + "test": { + "example-group-1/example-1": { + "refs": ["1111111"] + }, + "example-group-1/example-2": { + "refs": ["2222222"] + }, + "example-group-2/example-3": { + "refs": ["3333333"] + }, + "example-group-2/example-4": { + "refs": ["4444444"] + }, + "example-group-2/example-5": { + "refs": ["5555555"] + } + } } diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json index 10549f58f..2133c093b 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json @@ -1,17 +1,17 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite-2", - "test": { - "example-group-3/example-6": { - "refs": ["6666666"] - }, - "example-group-3/example-7": { - "refs": ["7777777"] - }, - "example-group-4/example-8": { - "refs": ["8888888"] - }, - "example-group-4/example-9": { - "refs": ["9999999"] - } - } + "suite": "/test/integration/modules/integration-test/test-cases/test-suite-2", + "test": { + "example-group-3/example-6": { + "refs": ["6666666"] + }, + "example-group-3/example-7": { + "refs": ["7777777"] + }, + "example-group-4/example-8": { + "refs": ["8888888"] + }, + "example-group-4/example-9": { + "refs": ["9999999"] + } + } } diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json index 6b344ea49..f0b14b916 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json @@ -1,3 +1,3 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite-3" + "suite": "/test/integration/modules/integration-test/test-cases/test-suite-3" } diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json index e88000e8a..fd5462cd5 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json @@ -1,3 +1,3 @@ { - "suite": 1 + "suite": 1 } diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json index 049352d98..9550d838d 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json @@ -1,4 +1,4 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite", - "foo": [] + "suite": "/test/integration/modules/integration-test/test-cases/test-suite", + "foo": [] } diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json index 2cb10b651..46b7066df 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json @@ -1,4 +1,4 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite", - "test": [] + "suite": "/test/integration/modules/integration-test/test-cases/test-suite", + "test": [] } diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json index 50e5ec308..87f6cfd5e 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json @@ -1,8 +1,8 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite", - "test": { - "example": { - "refs": "" - } - } + "suite": "/test/integration/modules/integration-test/test-cases/test-suite", + "test": { + "example": { + "refs": "" + } + } } diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json index 49c925285..ab4df633d 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json @@ -1,8 +1,8 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite", - "test": { - "example": { - "animstep": 1 - } - } + "suite": "/test/integration/modules/integration-test/test-cases/test-suite", + "test": { + "example": { + "animstep": 1 + } + } } diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs index fe59798cc..dbcc496f9 100644 --- a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs +++ b/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs @@ -1,111 +1,111 @@ const TestEnv = require('../../../../modules/integration-test/test-env.cjs') const testCasesResult = { - suites: [ - { - config: - TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json', - suite: - TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-cases/test-suite-1', - tests: { - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-1': - { - refs: ['1111111'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-2': - { - refs: ['2222222'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-3': - { - refs: ['3333333'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-4': - { - refs: ['4444444'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-5': - { - refs: ['5555555'] - } - } - }, - { - config: - TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json', - suite: - TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-cases/test-suite-2', - tests: { - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-6': - { - refs: ['6666666'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-7': - { - refs: ['7777777'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-8': - { - refs: ['8888888'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-9': - { - refs: ['9999999'] - } - } - }, - { - config: - TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json', - suite: - TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-cases/test-suite-3', - tests: {} - } - ], - tests: { - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-1': - { - refs: ['1111111'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-2': - { - refs: ['2222222'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-3': - { - refs: ['3333333'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-4': - { - refs: ['4444444'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-5': - { - refs: ['5555555'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-6': - { - refs: ['6666666'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-7': - { - refs: ['7777777'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-8': - { - refs: ['8888888'] - }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-9': - { - refs: ['9999999'] - } - } + suites: [ + { + config: + TestEnv.getWorkspacePath() + + '/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json', + suite: + TestEnv.getWorkspacePath() + + '/test/integration/modules/integration-test/test-cases/test-suite-1', + tests: { + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-1': + { + refs: ['1111111'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-2': + { + refs: ['2222222'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-3': + { + refs: ['3333333'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-4': + { + refs: ['4444444'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-5': + { + refs: ['5555555'] + } + } + }, + { + config: + TestEnv.getWorkspacePath() + + '/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json', + suite: + TestEnv.getWorkspacePath() + + '/test/integration/modules/integration-test/test-cases/test-suite-2', + tests: { + '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-6': + { + refs: ['6666666'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-7': + { + refs: ['7777777'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-8': + { + refs: ['8888888'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-9': + { + refs: ['9999999'] + } + } + }, + { + config: + TestEnv.getWorkspacePath() + + '/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json', + suite: + TestEnv.getWorkspacePath() + + '/test/integration/modules/integration-test/test-cases/test-suite-3', + tests: {} + } + ], + tests: { + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-1': + { + refs: ['1111111'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-2': + { + refs: ['2222222'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-3': + { + refs: ['3333333'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-4': + { + refs: ['4444444'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-5': + { + refs: ['5555555'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-6': + { + refs: ['6666666'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-7': + { + refs: ['7777777'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-8': + { + refs: ['8888888'] + }, + '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-9': + { + refs: ['9999999'] + } + } } module.exports = testCasesResult diff --git a/test/integration/modules/integration-test/test-case/test-cases.cjs b/test/integration/modules/integration-test/test-case/test-cases.cjs index 5beb10414..a15ab97aa 100644 --- a/test/integration/modules/integration-test/test-case/test-cases.cjs +++ b/test/integration/modules/integration-test/test-case/test-cases.cjs @@ -7,251 +7,272 @@ const TestEnv = require('../../../modules/integration-test/test-env.cjs') const TestCasesConfig = require('../../../modules/integration-test/test-case/test-cases-config.cjs') class TestCases { - static getTestCases(testCasesConfigReady, filters) { - return new Promise((resolve, reject) => { - testCasesConfigReady.then((configs) => { - try { - assert( - TestCasesConfig.isTestCasesConfig(configs), - 'test cases config schema validation failed' - ) - const testCasesReadyList = [] - const filteredTestCasesReadyList = [] - configs.suites.forEach((suite) => { - const testCasesReady = TestCases.collectTestCases(suite, suite.suite) - testCasesReadyList.push(testCasesReady) - testCasesReady - .then((testCases) => { - const filteredTestCasesReady = TestCases.filterTestCases( - testCases, - suite.suite, - filters - ) - filteredTestCasesReadyList.push(filteredTestCasesReady) - }) - .catch((err) => { - return reject(err) - }) - }) - Promise.all(testCasesReadyList) - .then((testCasesList) => { - testCasesList = testCasesList.flat(1) - Promise.all(filteredTestCasesReadyList).then((filteredTestCasesList) => { - filteredTestCasesList = filteredTestCasesList.flat(1) - testCasesList.sort((a, b) => (a.testName > b.testName ? 1 : -1)) - filteredTestCasesList.sort((a, b) => (a.testName > b.testName ? 1 : -1)) - return resolve({ - testCases: testCasesList, - filteredTestCases: filteredTestCasesList - }) - }) - }) - .catch((err) => { - return reject(err) - }) - } catch (err) { - return reject(err) - } - }) - }) - } + static getTestCases(testCasesConfigReady, filters) { + return new Promise((resolve, reject) => { + testCasesConfigReady.then((configs) => { + try { + assert( + TestCasesConfig.isTestCasesConfig(configs), + 'test cases config schema validation failed' + ) + const testCasesReadyList = [] + const filteredTestCasesReadyList = [] + configs.suites.forEach((suite) => { + const testCasesReady = TestCases.collectTestCases(suite, suite.suite) + testCasesReadyList.push(testCasesReady) + testCasesReady + .then((testCases) => { + const filteredTestCasesReady = TestCases.filterTestCases( + testCases, + suite.suite, + filters + ) + filteredTestCasesReadyList.push(filteredTestCasesReady) + }) + .catch((err) => { + return reject(err) + }) + }) + Promise.all(testCasesReadyList) + .then((testCasesList) => { + testCasesList = testCasesList.flat(1) + Promise.all(filteredTestCasesReadyList).then( + (filteredTestCasesList) => { + filteredTestCasesList = filteredTestCasesList.flat(1) + testCasesList.sort((a, b) => (a.testName > b.testName ? 1 : -1)) + filteredTestCasesList.sort((a, b) => + a.testName > b.testName ? 1 : -1 + ) + return resolve({ + testCases: testCasesList, + filteredTestCases: filteredTestCasesList + }) + } + ) + }) + .catch((err) => { + return reject(err) + }) + } catch (err) { + return reject(err) + } + }) + }) + } - static collectTestCases(suite, p, testCases = []) { - return new Promise((resolve, reject) => { - fs.lstat(p, (err, stats) => { - if (err) { - return reject(err) - } else { - if (stats.isDirectory()) { - fs.readdir(p, (err, items) => { - if (err) { - return reject(err) - } else { - const testCasesReady = [] - items.forEach((item) => { - const testCaseReady = TestCases.collectTestCases( - suite, - path.join(p, item), - testCases - ) - testCasesReady.push(testCaseReady) - testCaseReady - .then((newTestCases) => { - testCases = testCases.concat(newTestCases) - }) - .catch((err) => { - return reject(err) - }) - }) - Promise.all(testCasesReady) - .then(() => { - return resolve(testCases) - }) - .catch((err) => { - return reject(err) - }) - } - }) - } else { - if (path.extname(p) === '.mjs') { - TestCases.preprocessTestCases(suite, p) - .then((testCases) => { - return resolve(testCases) - }) - .catch((err) => { - return reject(err) - }) - } else { - return resolve([]) - } - } - } - }) - }) - } + static collectTestCases(suite, p, testCases = []) { + return new Promise((resolve, reject) => { + fs.lstat(p, (err, stats) => { + if (err) { + return reject(err) + } else { + if (stats.isDirectory()) { + fs.readdir(p, (err, items) => { + if (err) { + return reject(err) + } else { + const testCasesReady = [] + items.forEach((item) => { + const testCaseReady = TestCases.collectTestCases( + suite, + path.join(p, item), + testCases + ) + testCasesReady.push(testCaseReady) + testCaseReady + .then((newTestCases) => { + testCases = testCases.concat(newTestCases) + }) + .catch((err) => { + return reject(err) + }) + }) + Promise.all(testCasesReady) + .then(() => { + return resolve(testCases) + }) + .catch((err) => { + return reject(err) + }) + } + }) + } else { + if (path.extname(p) === '.mjs') { + TestCases.preprocessTestCases(suite, p) + .then((testCases) => { + return resolve(testCases) + }) + .catch((err) => { + return reject(err) + }) + } else { + return resolve([]) + } + } + } + }) + }) + } - static filterTestCases(testCases, suitePath, filters = []) { - return new Promise((resolve, reject) => { - let filteredTestCases = [] - if (filters.length === 0) { - filteredTestCases = testCases - } else { - const testKeys = {} - testCases.forEach((testCase) => { - if (testCase.testName !== testCase.testFile) { - if (testKeys[testCase.testFile] !== undefined) { - testKeys[testCase.testFile].push(testCase) - } else { - testKeys[testCase.testFile] = [testCase] - } - } - testKeys[testCase.testName] = [testCase] - }) - filters.forEach((filter) => { - const parsedFilter = path.parse(filter) - if (parsedFilter.ext === '.mjs') { - filter = path.join(parsedFilter.dir, parsedFilter.name) - } - if (path.dirname(filter) === '.') { - testCases.forEach((testCase) => { - if ( - path.basename(filter) === path.basename(testCase.testName) || - path.basename(filter) === path.basename(testCase.testFile) - ) { - filteredTestCases.push(testCase) - } - }) - } else { - if (testKeys[filter]) { - filteredTestCases = filteredTestCases.concat(testKeys[filter]) - } else { - const filterPathInSuite = - '/' + path.join(path.relative(TestEnv.getWorkspacePath(), suitePath), filter) - const filterRelative = - '/' + - path.relative( - TestEnv.getWorkspacePath(), - WorkspacePath.resolvePath( - filter, - TestEnv.getWorkspacePath(), - TestEnv.getTestSuitePath() - ) - ) - const filterAbsolute = '/' + path.relative(TestEnv.getWorkspacePath(), filter) - if (testKeys[filterPathInSuite]) { - filteredTestCases = filteredTestCases.concat(testKeys[filterPathInSuite]) - } else if (testKeys[filterRelative]) { - filteredTestCases = filteredTestCases.concat(testKeys[filterRelative]) - } else if (testKeys[filterAbsolute]) { - filteredTestCases = filteredTestCases.concat(testKeys[filterAbsolute]) - } - } - } - }) - } - return resolve(filteredTestCases) - }) - } + static filterTestCases(testCases, suitePath, filters = []) { + return new Promise((resolve, reject) => { + let filteredTestCases = [] + if (filters.length === 0) { + filteredTestCases = testCases + } else { + const testKeys = {} + testCases.forEach((testCase) => { + if (testCase.testName !== testCase.testFile) { + if (testKeys[testCase.testFile] !== undefined) { + testKeys[testCase.testFile].push(testCase) + } else { + testKeys[testCase.testFile] = [testCase] + } + } + testKeys[testCase.testName] = [testCase] + }) + filters.forEach((filter) => { + const parsedFilter = path.parse(filter) + if (parsedFilter.ext === '.mjs') { + filter = path.join(parsedFilter.dir, parsedFilter.name) + } + if (path.dirname(filter) === '.') { + testCases.forEach((testCase) => { + if ( + path.basename(filter) === path.basename(testCase.testName) || + path.basename(filter) === path.basename(testCase.testFile) + ) { + filteredTestCases.push(testCase) + } + }) + } else { + if (testKeys[filter]) { + filteredTestCases = filteredTestCases.concat(testKeys[filter]) + } else { + const filterPathInSuite = + '/' + + path.join( + path.relative(TestEnv.getWorkspacePath(), suitePath), + filter + ) + const filterRelative = + '/' + + path.relative( + TestEnv.getWorkspacePath(), + WorkspacePath.resolvePath( + filter, + TestEnv.getWorkspacePath(), + TestEnv.getTestSuitePath() + ) + ) + const filterAbsolute = + '/' + path.relative(TestEnv.getWorkspacePath(), filter) + if (testKeys[filterPathInSuite]) { + filteredTestCases = filteredTestCases.concat( + testKeys[filterPathInSuite] + ) + } else if (testKeys[filterRelative]) { + filteredTestCases = filteredTestCases.concat( + testKeys[filterRelative] + ) + } else if (testKeys[filterAbsolute]) { + filteredTestCases = filteredTestCases.concat( + testKeys[filterAbsolute] + ) + } + } + } + }) + } + return resolve(filteredTestCases) + }) + } - static preprocessTestCases(suite, p) { - return new Promise((resolve, reject) => { - const testCase = path.relative(TestEnv.getWorkspacePath(), p) - const testCaseWoExt = path.join('/', path.dirname(testCase), path.basename(testCase, '.mjs')) - TestCases.validateTestCaseName(testCaseWoExt) - TestCases.importTestCase(p).then((testCaseContent) => { - if (testCaseContent) { - testCaseContent = testCaseContent.default - } - // eslint-disable-next-line prefer-promise-reject-errors - if (!Array.isArray(testCaseContent)) return reject(p + ': test case file validation failed') - // eslint-disable-next-line prefer-promise-reject-errors - if (testCaseContent.length === 0) return reject(p + ': test case file validation failed') - let testCasestype - let testCasestypesOK = true - testCaseContent.forEach((testCaseContentItem) => { - if (typeof testCaseContentItem === 'object') { - if (testCaseContentItem === null || Array.isArray(testCaseContentItem)) { - testCasestypesOK = false - } - } else if (typeof testCaseContentItem !== 'function') { - testCasestypesOK = false - } - if (!testCasestype) { - testCasestype = typeof testCaseContentItem - } else { - // eslint-disable-next-line valid-typeof - if (testCasestype !== typeof testCaseContentItem) testCasestypesOK = false - } - }) - if (!testCasestypesOK) { - // eslint-disable-next-line prefer-promise-reject-errors - return reject(p + ': test case file validation failed') - } - const workspacePath = TestEnv.getWorkspacePath() - const suiteRelPath = path.relative(workspacePath, suite.suite) - if (testCasestype === 'function') { - return resolve([ - { - testFile: testCaseWoExt, - testType: 'single', - testName: testCaseWoExt, - testIndex: undefined, - testRepo: workspacePath, - testSuite: suiteRelPath, - testConfig: suite.config - } - ]) - } else { - const testCaseContentItems = [] - testCaseContent.forEach((element, index) => { - testCaseContentItems.push({ - testFile: testCaseWoExt, - testType: 'multi', - testName: testCaseWoExt + '/' + element.testName, - testIndex: index, - testRepo: workspacePath, - testSuite: suiteRelPath, - testConfig: suite.config, - errorMsg: element.errorMsg - }) - }) - return resolve(testCaseContentItems) - } - }) - }) - } + static preprocessTestCases(suite, p) { + return new Promise((resolve, reject) => { + const testCase = path.relative(TestEnv.getWorkspacePath(), p) + const testCaseWoExt = path.join( + '/', + path.dirname(testCase), + path.basename(testCase, '.mjs') + ) + TestCases.validateTestCaseName(testCaseWoExt) + TestCases.importTestCase(p).then((testCaseContent) => { + if (testCaseContent) { + testCaseContent = testCaseContent.default + } + if (!Array.isArray(testCaseContent)) + // eslint-disable-next-line prefer-promise-reject-errors + return reject(p + ': test case file validation failed') + if (testCaseContent.length === 0) + // eslint-disable-next-line prefer-promise-reject-errors + return reject(p + ': test case file validation failed') + let testCasestype + let testCasestypesOK = true + testCaseContent.forEach((testCaseContentItem) => { + if (typeof testCaseContentItem === 'object') { + if (testCaseContentItem === null || Array.isArray(testCaseContentItem)) { + testCasestypesOK = false + } + } else if (typeof testCaseContentItem !== 'function') { + testCasestypesOK = false + } + if (!testCasestype) { + testCasestype = typeof testCaseContentItem + } else { + // eslint-disable-next-line valid-typeof + if (testCasestype !== typeof testCaseContentItem) testCasestypesOK = false + } + }) + if (!testCasestypesOK) { + // eslint-disable-next-line prefer-promise-reject-errors + return reject(p + ': test case file validation failed') + } + const workspacePath = TestEnv.getWorkspacePath() + const suiteRelPath = path.relative(workspacePath, suite.suite) + if (testCasestype === 'function') { + return resolve([ + { + testFile: testCaseWoExt, + testType: 'single', + testName: testCaseWoExt, + testIndex: undefined, + testRepo: workspacePath, + testSuite: suiteRelPath, + testConfig: suite.config + } + ]) + } else { + const testCaseContentItems = [] + testCaseContent.forEach((element, index) => { + testCaseContentItems.push({ + testFile: testCaseWoExt, + testType: 'multi', + testName: testCaseWoExt + '/' + element.testName, + testIndex: index, + testRepo: workspacePath, + testSuite: suiteRelPath, + testConfig: suite.config, + errorMsg: element.errorMsg + }) + }) + return resolve(testCaseContentItems) + } + }) + }) + } - static importTestCase(p) { - return import(p) - } + static importTestCase(p) { + return import(p) + } - static validateTestCaseName(p) { - const invalidChars = /[ ()]/ + static validateTestCaseName(p) { + const invalidChars = /[ ()]/ - if (invalidChars.test(p)) { - throw new Error(`failed to load test case (contains invalid char): ${p}`) - } - } + if (invalidChars.test(p)) { + throw new Error(`failed to load test case (contains invalid char): ${p}`) + } + } } module.exports = TestCases diff --git a/test/integration/modules/integration-test/test-case/test-cases.test.cjs b/test/integration/modules/integration-test/test-case/test-cases.test.cjs index d05f62a88..306655d7a 100644 --- a/test/integration/modules/integration-test/test-case/test-cases.test.cjs +++ b/test/integration/modules/integration-test/test-case/test-cases.test.cjs @@ -6,467 +6,471 @@ const TestCases = require('./test-cases.cjs') const suites = path.join(__dirname, '../../../test_report/unit/test-cases') const testPathList = [ - path.join(suites, 'suite1', 'notest1.js'), - path.join(suites, 'suite1', 'test1.mjs'), - path.join(suites, 'suite1', 'testgroup1a', 'test1a.mjs'), - path.join(suites, 'suite1', 'testgroup1a', 'test1aa.mjs'), - path.join(suites, 'suite1', 'testgroup1a', 'testgroup1b', 'test1b.mjs'), - path.join(suites, 'suite1', 'testgroup1a', 'testgroup1b', 'test1bb.mjs'), - path.join(suites, 'suite1', 'testgroup1a', 'testgroup1b', 'testgroup1c', 'test1c.mjs'), - path.join(suites, 'suite2', 'test2.mjs'), - path.join(suites, 'suite2', 'testgroup2a', 'test2a.mjs'), - path.join(suites, 'suite2', 'testgroup2a', 'test2aa.mjs'), - path.join(suites, 'suite2', 'testgroup2a', 'testgroup2b', 'test2b.mjs'), - path.join(suites, 'suite2', 'testgroup2a', 'testgroup2b', 'test2bb.mjs'), - path.join(suites, 'suite2', 'testgroup2a', 'testgroup2b', 'testgroup2c', 'test2c.mjs'), - path.join(suites, 'suite2', 'testgroup2d', 'test2d.mjs'), - path.join(suites, 'suite2', 'testgroup2d', 'notest2.js') + path.join(suites, 'suite1', 'notest1.js'), + path.join(suites, 'suite1', 'test1.mjs'), + path.join(suites, 'suite1', 'testgroup1a', 'test1a.mjs'), + path.join(suites, 'suite1', 'testgroup1a', 'test1aa.mjs'), + path.join(suites, 'suite1', 'testgroup1a', 'testgroup1b', 'test1b.mjs'), + path.join(suites, 'suite1', 'testgroup1a', 'testgroup1b', 'test1bb.mjs'), + path.join(suites, 'suite1', 'testgroup1a', 'testgroup1b', 'testgroup1c', 'test1c.mjs'), + path.join(suites, 'suite2', 'test2.mjs'), + path.join(suites, 'suite2', 'testgroup2a', 'test2a.mjs'), + path.join(suites, 'suite2', 'testgroup2a', 'test2aa.mjs'), + path.join(suites, 'suite2', 'testgroup2a', 'testgroup2b', 'test2b.mjs'), + path.join(suites, 'suite2', 'testgroup2a', 'testgroup2b', 'test2bb.mjs'), + path.join(suites, 'suite2', 'testgroup2a', 'testgroup2b', 'testgroup2c', 'test2c.mjs'), + path.join(suites, 'suite2', 'testgroup2d', 'test2d.mjs'), + path.join(suites, 'suite2', 'testgroup2d', 'notest2.js') ] const testCaseList = [ - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: '/test/integration/test_report/unit/test-cases/suite1/test1', - testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite1/test1', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1a', - testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1a', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1aa', - testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1aa', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', - testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', - testIndex: undefined, - testName: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/testgroup1c/test1c', - testIndex: undefined, - testName: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/testgroup1c/test1c', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: '/test/integration/test_report/unit/test-cases/suite2/test2', - testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite2/test2', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2a', - testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2a', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2aa', - testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2aa', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', - testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', - testIndex: undefined, - testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - errorMsg: undefined, - testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', - testIndex: 0, - testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c1', - testType: 'multi' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - errorMsg: undefined, - testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', - testIndex: 1, - testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c2', - testType: 'multi' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2d/test2d', - testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2d/test2d', - testType: 'single' - } + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testFile: '/test/integration/test_report/unit/test-cases/suite1/test1', + testIndex: undefined, + testName: '/test/integration/test_report/unit/test-cases/suite1/test1', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testFile: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1a', + testIndex: undefined, + testName: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1a', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testFile: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1aa', + testIndex: undefined, + testName: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1aa', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testFile: + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', + testIndex: undefined, + testName: + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testFile: + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + testIndex: undefined, + testName: + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testFile: + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/testgroup1c/test1c', + testIndex: undefined, + testName: + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/testgroup1c/test1c', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testFile: '/test/integration/test_report/unit/test-cases/suite2/test2', + testIndex: undefined, + testName: '/test/integration/test_report/unit/test-cases/suite2/test2', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2a', + testIndex: undefined, + testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2a', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2aa', + testIndex: undefined, + testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2aa', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testFile: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', + testIndex: undefined, + testName: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testFile: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', + testIndex: undefined, + testName: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + errorMsg: undefined, + testFile: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', + testIndex: 0, + testName: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c1', + testType: 'multi' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + errorMsg: undefined, + testFile: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', + testIndex: 1, + testName: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c2', + testType: 'multi' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2d/test2d', + testIndex: undefined, + testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2d/test2d', + testType: 'single' + } ] const filteredTestCaseList = [ - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', - testIndex: undefined, - testName: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', - testType: 'single' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - errorMsg: undefined, - testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', - testIndex: 0, - testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c1', - testType: 'multi' - }, - { - testConfig: '', - testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - errorMsg: undefined, - testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', - testIndex: 1, - testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c2', - testType: 'multi' - } + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testFile: + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + testIndex: undefined, + testName: + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + testType: 'single' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + errorMsg: undefined, + testFile: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', + testIndex: 0, + testName: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c1', + testType: 'multi' + }, + { + testConfig: '', + testRepo: path.join(__dirname, '../../../../..'), + testSuite: 'test/integration/test_report/unit/test-cases/suite2', + errorMsg: undefined, + testFile: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', + testIndex: 1, + testName: + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c2', + testType: 'multi' + } ] const testCasesConfigReady = new Promise((resolve, reject) => { - return resolve({ - suites: [ - { - suite: './test/integration/test_report/unit/test-cases/suite1', - config: '', - tests: {} - }, - { - suite: './test/integration/test_report/unit/test-cases/suite2', - config: '', - tests: {} - } - ], - tests: {} - }) + return resolve({ + suites: [ + { + suite: './test/integration/test_report/unit/test-cases/suite1', + config: '', + tests: {} + }, + { + suite: './test/integration/test_report/unit/test-cases/suite2', + config: '', + tests: {} + } + ], + tests: {} + }) }) beforeEach(() => { - jest.useFakeTimers() - jest.resetAllMocks() - jest.spyOn(TestCases, 'importTestCase').mockImplementation((p) => { - if ( - p === - 'test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c.mjs' - ) { - return new Promise((resolve, reject) => { - return resolve({ - default: [ - { - testName: 'c1', - testSteps: [() => {}] - }, - { - testName: 'c2', - testSteps: [() => {}] - } - ] - }) - }) - } else { - return new Promise((resolve, reject) => { - return resolve({ default: [() => {}] }) - }) - } - }) + jest.useFakeTimers() + jest.resetAllMocks() + jest.spyOn(TestCases, 'importTestCase').mockImplementation((p) => { + if ( + p === + 'test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c.mjs' + ) { + return new Promise((resolve, reject) => { + return resolve({ + default: [ + { + testName: 'c1', + testSteps: [() => {}] + }, + { + testName: 'c2', + testSteps: [() => {}] + } + ] + }) + }) + } else { + return new Promise((resolve, reject) => { + return resolve({ default: [() => {}] }) + }) + } + }) }) beforeAll(() => { - return new Promise((resolve, reject) => { - const testsReady = [] - testPathList.forEach((testPath) => { - // eslint-disable-next-line promise/param-names - const testReady = new Promise((testResolve, testReject) => { - fs.rm(suites, { recursive: true, force: true }, (err) => { - if (err) { - testReject(err) - } - fs.mkdir(path.dirname(testPath), { force: true, recursive: true }, (err) => { - if (err) { - testReject(err) - } - fs.open(testPath, 'w', (err) => { - if (err) { - testReject(err) - } - testResolve() - }) - }) - }) - }) - testsReady.push(testReady) - }) + return new Promise((resolve, reject) => { + const testsReady = [] + testPathList.forEach((testPath) => { + // eslint-disable-next-line promise/param-names + const testReady = new Promise((testResolve, testReject) => { + fs.rm(suites, { recursive: true, force: true }, (err) => { + if (err) { + testReject(err) + } + fs.mkdir(path.dirname(testPath), { force: true, recursive: true }, (err) => { + if (err) { + testReject(err) + } + fs.open(testPath, 'w', (err) => { + if (err) { + testReject(err) + } + testResolve() + }) + }) + }) + }) + testsReady.push(testReady) + }) - Promise.all(testsReady) - .then(() => { - resolve() - }) - .catch((err) => { - reject(err) - }) - }) + Promise.all(testsReady) + .then(() => { + resolve() + }) + .catch((err) => { + reject(err) + }) + }) }) describe('getTestCases()', () => { - describe('testCasesConfigReady', () => { - test('if undefined, err is thrown', () => { - return expect(TestCases.getTestCases()).rejects.toThrow( - "Cannot read properties of undefined (reading 'then')" - ) - }) + describe('testCasesConfigReady', () => { + test('if undefined, err is thrown', () => { + return expect(TestCases.getTestCases()).rejects.toThrow( + "Cannot read properties of undefined (reading 'then')" + ) + }) - test('if not a promise, err is thrown', () => { - return expect(TestCases.getTestCases('testCasesConfigReady')).rejects.toThrow( - 'testCasesConfigReady.then is not a function' - ) - }) + test('if not a promise, err is thrown', () => { + return expect(TestCases.getTestCases('testCasesConfigReady')).rejects.toThrow( + 'testCasesConfigReady.then is not a function' + ) + }) - test('if does not fit into schema, err is thrown', () => { - const testCasesConfigReady = new Promise((resolve, reject) => { - return resolve({}) - }) - return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toThrow( - 'Assert failed: test cases config schema validation failed' - ) - }) + test('if does not fit into schema, err is thrown', () => { + const testCasesConfigReady = new Promise((resolve, reject) => { + return resolve({}) + }) + return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toThrow( + 'Assert failed: test cases config schema validation failed' + ) + }) - test('if fits into schema, test cases are valid', () => { - return TestCases.getTestCases(testCasesConfigReady).then((testCases) => { - expect(testCases).toEqual({ - testCases: testCaseList, - filteredTestCases: testCaseList - }) - }) - }) + test('if fits into schema, test cases are valid', () => { + return TestCases.getTestCases(testCasesConfigReady).then((testCases) => { + expect(testCases).toEqual({ + testCases: testCaseList, + filteredTestCases: testCaseList + }) + }) + }) - test('if suite does not exist, err is thrown', () => { - const wrongTestCasesConfigReadyENOENT = new Promise((resolve, reject) => { - return resolve({ - suites: [ - { - suite: './test_report/unit/test-cases/suite3', - config: '', - tests: {} - } - ], - tests: {} - }) - }) - return expect(TestCases.getTestCases(wrongTestCasesConfigReadyENOENT)).rejects.toThrow( - "ENOENT: no such file or directory, lstat './test_report/unit/test-cases/suite3'" - ) - }) + test('if suite does not exist, err is thrown', () => { + const wrongTestCasesConfigReadyENOENT = new Promise((resolve, reject) => { + return resolve({ + suites: [ + { + suite: './test_report/unit/test-cases/suite3', + config: '', + tests: {} + } + ], + tests: {} + }) + }) + return expect(TestCases.getTestCases(wrongTestCasesConfigReadyENOENT)).rejects.toThrow( + "ENOENT: no such file or directory, lstat './test_report/unit/test-cases/suite3'" + ) + }) - test('if test file is not array, err is thrown', () => { - jest.spyOn(TestCases, 'importTestCase').mockReturnValue( - new Promise((resolve, reject) => { - return resolve({ default: undefined }) - }) - ) - return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( - 'test case file validation failed' - ) - }) + test('if test file is not array, err is thrown', () => { + jest.spyOn(TestCases, 'importTestCase').mockReturnValue( + new Promise((resolve, reject) => { + return resolve({ default: undefined }) + }) + ) + return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( + 'test case file validation failed' + ) + }) - test('if test file is an empty array, err is thrown', () => { - jest.spyOn(TestCases, 'importTestCase').mockReturnValue( - new Promise((resolve, reject) => { - return resolve({ default: [] }) - }) - ) - return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( - 'test case file validation failed' - ) - }) + test('if test file is an empty array, err is thrown', () => { + jest.spyOn(TestCases, 'importTestCase').mockReturnValue( + new Promise((resolve, reject) => { + return resolve({ default: [] }) + }) + ) + return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( + 'test case file validation failed' + ) + }) - test('if test case type is not an object or function, err is thrown', () => { - jest.spyOn(TestCases, 'importTestCase').mockReturnValue( - new Promise((resolve, reject) => { - return resolve({ default: ['string'] }) - }) - ) - return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( - 'test case file validation failed' - ) - }) + test('if test case type is not an object or function, err is thrown', () => { + jest.spyOn(TestCases, 'importTestCase').mockReturnValue( + new Promise((resolve, reject) => { + return resolve({ default: ['string'] }) + }) + ) + return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( + 'test case file validation failed' + ) + }) - test('if test case type is null, err is thrown', () => { - jest.spyOn(TestCases, 'importTestCase').mockReturnValue( - new Promise((resolve, reject) => { - return resolve({ default: [null] }) - }) - ) - return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( - 'test case file validation failed' - ) - }) + test('if test case type is null, err is thrown', () => { + jest.spyOn(TestCases, 'importTestCase').mockReturnValue( + new Promise((resolve, reject) => { + return resolve({ default: [null] }) + }) + ) + return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( + 'test case file validation failed' + ) + }) - test('if test case type is an array, err is thrown', () => { - jest.spyOn(TestCases, 'importTestCase').mockReturnValue( - new Promise((resolve, reject) => { - return resolve({ default: [[]] }) - }) - ) - return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( - 'test case file validation failed' - ) - }) + test('if test case type is an array, err is thrown', () => { + jest.spyOn(TestCases, 'importTestCase').mockReturnValue( + new Promise((resolve, reject) => { + return resolve({ default: [[]] }) + }) + ) + return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( + 'test case file validation failed' + ) + }) - test('if test case types are different, err is thrown', () => { - jest.spyOn(TestCases, 'importTestCase').mockReturnValue( - new Promise((resolve, reject) => { - return resolve({ default: [() => {}, {}] }) - }) - ) - return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( - 'test case file validation failed' - ) - }) - }) + test('if test case types are different, err is thrown', () => { + jest.spyOn(TestCases, 'importTestCase').mockReturnValue( + new Promise((resolve, reject) => { + return resolve({ default: [() => {}, {}] }) + }) + ) + return expect(TestCases.getTestCases(testCasesConfigReady)).rejects.toContain( + 'test case file validation failed' + ) + }) + }) - describe('filters', () => { - test('if name, filtered test cases are valid', () => { - return TestCases.getTestCases(testCasesConfigReady, ['test1bb', 'test2c.mjs']).then( - (testCases) => { - expect(testCases).toEqual({ - testCases: testCaseList, - filteredTestCases: filteredTestCaseList - }) - } - ) - }) + describe('filters', () => { + test('if name, filtered test cases are valid', () => { + return TestCases.getTestCases(testCasesConfigReady, ['test1bb', 'test2c.mjs']).then( + (testCases) => { + expect(testCases).toEqual({ + testCases: testCaseList, + filteredTestCases: filteredTestCaseList + }) + } + ) + }) - test('if path (in suite), filtered test cases are valid', () => { - return TestCases.getTestCases(testCasesConfigReady, [ - 'testgroup1a/testgroup1b/test1bb', - 'testgroup2a/testgroup2b/testgroup2c/test2c' - ]).then((testCases) => { - expect(testCases).toEqual({ - testCases: testCaseList, - filteredTestCases: filteredTestCaseList - }) - }) - }) + test('if path (in suite), filtered test cases are valid', () => { + return TestCases.getTestCases(testCasesConfigReady, [ + 'testgroup1a/testgroup1b/test1bb', + 'testgroup2a/testgroup2b/testgroup2c/test2c' + ]).then((testCases) => { + expect(testCases).toEqual({ + testCases: testCaseList, + filteredTestCases: filteredTestCaseList + }) + }) + }) - test('if absolute path, filtered test cases are valid', () => { - return TestCases.getTestCases(testCasesConfigReady, [ - path.join( - TestEnv.getWorkspacePath(), - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb' - ), - path.join( - TestEnv.getWorkspacePath(), - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' - ) - ]).then((testCases) => { - expect(testCases).toEqual({ - testCases: testCaseList, - filteredTestCases: filteredTestCaseList - }) - }) - }) + test('if absolute path, filtered test cases are valid', () => { + return TestCases.getTestCases(testCasesConfigReady, [ + path.join( + TestEnv.getWorkspacePath(), + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb' + ), + path.join( + TestEnv.getWorkspacePath(), + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' + ) + ]).then((testCases) => { + expect(testCases).toEqual({ + testCases: testCaseList, + filteredTestCases: filteredTestCaseList + }) + }) + }) - test('if absolute path (workspace), filtered test cases are valid', () => { - return TestCases.getTestCases(testCasesConfigReady, [ - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' - ]).then((testCases) => { - expect(testCases).toEqual({ - testCases: testCaseList, - filteredTestCases: filteredTestCaseList - }) - }) - }) + test('if absolute path (workspace), filtered test cases are valid', () => { + return TestCases.getTestCases(testCasesConfigReady, [ + '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' + ]).then((testCases) => { + expect(testCases).toEqual({ + testCases: testCaseList, + filteredTestCases: filteredTestCaseList + }) + }) + }) - test('if relative path (workspace), filtered test cases are valid', () => { - return TestCases.getTestCases(testCasesConfigReady, [ - './test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', - 'test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' - ]).then((testCases) => { - expect(testCases).toEqual({ - testCases: testCaseList, - filteredTestCases: filteredTestCaseList - }) - }) - }) - }) + test('if relative path (workspace), filtered test cases are valid', () => { + return TestCases.getTestCases(testCasesConfigReady, [ + './test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + 'test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' + ]).then((testCases) => { + expect(testCases).toEqual({ + testCases: testCaseList, + filteredTestCases: filteredTestCaseList + }) + }) + }) + }) }) diff --git a/test/integration/modules/integration-test/test-console.cjs b/test/integration/modules/integration-test/test-console.cjs index 5aa58244e..c8142059b 100644 --- a/test/integration/modules/integration-test/test-console.cjs +++ b/test/integration/modules/integration-test/test-console.cjs @@ -5,126 +5,126 @@ const TestEnv = require('../../modules/integration-test/test-env.cjs') const Console = require('../../modules/console/console.cjs') class TestConsole extends Console { - #fileLog - - #testSuiteLogPath - - #testResultsLogsReady - - #testStatusPad = 8 - #testNumberPad = 0 - - constructor(fileLog) { - if (fileLog) { - // eslint-disable-next-line no-var - var filePrefix = 'integration.test' - const pathPrefix = 'logs' - // eslint-disable-next-line no-var - var testSuiteLogPath = path.join(TestEnv.getTestSuiteReportPath(), pathPrefix) - } - super(filePrefix, testSuiteLogPath) - this.#fileLog = fileLog - this.#testSuiteLogPath = testSuiteLogPath - this.#testResultsLogsReady = this.#createResultsLogs() - } - - getTestSuiteLogPath() { - return this.#testSuiteLogPath - } - - getTestStatusPad() { - return this.#testStatusPad - } - - getTestNumberPad() { - return this.#testNumberPad - } - - setTestStatusPad(testStatusPad) { - testStatusPad = parseInt(testStatusPad) - if (isNaN(testStatusPad)) { - throw new Error('testStatusPad is integer') - } - this.#testStatusPad = testStatusPad - } - - setTestNumberPad(testNumberPad) { - testNumberPad = parseInt(testNumberPad) - if (isNaN(testNumberPad)) { - throw new Error('testNumberPad is integer') - } - this.#testNumberPad = testNumberPad - } - - #createResultsLogs() { - const resultsReadies = [] - Object.entries(TestEnv.ResultLogTypes).forEach(([resultName, resultType]) => { - const logPath = path.join(TestEnv.getTestSuiteReportPath(), resultType) - resultsReadies.push(this.#createResultLog(logPath)) - }) - return Promise.all(resultsReadies) - } - - #createResultLog(logPath) { - return new Promise((resolve, reject) => { - if (this.#fileLog) { - fs.mkdir(path.dirname(logPath), { recursive: true }, (err) => { - if (err) { - console.error('Failed to create directory:', err) - reject(err) - } else { - fs.writeFile(logPath, '', { flag: 'w' }, (err) => { - if (err) { - console.error('Failed to write file:', err) - reject(err) - } else { - resolve() - } - }) - } - }) - } else { - resolve() - } - }) - } - - #writeResultLog(logPath, line) { - if (this.#fileLog) { - this.#testResultsLogsReady.then(() => { - return new Promise((resolve, reject) => { - fs.writeFile(logPath, line, { flag: 'a' }, (err) => { - if (err) { - console.error('Failed to write file:', err) - reject(err) - } else { - resolve() - } - }) - }) - }) - } - } - - writePassedLog(line) { - const logPath = TestEnv.getTestSuitePassedLog() - return this.#writeResultLog(logPath, line) - } - - writeWarningsLog(line) { - const logPath = TestEnv.getTestSuiteWarningsLog() - return this.#writeResultLog(logPath, line) - } - - writeFailedLog(line) { - const logPath = TestEnv.getTestSuiteFailedLog() - return this.#writeResultLog(logPath, line) - } - - writeFailuresLog(line) { - const logPath = TestEnv.getTestSuiteFailuresLog() - return this.#writeResultLog(logPath, line) - } + #fileLog + + #testSuiteLogPath + + #testResultsLogsReady + + #testStatusPad = 8 + #testNumberPad = 0 + + constructor(fileLog) { + if (fileLog) { + // eslint-disable-next-line no-var + var filePrefix = 'integration.test' + const pathPrefix = 'logs' + // eslint-disable-next-line no-var + var testSuiteLogPath = path.join(TestEnv.getTestSuiteReportPath(), pathPrefix) + } + super(filePrefix, testSuiteLogPath) + this.#fileLog = fileLog + this.#testSuiteLogPath = testSuiteLogPath + this.#testResultsLogsReady = this.#createResultsLogs() + } + + getTestSuiteLogPath() { + return this.#testSuiteLogPath + } + + getTestStatusPad() { + return this.#testStatusPad + } + + getTestNumberPad() { + return this.#testNumberPad + } + + setTestStatusPad(testStatusPad) { + testStatusPad = parseInt(testStatusPad) + if (isNaN(testStatusPad)) { + throw new Error('testStatusPad is integer') + } + this.#testStatusPad = testStatusPad + } + + setTestNumberPad(testNumberPad) { + testNumberPad = parseInt(testNumberPad) + if (isNaN(testNumberPad)) { + throw new Error('testNumberPad is integer') + } + this.#testNumberPad = testNumberPad + } + + #createResultsLogs() { + const resultsReadies = [] + Object.entries(TestEnv.ResultLogTypes).forEach(([resultName, resultType]) => { + const logPath = path.join(TestEnv.getTestSuiteReportPath(), resultType) + resultsReadies.push(this.#createResultLog(logPath)) + }) + return Promise.all(resultsReadies) + } + + #createResultLog(logPath) { + return new Promise((resolve, reject) => { + if (this.#fileLog) { + fs.mkdir(path.dirname(logPath), { recursive: true }, (err) => { + if (err) { + console.error('Failed to create directory:', err) + reject(err) + } else { + fs.writeFile(logPath, '', { flag: 'w' }, (err) => { + if (err) { + console.error('Failed to write file:', err) + reject(err) + } else { + resolve() + } + }) + } + }) + } else { + resolve() + } + }) + } + + #writeResultLog(logPath, line) { + if (this.#fileLog) { + this.#testResultsLogsReady.then(() => { + return new Promise((resolve, reject) => { + fs.writeFile(logPath, line, { flag: 'a' }, (err) => { + if (err) { + console.error('Failed to write file:', err) + reject(err) + } else { + resolve() + } + }) + }) + }) + } + } + + writePassedLog(line) { + const logPath = TestEnv.getTestSuitePassedLog() + return this.#writeResultLog(logPath, line) + } + + writeWarningsLog(line) { + const logPath = TestEnv.getTestSuiteWarningsLog() + return this.#writeResultLog(logPath, line) + } + + writeFailedLog(line) { + const logPath = TestEnv.getTestSuiteFailedLog() + return this.#writeResultLog(logPath, line) + } + + writeFailuresLog(line) { + const logPath = TestEnv.getTestSuiteFailuresLog() + return this.#writeResultLog(logPath, line) + } } module.exports = TestConsole diff --git a/test/integration/modules/integration-test/test-console.test.cjs b/test/integration/modules/integration-test/test-console.test.cjs index 482e82def..f66a61127 100644 --- a/test/integration/modules/integration-test/test-console.test.cjs +++ b/test/integration/modules/integration-test/test-console.test.cjs @@ -3,74 +3,74 @@ const TestEnv = require('./test-env.cjs') const path = require('path') describe('testSuiteLogPath', () => { - test('if new TestConsole(), getTestSuiteLogPath() returns undefined', () => { - const testConsole = new TestConsole() - expect(testConsole.getTestSuiteLogPath()).toBeUndefined() - }) + test('if new TestConsole(), getTestSuiteLogPath() returns undefined', () => { + const testConsole = new TestConsole() + expect(testConsole.getTestSuiteLogPath()).toBeUndefined() + }) - test('if new TestConsole(false), getTestSuiteLogPath() returns undefined', () => { - const testConsole = new TestConsole(false) - expect(testConsole.getTestSuiteLogPath()).toBeUndefined() - }) + test('if new TestConsole(false), getTestSuiteLogPath() returns undefined', () => { + const testConsole = new TestConsole(false) + expect(testConsole.getTestSuiteLogPath()).toBeUndefined() + }) - test('if new TestConsole(true), getTestSuiteLogPath() returns testSuiteLogPath', () => { - const testConsole = new TestConsole(true) - expect(testConsole.getTestSuiteLogPath()).toBe( - path.join(TestEnv.getTestSuiteReportPath(), 'logs') - ) - }) + test('if new TestConsole(true), getTestSuiteLogPath() returns testSuiteLogPath', () => { + const testConsole = new TestConsole(true) + expect(testConsole.getTestSuiteLogPath()).toBe( + path.join(TestEnv.getTestSuiteReportPath(), 'logs') + ) + }) }) describe('testStatusPad', () => { - test('if getTestStatusPad() returns 8', () => { - const testConsole = new TestConsole() - expect(testConsole.getTestStatusPad()).toBe(8) - }) + test('if getTestStatusPad() returns 8', () => { + const testConsole = new TestConsole() + expect(testConsole.getTestStatusPad()).toBe(8) + }) - test('if setTestStatusPad() err is thrown', () => { - const testConsole = new TestConsole() - expect(() => { - testConsole.setTestStatusPad() - }).toThrow('testStatusPad is integer') - }) + test('if setTestStatusPad() err is thrown', () => { + const testConsole = new TestConsole() + expect(() => { + testConsole.setTestStatusPad() + }).toThrow('testStatusPad is integer') + }) - test('if setTestStatusPad(string) err is thrown', () => { - const testConsole = new TestConsole() - expect(() => { - testConsole.setTestStatusPad('string') - }).toThrow('testStatusPad is integer') - }) + test('if setTestStatusPad(string) err is thrown', () => { + const testConsole = new TestConsole() + expect(() => { + testConsole.setTestStatusPad('string') + }).toThrow('testStatusPad is integer') + }) - test('if setTestStatusPad(9), getTestStatusPad() returns 9', () => { - const testConsole = new TestConsole() - testConsole.setTestStatusPad(9) - expect(testConsole.getTestStatusPad()).toBe(9) - }) + test('if setTestStatusPad(9), getTestStatusPad() returns 9', () => { + const testConsole = new TestConsole() + testConsole.setTestStatusPad(9) + expect(testConsole.getTestStatusPad()).toBe(9) + }) }) describe('testNumberPad', () => { - test('if getTestNumberPad() returns 0', () => { - const testConsole = new TestConsole() - expect(testConsole.getTestNumberPad()).toBe(0) - }) + test('if getTestNumberPad() returns 0', () => { + const testConsole = new TestConsole() + expect(testConsole.getTestNumberPad()).toBe(0) + }) - test('if setTestNumberPad() err is thrown', () => { - const testConsole = new TestConsole() - expect(() => { - testConsole.setTestNumberPad() - }).toThrow('testNumberPad is integer') - }) + test('if setTestNumberPad() err is thrown', () => { + const testConsole = new TestConsole() + expect(() => { + testConsole.setTestNumberPad() + }).toThrow('testNumberPad is integer') + }) - test('if setTestNumberPad(string) err is thrown', () => { - const testConsole = new TestConsole() - expect(() => { - testConsole.setTestNumberPad('string') - }).toThrow('testNumberPad is integer') - }) + test('if setTestNumberPad(string) err is thrown', () => { + const testConsole = new TestConsole() + expect(() => { + testConsole.setTestNumberPad('string') + }).toThrow('testNumberPad is integer') + }) - test('if setTestNumberPad(4), getTestNumberPad() returns 4', () => { - const testConsole = new TestConsole() - testConsole.setTestNumberPad(4) - expect(testConsole.getTestNumberPad()).toBe(4) - }) + test('if setTestNumberPad(4), getTestNumberPad() returns 4', () => { + const testConsole = new TestConsole() + testConsole.setTestNumberPad(4) + expect(testConsole.getTestNumberPad()).toBe(4) + }) }) diff --git a/test/integration/modules/integration-test/test-env.cjs b/test/integration/modules/integration-test/test-env.cjs index 7f790d753..d6efc4eea 100644 --- a/test/integration/modules/integration-test/test-env.cjs +++ b/test/integration/modules/integration-test/test-env.cjs @@ -1,48 +1,48 @@ const path = require('path') class TestEnv { - static getWorkspacePath() { - return path.join(__dirname, '../../../..') - } - - static getTestSuitePath() { - return path.join(TestEnv.getWorkspacePath(), TestEnv.getTestSuiteRelativePath()) - } - - static getTestSuiteRelativePath() { - return 'test/integration' - } - - static getTestSuiteReportPath() { - return path.join(TestEnv.getTestSuitePath(), 'test_report') - } - - static getTestSuiteResultsPath() { - return path.join(TestEnv.getTestSuiteReportPath(), 'results') - } - - static ResultLogTypes = { - PASSED: 'passed.log', - WARNINGS: 'warnings.log', - FAILED: 'failed.log', - FAILURES: 'failures.log' - } - - static getTestSuitePassedLog() { - return path.join(TestEnv.getTestSuiteReportPath(), TestEnv.ResultLogTypes.PASSED) - } - - static getTestSuiteWarningsLog() { - return path.join(TestEnv.getTestSuiteReportPath(), TestEnv.ResultLogTypes.WARNINGS) - } - - static getTestSuiteFailedLog() { - return path.join(TestEnv.getTestSuiteReportPath(), TestEnv.ResultLogTypes.FAILED) - } - - static getTestSuiteFailuresLog() { - return path.join(TestEnv.getTestSuiteReportPath(), TestEnv.ResultLogTypes.FAILURES) - } + static getWorkspacePath() { + return path.join(__dirname, '../../../..') + } + + static getTestSuitePath() { + return path.join(TestEnv.getWorkspacePath(), TestEnv.getTestSuiteRelativePath()) + } + + static getTestSuiteRelativePath() { + return 'test/integration' + } + + static getTestSuiteReportPath() { + return path.join(TestEnv.getTestSuitePath(), 'test_report') + } + + static getTestSuiteResultsPath() { + return path.join(TestEnv.getTestSuiteReportPath(), 'results') + } + + static ResultLogTypes = { + PASSED: 'passed.log', + WARNINGS: 'warnings.log', + FAILED: 'failed.log', + FAILURES: 'failures.log' + } + + static getTestSuitePassedLog() { + return path.join(TestEnv.getTestSuiteReportPath(), TestEnv.ResultLogTypes.PASSED) + } + + static getTestSuiteWarningsLog() { + return path.join(TestEnv.getTestSuiteReportPath(), TestEnv.ResultLogTypes.WARNINGS) + } + + static getTestSuiteFailedLog() { + return path.join(TestEnv.getTestSuiteReportPath(), TestEnv.ResultLogTypes.FAILED) + } + + static getTestSuiteFailuresLog() { + return path.join(TestEnv.getTestSuiteReportPath(), TestEnv.ResultLogTypes.FAILURES) + } } module.exports = TestEnv diff --git a/test/integration/modules/integration-test/test-env.test.cjs b/test/integration/modules/integration-test/test-env.test.cjs index f9a810b65..bc22de98a 100644 --- a/test/integration/modules/integration-test/test-env.test.cjs +++ b/test/integration/modules/integration-test/test-env.test.cjs @@ -4,19 +4,19 @@ const path = require('path') const ws = path.join(__dirname, '../../../..') test('if getWorkspacePath() returns workspacePath', () => { - expect(TestEnv.getWorkspacePath()).toBe(ws) + expect(TestEnv.getWorkspacePath()).toBe(ws) }) test('if getTestSuitePath() returns testSuitePath', () => { - expect(TestEnv.getTestSuitePath()).toBe(path.join(ws, 'test/integration')) + expect(TestEnv.getTestSuitePath()).toBe(path.join(ws, 'test/integration')) }) test('if getTestSuiteReportPath() returns testSuiteReportPath', () => { - expect(TestEnv.getTestSuiteReportPath()).toBe(path.join(ws, 'test/integration/test_report')) + expect(TestEnv.getTestSuiteReportPath()).toBe(path.join(ws, 'test/integration/test_report')) }) test('if getTestSuiteResultsPath() returns testSuiteResultsPath', () => { - expect(TestEnv.getTestSuiteResultsPath()).toBe( - path.join(ws, 'test/integration/test_report/results') - ) + expect(TestEnv.getTestSuiteResultsPath()).toBe( + path.join(ws, 'test/integration/test_report/results') + ) }) diff --git a/test/integration/modules/integration-test/test-suite-result.cjs b/test/integration/modules/integration-test/test-suite-result.cjs index 3cf722551..5b12f3ec1 100644 --- a/test/integration/modules/integration-test/test-suite-result.cjs +++ b/test/integration/modules/integration-test/test-suite-result.cjs @@ -5,164 +5,174 @@ const prettier = require('prettier') const TestEnv = require('../../modules/integration-test/test-env.cjs') class TestSuiteResult { - #cnsl + #cnsl - #testSuiteResults - #testCases - #testCasesConfig - #createHashes + #testSuiteResults + #testCases + #testCasesConfig + #createHashes - constructor(testSuiteResults, testCases, testCasesConfig, createHashes, cnsl) { - this.#cnsl = cnsl + constructor(testSuiteResults, testCases, testCasesConfig, createHashes, cnsl) { + this.#cnsl = cnsl - this.#testSuiteResults = testSuiteResults - this.#testCases = testCases - this.#testCasesConfig = testCasesConfig - this.#createHashes = createHashes - } + this.#testSuiteResults = testSuiteResults + this.#testCases = testCases + this.#testCasesConfig = testCasesConfig + this.#createHashes = createHashes + } - createTestSuiteResult() { - this.#createNewConfig() - if (this.#testSuiteResults.MANUAL.length !== 0) { - this.#cnsl.log('\n') - this.#testSuiteResults.MANUAL.forEach((testCase) => { - this.#cnsl.log( - ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + - path.relative( - TestEnv.getTestSuitePath(), - path.join(TestEnv.getWorkspacePath(), testCase.testName) - ) - ) - this.#cnsl.log( - ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + - 'http://127.0.0.1:8080/test/integration/tools/manual/client?testFile=' + - testCase.testFile + - '&testType=' + - testCase.testType + - '&testIndex=' + - testCase.testIndex + - '&vizzuUrl=localhost\n' - ) - }) - this.#cnsl.log('\n') - this.#cnsl.log( - ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + - 'npm run test:man --' + - ' ' + - this.#testSuiteResults.MANUAL_FORMATTED.map((s) => `'${s}'`).join(' ') - ) - } - this.#testSuiteResults.TIME.END = Math.round(Date.now() / 1000) - const duration = this.#testSuiteResults.TIME.END - this.#testSuiteResults.TIME.START - this.#cnsl.log('\n' + 'duration:'.padEnd(15, ' ') + duration + 's') - this.#cnsl.log('\n' + 'all tests:'.padEnd(15, ' ') + this.#testCases.testCases.length) - const sum = - this.#testSuiteResults.PASSED.length + - this.#testSuiteResults.WARNING.length + - this.#testSuiteResults.FAILED.length - this.#cnsl.log('tests run:'.padEnd(15, ' ') + sum) - this.#cnsl.log(('tests passed:'.padEnd(15, ' ') + this.#testSuiteResults.PASSED.length).success) - if (this.#testSuiteResults.WARNING.length !== 0) { - this.#cnsl.log( - ('tests warning:'.padEnd(15, ' ') + this.#testSuiteResults.WARNING.length).warn - ) - } else { - this.#cnsl.log('tests warning:'.padEnd(15, ' ') + this.#testSuiteResults.WARNING.length) - } - if (this.#testSuiteResults.FAILED.length !== 0) { - this.#cnsl.log(('tests failed:'.padEnd(15, ' ') + this.#testSuiteResults.FAILED.length).error) - process.exitCode = 1 - } else { - this.#cnsl.log('tests failed:'.padEnd(15, ' ') + this.#testSuiteResults.FAILED.length) - } - } + createTestSuiteResult() { + this.#createNewConfig() + if (this.#testSuiteResults.MANUAL.length !== 0) { + this.#cnsl.log('\n') + this.#testSuiteResults.MANUAL.forEach((testCase) => { + this.#cnsl.log( + ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + + path.relative( + TestEnv.getTestSuitePath(), + path.join(TestEnv.getWorkspacePath(), testCase.testName) + ) + ) + this.#cnsl.log( + ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + + 'http://127.0.0.1:8080/test/integration/tools/manual/client?testFile=' + + testCase.testFile + + '&testType=' + + testCase.testType + + '&testIndex=' + + testCase.testIndex + + '&vizzuUrl=localhost\n' + ) + }) + this.#cnsl.log('\n') + this.#cnsl.log( + ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + + 'npm run test:man --' + + ' ' + + this.#testSuiteResults.MANUAL_FORMATTED.map((s) => `'${s}'`).join(' ') + ) + } + this.#testSuiteResults.TIME.END = Math.round(Date.now() / 1000) + const duration = this.#testSuiteResults.TIME.END - this.#testSuiteResults.TIME.START + this.#cnsl.log('\n' + 'duration:'.padEnd(15, ' ') + duration + 's') + this.#cnsl.log('\n' + 'all tests:'.padEnd(15, ' ') + this.#testCases.testCases.length) + const sum = + this.#testSuiteResults.PASSED.length + + this.#testSuiteResults.WARNING.length + + this.#testSuiteResults.FAILED.length + this.#cnsl.log('tests run:'.padEnd(15, ' ') + sum) + this.#cnsl.log( + ('tests passed:'.padEnd(15, ' ') + this.#testSuiteResults.PASSED.length).success + ) + if (this.#testSuiteResults.WARNING.length !== 0) { + this.#cnsl.log( + ('tests warning:'.padEnd(15, ' ') + this.#testSuiteResults.WARNING.length).warn + ) + } else { + this.#cnsl.log('tests warning:'.padEnd(15, ' ') + this.#testSuiteResults.WARNING.length) + } + if (this.#testSuiteResults.FAILED.length !== 0) { + this.#cnsl.log( + ('tests failed:'.padEnd(15, ' ') + this.#testSuiteResults.FAILED.length).error + ) + process.exitCode = 1 + } else { + this.#cnsl.log('tests failed:'.padEnd(15, ' ') + this.#testSuiteResults.FAILED.length) + } + } - #createNewConfig() { - if (this.#createHashes !== 'DISABLED') { - if ( - this.#createHashes === 'ALL' || - (this.#createHashes === 'FAILED' && - (this.#testSuiteResults.FAILED.length !== 0 || - this.#testSuiteResults.WARNING.length !== 0)) - ) { - const testCasesConfig = {} - this.#testCasesConfig.suites.forEach((suite) => { - const suitePath = '/' + path.relative(TestEnv.getWorkspacePath(), suite.suite) - testCasesConfig[suitePath] = { - suite: suitePath, - tmp: suite.config, - test: {} - } - }) - for (const [key] of Object.entries(this.#testSuiteResults.RESULTS)) { - if ( - this.#createHashes === 'FAILED' && - !this.#testSuiteResults.FAILED.includes(key) && - !this.#testSuiteResults.WARNING.includes(key) - ) { - continue - } - Object.keys(testCasesConfig).forEach((suite) => { - if (key.startsWith(suite)) { - if (this.#testSuiteResults.RESULTS[key].hash) { - testCasesConfig[suite].test[path.relative(suite, key)] = { - refs: [this.#testSuiteResults.RESULTS[key].hash] - } - } - } - }) - } + #createNewConfig() { + if (this.#createHashes !== 'DISABLED') { + if ( + this.#createHashes === 'ALL' || + (this.#createHashes === 'FAILED' && + (this.#testSuiteResults.FAILED.length !== 0 || + this.#testSuiteResults.WARNING.length !== 0)) + ) { + const testCasesConfig = {} + this.#testCasesConfig.suites.forEach((suite) => { + const suitePath = '/' + path.relative(TestEnv.getWorkspacePath(), suite.suite) + testCasesConfig[suitePath] = { + suite: suitePath, + tmp: suite.config, + test: {} + } + }) + for (const [key] of Object.entries(this.#testSuiteResults.RESULTS)) { + if ( + this.#createHashes === 'FAILED' && + !this.#testSuiteResults.FAILED.includes(key) && + !this.#testSuiteResults.WARNING.includes(key) + ) { + continue + } + Object.keys(testCasesConfig).forEach((suite) => { + if (key.startsWith(suite)) { + if (this.#testSuiteResults.RESULTS[key].hash) { + testCasesConfig[suite].test[path.relative(suite, key)] = { + refs: [this.#testSuiteResults.RESULTS[key].hash] + } + } + } + }) + } - for (const [key, value] of Object.entries(testCasesConfig)) { - if (Object.keys(testCasesConfig[key].test).length === 0) { - continue - } - const conFigPath = path.join( - TestEnv.getTestSuiteResultsPath(), - path.relative(TestEnv.getTestSuitePath(), path.join(TestEnv.getWorkspacePath(), key)), - path.basename(value.tmp) - ) - const rmReady = new Promise((resolve, reject) => { - fs.rm(conFigPath, { force: true }, (err) => { - if (err) { - return reject(err) - } - return resolve() - }) - }) - const mkdirReady = new Promise((resolve, reject) => { - fs.mkdir(path.dirname(conFigPath), { recursive: true }, (err) => { - if (err) { - return reject(err) - } - return resolve() - }) - }) - Promise.all([rmReady, mkdirReady]).then(() => { - const configData = value - delete configData.tmp - configData.test = Object.keys(configData.test) - .sort() - .reduce((a, c) => { - a[c] = configData.test[c] - return a - }, {}) - const formattedConfigDataReady = prettier.format(JSON.stringify(configData, null, 2), { - parser: 'json', - tabWidth: 2 - }) - formattedConfigDataReady.then((formattedConfigData) => { - fs.writeFile(conFigPath, formattedConfigData, (err) => { - if (err) { - throw err - } - }) - }) - }) - } - } - } - } + for (const [key, value] of Object.entries(testCasesConfig)) { + if (Object.keys(testCasesConfig[key].test).length === 0) { + continue + } + const conFigPath = path.join( + TestEnv.getTestSuiteResultsPath(), + path.relative( + TestEnv.getTestSuitePath(), + path.join(TestEnv.getWorkspacePath(), key) + ), + path.basename(value.tmp) + ) + const rmReady = new Promise((resolve, reject) => { + fs.rm(conFigPath, { force: true }, (err) => { + if (err) { + return reject(err) + } + return resolve() + }) + }) + const mkdirReady = new Promise((resolve, reject) => { + fs.mkdir(path.dirname(conFigPath), { recursive: true }, (err) => { + if (err) { + return reject(err) + } + return resolve() + }) + }) + Promise.all([rmReady, mkdirReady]).then(() => { + const configData = value + delete configData.tmp + configData.test = Object.keys(configData.test) + .sort() + .reduce((a, c) => { + a[c] = configData.test[c] + return a + }, {}) + const formattedConfigDataReady = prettier.format( + JSON.stringify(configData, null, 2), + { + parser: 'json', + tabWidth: 2 + } + ) + formattedConfigDataReady.then((formattedConfigData) => { + fs.writeFile(conFigPath, formattedConfigData, (err) => { + if (err) { + throw err + } + }) + }) + }) + } + } + } + } } module.exports = TestSuiteResult diff --git a/test/integration/modules/integration-test/test-suite.cjs b/test/integration/modules/integration-test/test-suite.cjs index 13e486aba..413fc4e35 100644 --- a/test/integration/modules/integration-test/test-suite.cjs +++ b/test/integration/modules/integration-test/test-suite.cjs @@ -14,319 +14,327 @@ const TestCases = require('../../modules/integration-test/test-case/test-cases.c const TestSuiteResult = require('../../modules/integration-test/test-suite-result.cjs') class TestSuite { - #cnsl - #pLimit + #cnsl + #pLimit - #browsersChrome - #browsersChromeReady + #browsersChrome + #browsersChromeReady - #vizzuUrl - #vizzuUrlReady - #vizzuRefUrl - #vizzuRefUrlReady + #vizzuUrl + #vizzuUrlReady + #vizzuRefUrl + #vizzuRefUrlReady - #workspaceHost - #workspaceHostReady - #workspaceHostServerPort + #workspaceHost + #workspaceHostReady + #workspaceHostServerPort - #Werror - #createImages - #maxFailedImages - #createHashes + #Werror + #createImages + #maxFailedImages + #createHashes - #testCasesConfig - #testCasesConfigReady - #testCases - #testCasesReady + #testCasesConfig + #testCasesConfigReady + #testCases + #testCasesReady - #testSuiteResults = { - PASSED: [], - WARNING: [], - FAILED: [], - TIME: { START: Math.round(Date.now() / 1000), END: 0 }, - FINISHED: 0, - MANUAL: [], - MANUAL_FORMATTED: [], - RESULTS: {} - } + #testSuiteResults = { + PASSED: [], + WARNING: [], + FAILED: [], + TIME: { START: Math.round(Date.now() / 1000), END: 0 }, + FINISHED: 0, + MANUAL: [], + MANUAL_FORMATTED: [], + RESULTS: {} + } - constructor( - configPathList, - filters, - noLogs, - browsersNum, - browserGui, - vizzuUrl, - vizzuRefUrl, - Werror, - createImages, - maxFailedImages, - createHashes - ) { - this.#cnsl = new TestConsole(!noLogs) - this.#browsersChrome = new BrowsersChrome( - browsersNum, - browserGui, - this.#cnsl.getTestSuiteLogPath(), - this.#cnsl.getTestSuiteLogPath() - ? this.#cnsl.getTimeStamp() - : this.#cnsl.getTestSuiteLogPath() - ) + constructor( + configPathList, + filters, + noLogs, + browsersNum, + browserGui, + vizzuUrl, + vizzuRefUrl, + Werror, + createImages, + maxFailedImages, + createHashes + ) { + this.#cnsl = new TestConsole(!noLogs) + this.#browsersChrome = new BrowsersChrome( + browsersNum, + browserGui, + this.#cnsl.getTestSuiteLogPath(), + this.#cnsl.getTestSuiteLogPath() + ? this.#cnsl.getTimeStamp() + : this.#cnsl.getTestSuiteLogPath() + ) - this.#vizzuUrl = vizzuUrl - this.#vizzuRefUrl = vizzuRefUrl + this.#vizzuUrl = vizzuUrl + this.#vizzuRefUrl = vizzuRefUrl - this.#Werror = Werror - this.#createImages = createImages - this.#maxFailedImages = maxFailedImages - this.#createHashes = createHashes + this.#Werror = Werror + this.#createImages = createImages + this.#maxFailedImages = maxFailedImages + this.#createHashes = createHashes - this.#testCasesConfigReady = TestCasesConfig.getConfig(configPathList) - this.#testCasesReady = TestCases.getTestCases(this.#testCasesConfigReady, filters) - } + this.#testCasesConfigReady = TestCasesConfig.getConfig(configPathList) + this.#testCasesReady = TestCases.getTestCases(this.#testCasesConfigReady, filters) + } - static del() { - fs.rm(TestEnv.getTestSuiteReportPath(), { recursive: true, force: true }, (err) => { - if (err) { - throw err - } - }) - } + static del() { + fs.rm(TestEnv.getTestSuiteReportPath(), { recursive: true, force: true }, (err) => { + if (err) { + throw err + } + }) + } - test() { - return new Promise((resolve, reject) => { - this.#runTestSuite() - .catch((err) => { - return reject(err) - }) - .finally(() => { - this.#destructTestSuite() - return resolve() - }) - }) - } + test() { + return new Promise((resolve, reject) => { + this.#runTestSuite() + .catch((err) => { + return reject(err) + }) + .finally(() => { + this.#destructTestSuite() + return resolve() + }) + }) + } - cnsl() { - return this.#cnsl - } + cnsl() { + return this.#cnsl + } - #runTestSuite() { - return new Promise((resolve, reject) => { - this.#testCasesReady.then((testCases) => { - this.#testCases = testCases - if (testCases.filteredTestCases.length > 0) { - this.#startTestSuite().then(() => { - this.#cnsl.setTestNumberPad(String(testCases.filteredTestCases.length).length) - const limit = this.#pLimit.default(this.#browsersChrome.getBrowsersNum()) - const testCasesReady = testCases.filteredTestCases.map((filteredTestCase) => { - const testCaseObj = { - testCase: filteredTestCase, - testCasesConfig: this.#testCasesConfig, - testSuiteResults: this.#testSuiteResults, - workspaceHostServerPort: this.#workspaceHostServerPort, - browsersChrome: this.#browsersChrome, - Werror: this.#Werror, - createImages: this.#createImages, - maxFailedImages: this.#maxFailedImages, - animTimeout: this.#browsersChrome.getTimeout(), - cnsl: this.#cnsl - } - return limit(() => - TestCase.runTestCase(testCaseObj, this.#vizzuUrl, this.#vizzuRefUrl) - ) - }) - Promise.all(testCasesReady) - .then(() => { - const testSuiteResult = new TestSuiteResult( - this.#testSuiteResults, - this.#testCases, - this.#testCasesConfig, - this.#createHashes, - this.#cnsl - ) - testSuiteResult.createTestSuiteResult() - return resolve() - }) - .catch((err) => { - return reject(err) - }) - }) - } - }) - }) - } + #runTestSuite() { + return new Promise((resolve, reject) => { + this.#testCasesReady.then((testCases) => { + this.#testCases = testCases + if (testCases.filteredTestCases.length > 0) { + this.#startTestSuite().then(() => { + this.#cnsl.setTestNumberPad( + String(testCases.filteredTestCases.length).length + ) + const limit = this.#pLimit.default(this.#browsersChrome.getBrowsersNum()) + const testCasesReady = testCases.filteredTestCases.map( + (filteredTestCase) => { + const testCaseObj = { + testCase: filteredTestCase, + testCasesConfig: this.#testCasesConfig, + testSuiteResults: this.#testSuiteResults, + workspaceHostServerPort: this.#workspaceHostServerPort, + browsersChrome: this.#browsersChrome, + Werror: this.#Werror, + createImages: this.#createImages, + maxFailedImages: this.#maxFailedImages, + animTimeout: this.#browsersChrome.getTimeout(), + cnsl: this.#cnsl + } + return limit(() => + TestCase.runTestCase( + testCaseObj, + this.#vizzuUrl, + this.#vizzuRefUrl + ) + ) + } + ) + Promise.all(testCasesReady) + .then(() => { + const testSuiteResult = new TestSuiteResult( + this.#testSuiteResults, + this.#testCases, + this.#testCasesConfig, + this.#createHashes, + this.#cnsl + ) + testSuiteResult.createTestSuiteResult() + return resolve() + }) + .catch((err) => { + return reject(err) + }) + }) + } + }) + }) + } - #startTestSuite() { - return new Promise((resolve, reject) => { - const startTestSuiteReady = [] + #startTestSuite() { + return new Promise((resolve, reject) => { + const startTestSuiteReady = [] - this.#cnsl.log( - '[ ' + - 'LOG TIME'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ]' + - ' ' + - '[ ' + - this.#cnsl.getTimeStamp() + - ' ]' - ) + this.#cnsl.log( + '[ ' + + 'LOG TIME'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ]' + + ' ' + + '[ ' + + this.#cnsl.getTimeStamp() + + ' ]' + ) - startTestSuiteReady.push(pLimitReady) - pLimitReady.then((pLimit) => { - this.#pLimit = pLimit - }) + startTestSuiteReady.push(pLimitReady) + pLimitReady.then((pLimit) => { + this.#pLimit = pLimit + }) - startTestSuiteReady.push(this.#testCasesConfigReady) - this.#testCasesConfigReady.then((testCasesConfig) => { - this.#testCasesConfig = testCasesConfig - testCasesConfig.suites.forEach((suite) => { - this.#cnsl.log( - '[ ' + - 'T.CONFIG'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ]' + - ' ' + - '[ ' + - suite.config + - ' ]' - ) - this.#cnsl.log( - '[ ' + - 'T.CASES'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ]' + - ' ' + - '[ ' + - suite.suite + - ' ]' - ) - }) - }) + startTestSuiteReady.push(this.#testCasesConfigReady) + this.#testCasesConfigReady.then((testCasesConfig) => { + this.#testCasesConfig = testCasesConfig + testCasesConfig.suites.forEach((suite) => { + this.#cnsl.log( + '[ ' + + 'T.CONFIG'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ]' + + ' ' + + '[ ' + + suite.config + + ' ]' + ) + this.#cnsl.log( + '[ ' + + 'T.CASES'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ]' + + ' ' + + '[ ' + + suite.suite + + ' ]' + ) + }) + }) - startTestSuiteReady.push(this.#testCasesReady) - this.#testCasesReady.then((testCases) => { - this.#cnsl.log( - '[ ' + - 'T.CASES'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ]' + - ' ' + - '[ ' + - testCases.filteredTestCases.length + - ' / ' + - testCases.testCases.length + - ' ]' - ) - }) + startTestSuiteReady.push(this.#testCasesReady) + this.#testCasesReady.then((testCases) => { + this.#cnsl.log( + '[ ' + + 'T.CASES'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ]' + + ' ' + + '[ ' + + testCases.filteredTestCases.length + + ' / ' + + testCases.testCases.length + + ' ]' + ) + }) - this.#vizzuUrlReady = VizzuUrl.resolveVizzuUrl( - this.#vizzuUrl, - TestEnv.getWorkspacePath(), - TestEnv.getTestSuitePath() - ) - startTestSuiteReady.push(this.#vizzuUrlReady) - this.#vizzuUrlReady.then((url) => { - this.#vizzuUrl = url - this.#cnsl.log( - '[ ' + - 'V. URL'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ]' + - ' ' + - '[ ' + - url + - ' ]' - ) - }) + this.#vizzuUrlReady = VizzuUrl.resolveVizzuUrl( + this.#vizzuUrl, + TestEnv.getWorkspacePath(), + TestEnv.getTestSuitePath() + ) + startTestSuiteReady.push(this.#vizzuUrlReady) + this.#vizzuUrlReady.then((url) => { + this.#vizzuUrl = url + this.#cnsl.log( + '[ ' + + 'V. URL'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ]' + + ' ' + + '[ ' + + url + + ' ]' + ) + }) - this.#vizzuRefUrlReady = new Promise((resolve) => { - return VizzuUrl.resolveVizzuUrl( - this.#vizzuRefUrl, - TestEnv.getWorkspacePath(), - TestEnv.getTestSuitePath() - ) - .then((url) => { - return resolve(url) - }) - .catch(() => { - return resolve('') - }) - }) - startTestSuiteReady.push(this.#vizzuRefUrlReady) - this.#vizzuRefUrlReady.then((url) => { - this.#vizzuRefUrl = url - this.#cnsl.log( - '[ ' + - 'V.R. URL'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ]' + - ' ' + - '[ ' + - url + - ' ]' - ) - }) + this.#vizzuRefUrlReady = new Promise((resolve) => { + return VizzuUrl.resolveVizzuUrl( + this.#vizzuRefUrl, + TestEnv.getWorkspacePath(), + TestEnv.getTestSuitePath() + ) + .then((url) => { + return resolve(url) + }) + .catch(() => { + return resolve('') + }) + }) + startTestSuiteReady.push(this.#vizzuRefUrlReady) + this.#vizzuRefUrlReady.then((url) => { + this.#vizzuRefUrl = url + this.#cnsl.log( + '[ ' + + 'V.R. URL'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ]' + + ' ' + + '[ ' + + url + + ' ]' + ) + }) - this.#workspaceHost = new WorkspaceHost(TestEnv.getWorkspacePath()) - this.#workspaceHostReady = this.#workspaceHost.serverPortReady() - startTestSuiteReady.push(this.#workspaceHostReady) - this.#workspaceHostReady.then((serverPort) => { - this.#workspaceHostServerPort = serverPort - this.#cnsl.log( - '[ ' + - 'W. HOST'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ]' + - ' ' + - '[ ' + - 'http://127.0.0.1:' + - String(serverPort) + - ' ]' - ) - }) + this.#workspaceHost = new WorkspaceHost(TestEnv.getWorkspacePath()) + this.#workspaceHostReady = this.#workspaceHost.serverPortReady() + startTestSuiteReady.push(this.#workspaceHostReady) + this.#workspaceHostReady.then((serverPort) => { + this.#workspaceHostServerPort = serverPort + this.#cnsl.log( + '[ ' + + 'W. HOST'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ]' + + ' ' + + '[ ' + + 'http://127.0.0.1:' + + String(serverPort) + + ' ]' + ) + }) - this.#browsersChrome.setBrowsersNum( - this.#testCases.filteredTestCases.length < this.#browsersChrome.getBrowsersNum() - ? this.#testCases.filteredTestCases.length - : this.#browsersChrome.getBrowsersNum() - ) - this.#cnsl.log( - '[ ' + - 'BROWSERS'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + - ' ]' + - ' ' + - '[ ' + - this.#browsersChrome.getBrowsersNum() + - ' ]' - ) - this.#browsersChromeReady = this.#browsersChrome.startBrowsers() - startTestSuiteReady.push(this.#browsersChromeReady) + this.#browsersChrome.setBrowsersNum( + this.#testCases.filteredTestCases.length < this.#browsersChrome.getBrowsersNum() + ? this.#testCases.filteredTestCases.length + : this.#browsersChrome.getBrowsersNum() + ) + this.#cnsl.log( + '[ ' + + 'BROWSERS'.padEnd(this.#cnsl.getTestStatusPad(), ' ') + + ' ]' + + ' ' + + '[ ' + + this.#browsersChrome.getBrowsersNum() + + ' ]' + ) + this.#browsersChromeReady = this.#browsersChrome.startBrowsers() + startTestSuiteReady.push(this.#browsersChromeReady) - Promise.all(startTestSuiteReady) - .then(() => { - return resolve() - }) - .catch((err) => { - return reject(err) - }) - }) - } + Promise.all(startTestSuiteReady) + .then(() => { + return resolve() + }) + .catch((err) => { + return reject(err) + }) + }) + } - #destructTestSuite() { - AggregateErrorReady.then((AggregateError) => { - const errs = [] - try { - this.#browsersChrome.closeBrowsers() - } catch (err) { - errs.push(err) - } - try { - if (this.#workspaceHost) { - this.#workspaceHost.closeServer() - } - } catch (err) { - errs.push(err) - } - if (errs.length > 1) { - throw new AggregateError(errs) - } else if (errs.length === 1) { - throw errs[0] - } - }) - } + #destructTestSuite() { + AggregateErrorReady.then((AggregateError) => { + const errs = [] + try { + this.#browsersChrome.closeBrowsers() + } catch (err) { + errs.push(err) + } + try { + if (this.#workspaceHost) { + this.#workspaceHost.closeServer() + } + } catch (err) { + errs.push(err) + } + if (errs.length > 1) { + throw new AggregateError(errs) + } else if (errs.length === 1) { + throw errs[0] + } + }) + } } module.exports = TestSuite diff --git a/test/integration/modules/jest.config.cjs b/test/integration/modules/jest.config.cjs index 2adc03d2c..516e00cac 100644 --- a/test/integration/modules/jest.config.cjs +++ b/test/integration/modules/jest.config.cjs @@ -1,14 +1,14 @@ const config = { - rootDir: '.', - collectCoverage: true, - coverageDirectory: '../test_report/unit/.coverage', - restoreMocks: true, - testRegex: '(.*test.cjs)$', - transform: {}, - moduleFileExtensions: ['js', 'cjs'], - setupFilesAfterEnv: ['jest-extended/all'], - testTimeout: 10000, - openHandlesTimeout: 5000 + rootDir: '.', + collectCoverage: true, + coverageDirectory: '../test_report/unit/.coverage', + restoreMocks: true, + testRegex: '(.*test.cjs)$', + transform: {}, + moduleFileExtensions: ['js', 'cjs'], + setupFilesAfterEnv: ['jest-extended/all'], + testTimeout: 10000, + openHandlesTimeout: 5000 } module.exports = config diff --git a/test/integration/modules/videorecorder/client/index.html b/test/integration/modules/videorecorder/client/index.html index 6342bf788..2a11218d4 100644 --- a/test/integration/modules/videorecorder/client/index.html +++ b/test/integration/modules/videorecorder/client/index.html @@ -1,15 +1,15 @@ - - Recording.... - - - - - - - + + Recording.... + + + + + + + diff --git a/test/integration/modules/videorecorder/client/index.js b/test/integration/modules/videorecorder/client/index.js index 6e8bcedd0..73ce4b4fc 100644 --- a/test/integration/modules/videorecorder/client/index.js +++ b/test/integration/modules/videorecorder/client/index.js @@ -1,107 +1,112 @@ import { VideoRecorder } from './videorecorder.js' function catchError(err) { - console.error(err) - let errMsg = err.toString() - if (err.stack !== undefined) { - errMsg = err.stack - } - window.result = { result: 'ERROR', description: errMsg } - document.title = 'Finished' + console.error(err) + let errMsg = err.toString() + if (err.stack !== undefined) { + errMsg = err.stack + } + window.result = { result: 'ERROR', description: errMsg } + document.title = 'Finished' } try { - const queryString = window.location.search - const urlParams = new URLSearchParams(queryString) - const testSuitePath = urlParams.get('testSuitePath') - const testCasesPath = urlParams.get('testCasesPath') - const testCase = urlParams.get('testCase') - const testName = urlParams.get('testName') - const testType = urlParams.get('testType') - const testIndex = urlParams.get('testIndex') - const vizzuUrl = urlParams.get('vizzuUrl') + const queryString = window.location.search + const urlParams = new URLSearchParams(queryString) + const testSuitePath = urlParams.get('testSuitePath') + const testCasesPath = urlParams.get('testCasesPath') + const testCase = urlParams.get('testCase') + const testName = urlParams.get('testName') + const testType = urlParams.get('testType') + const testIndex = urlParams.get('testIndex') + const vizzuUrl = urlParams.get('vizzuUrl') - import(vizzuUrl) - .then((vizzuModule) => { - const Vizzu = vizzuModule.default - return import(testSuitePath + '/' + testCasesPath + '/' + testCase + '.mjs').then( - (testCasesModule) => { - const chart = new Vizzu('vizzuCanvas') - const videoRecorder = new VideoRecorder('vizzuCanvas', (data) => { - const a = document.createElement('a') - a.setAttribute('href', data) - a.setAttribute( - 'download', - testCasesPath.replaceAll('/', '___') + '___' + testName + '.webm' - ) - a.click() - window.result = { result: 'OK' } - document.title = 'Finished' - }) - let testSteps = [] - if (testType === 'single') { - testSteps = testCasesModule.default - } else if (testType === 'multi') { - testSteps = testCasesModule.default[testIndex].testSteps - } - const steps = [] - const snapshots = [] - steps.push((chart) => { - videoRecorder.start() - return testSteps[0](chart) - }) - steps.push((chart) => { - chart.feature.rendering.update() - return chart - }) - for (let i = 1; i < testSteps.length; i++) { - steps.push((chart) => { - snapshots.push(chart.store()) - return testSteps[i](chart) - }) - } - steps.push((chart) => { - chart.on('update', (event) => { - window.progress = event.detail.progress - }) - chart.on('background-draw', (event) => { - let progress = 0 - if (window.progress) { - progress = window.progress - } - event.renderingContext.fillStyle = '#ffffff' - const canvas = document.getElementById('vizzuCanvas') - event.renderingContext.fillRect(-1, -1, canvas.width + 1, canvas.height + 1) - event.renderingContext.globalAlpha = 1 - progress - }) - chart.on('logo-draw', (event) => { - event.renderingContext.globalAlpha = 1 - }) - return chart - }) - steps.push((chart) => { - return chart.animate( - { style: { logo: { filter: 'color(#ffffff00)' } } }, - { duration: '500ms' } - ) - }) + import(vizzuUrl) + .then((vizzuModule) => { + const Vizzu = vizzuModule.default + return import(testSuitePath + '/' + testCasesPath + '/' + testCase + '.mjs').then( + (testCasesModule) => { + const chart = new Vizzu('vizzuCanvas') + const videoRecorder = new VideoRecorder('vizzuCanvas', (data) => { + const a = document.createElement('a') + a.setAttribute('href', data) + a.setAttribute( + 'download', + testCasesPath.replaceAll('/', '___') + '___' + testName + '.webm' + ) + a.click() + window.result = { result: 'OK' } + document.title = 'Finished' + }) + let testSteps = [] + if (testType === 'single') { + testSteps = testCasesModule.default + } else if (testType === 'multi') { + testSteps = testCasesModule.default[testIndex].testSteps + } + const steps = [] + const snapshots = [] + steps.push((chart) => { + videoRecorder.start() + return testSteps[0](chart) + }) + steps.push((chart) => { + chart.feature.rendering.update() + return chart + }) + for (let i = 1; i < testSteps.length; i++) { + steps.push((chart) => { + snapshots.push(chart.store()) + return testSteps[i](chart) + }) + } + steps.push((chart) => { + chart.on('update', (event) => { + window.progress = event.detail.progress + }) + chart.on('background-draw', (event) => { + let progress = 0 + if (window.progress) { + progress = window.progress + } + event.renderingContext.fillStyle = '#ffffff' + const canvas = document.getElementById('vizzuCanvas') + event.renderingContext.fillRect( + -1, + -1, + canvas.width + 1, + canvas.height + 1 + ) + event.renderingContext.globalAlpha = 1 - progress + }) + chart.on('logo-draw', (event) => { + event.renderingContext.globalAlpha = 1 + }) + return chart + }) + steps.push((chart) => { + return chart.animate( + { style: { logo: { filter: 'color(#ffffff00)' } } }, + { duration: '500ms' } + ) + }) - let promise = chart.initializing - for (const step of steps) { - promise = promise.then((chart) => step(chart)) - } - return promise.then((chart) => { - setInterval(() => { - chart.feature.rendering.update() - }, 50) - videoRecorder.stop() - }) - } - ) - }) - .catch((err) => { - catchError(err) - }) + let promise = chart.initializing + for (const step of steps) { + promise = promise.then((chart) => step(chart)) + } + return promise.then((chart) => { + setInterval(() => { + chart.feature.rendering.update() + }, 50) + videoRecorder.stop() + }) + } + ) + }) + .catch((err) => { + catchError(err) + }) } catch (err) { - catchError(err) + catchError(err) } diff --git a/test/integration/modules/videorecorder/client/videorecorder.js b/test/integration/modules/videorecorder/client/videorecorder.js index a275f08ae..5d66dd0c1 100644 --- a/test/integration/modules/videorecorder/client/videorecorder.js +++ b/test/integration/modules/videorecorder/client/videorecorder.js @@ -1,28 +1,28 @@ export class VideoRecorder { - constructor(canvasName, callback) { - const recordedChunks = [] - const canvas = document.getElementById(canvasName) - const stream = canvas.captureStream(30 /* fps */) - this.mediaRecorder = new MediaRecorder(stream) + constructor(canvasName, callback) { + const recordedChunks = [] + const canvas = document.getElementById(canvasName) + const stream = canvas.captureStream(30 /* fps */) + this.mediaRecorder = new MediaRecorder(stream) - this.mediaRecorder.ondataavailable = function (e) { - recordedChunks.push(e.data) - } + this.mediaRecorder.ondataavailable = function (e) { + recordedChunks.push(e.data) + } - this.mediaRecorder.onstop = (event) => { - const blob = new Blob(recordedChunks, { - type: 'video/webm' - }) - const data = URL.createObjectURL(blob) - callback(data) - } - } + this.mediaRecorder.onstop = (event) => { + const blob = new Blob(recordedChunks, { + type: 'video/webm' + }) + const data = URL.createObjectURL(blob) + callback(data) + } + } - start() { - this.mediaRecorder.start() - } + start() { + this.mediaRecorder.start() + } - stop() { - this.mediaRecorder.stop() - } + stop() { + this.mediaRecorder.stop() + } } diff --git a/test/integration/modules/videorecorder/generate.cjs b/test/integration/modules/videorecorder/generate.cjs index 2cfadc1e7..c2c39d0d3 100644 --- a/test/integration/modules/videorecorder/generate.cjs +++ b/test/integration/modules/videorecorder/generate.cjs @@ -13,292 +13,306 @@ const TestCasesConfig = require('../../modules/integration-test/test-case/test-c const TestCases = require('../../modules/integration-test/test-case/test-cases.cjs') function checkFileExist(path, timeout = 5000) { - let totalTime = 0 - const checkTime = 100 - return new Promise((resolve, reject) => { - const timer = setInterval(function () { - totalTime += checkTime - const fileExists = fs.existsSync(path) - if (fileExists || totalTime >= timeout) { - clearInterval(timer) - resolve(fileExists) - } - }, checkTime) - }) + let totalTime = 0 + const checkTime = 100 + return new Promise((resolve, reject) => { + const timer = setInterval(function () { + totalTime += checkTime + const fileExists = fs.existsSync(path) + if (fileExists || totalTime >= timeout) { + clearInterval(timer) + resolve(fileExists) + } + }, checkTime) + }) } class VideoRecorder { - #pLimit + #pLimit - #browsersChrome - #browsersChromeReady + #browsersChrome + #browsersChromeReady - #vizzuUrl - #vizzuUrlReady + #vizzuUrl + #vizzuUrlReady - #workspaceHost - #workspaceHostReady - #workspaceHostServerPort + #workspaceHost + #workspaceHostReady + #workspaceHostServerPort - #testCases - #testCasesConfigReady - #testCasesReady + #testCases + #testCasesConfigReady + #testCasesReady - constructor(configPathList, filters, browsersNum, vizzuUrl) { - this.#browsersChrome = new BrowsersChrome(browsersNum, false) + constructor(configPathList, filters, browsersNum, vizzuUrl) { + this.#browsersChrome = new BrowsersChrome(browsersNum, false) - this.#vizzuUrl = vizzuUrl + this.#vizzuUrl = vizzuUrl - this.#testCasesConfigReady = TestCasesConfig.getConfig(configPathList) - this.#testCasesReady = TestCases.getTestCases(this.#testCasesConfigReady, filters) - } + this.#testCasesConfigReady = TestCasesConfig.getConfig(configPathList) + this.#testCasesReady = TestCases.getTestCases(this.#testCasesConfigReady, filters) + } - run() { - return new Promise((resolve, reject) => { - this.#runVideoRecorder() - .catch((err) => { - return reject(err) - }) - .finally(() => { - this.#destructVideoRecorder() - return resolve() - }) - }) - } + run() { + return new Promise((resolve, reject) => { + this.#runVideoRecorder() + .catch((err) => { + return reject(err) + }) + .finally(() => { + this.#destructVideoRecorder() + return resolve() + }) + }) + } - #runVideoRecorder() { - return new Promise((resolve, reject) => { - fs.rmSync('generated', { - force: true, - recursive: true - }) - this.#testCasesReady.then((testCases) => { - this.#testCases = testCases - if (testCases.filteredTestCases.length > 0) { - this.#startVideoRecorder().then(() => { - const limit = this.#pLimit.default(this.#browsersChrome.getBrowsersNum()) - const testCasesReady = testCases.filteredTestCases.map((filteredTestCase) => { - return limit(() => this.#runVideoRecorderClient(filteredTestCase)) - }) - Promise.all(testCasesReady) - .then(() => { - return resolve() - }) - .catch((err) => { - return reject(err) - }) - }) - } - }) - }) - } + #runVideoRecorder() { + return new Promise((resolve, reject) => { + fs.rmSync('generated', { + force: true, + recursive: true + }) + this.#testCasesReady.then((testCases) => { + this.#testCases = testCases + if (testCases.filteredTestCases.length > 0) { + this.#startVideoRecorder().then(() => { + const limit = this.#pLimit.default(this.#browsersChrome.getBrowsersNum()) + const testCasesReady = testCases.filteredTestCases.map( + (filteredTestCase) => { + return limit(() => this.#runVideoRecorderClient(filteredTestCase)) + } + ) + Promise.all(testCasesReady) + .then(() => { + return resolve() + }) + .catch((err) => { + return reject(err) + }) + }) + } + }) + }) + } - #runVideoRecorderClient(testCase) { - return new Promise((resolve, reject) => { - if (testCase.errorMsg) return resolve() - const browserChrome = this.#browsersChrome.shiftBrowser() - let vizzuUrl = this.#vizzuUrl - if (vizzuUrl.startsWith('/')) { - vizzuUrl = '/' + path.relative(TestEnv.getWorkspacePath(), vizzuUrl) - } - const suitePath = '/' + path.relative(TestEnv.getWorkspacePath(), TestEnv.getTestSuitePath()) - const downloadedFile = - path.relative(suitePath, path.dirname(testCase.testFile)).replaceAll('/', '___') + - '___' + - path.basename(testCase.testName) + - '.webm' - fs.rmSync(downloadedFile, { - force: true - }) - const outputFile = 'generated/' + downloadedFile.replaceAll('___', '/') - browserChrome - .getUrl( - 'http://127.0.0.1:' + - String(this.#workspaceHostServerPort) + - suitePath + - '/modules/videorecorder/client/index.html' + - '?testSuitePath=' + - suitePath + - '&testCasesPath=' + - path.relative(suitePath, path.dirname(testCase.testFile)) + - '&testCase=' + - path.basename(testCase.testFile) + - '&testName=' + - path.basename(testCase.testName) + - '&testType=' + - testCase.testType + - '&testIndex=' + - testCase.testIndex + - '&vizzuUrl=' + - vizzuUrl - ) - .then(() => { - browserChrome - .waitUntilTitleIs('Finished', this.#browsersChrome.getTimeout() * 10) - .then(() => { - browserChrome - .executeScript(() => { - return result // eslint-disable-line no-undef - }) - .then((result) => { - this.#browsersChrome.pushBrowser(browserChrome) - if (result.result === 'OK') { - console.log('OK: ' + testCase.testName) - } else { - console.log('ERROR: ' + testCase.testName + ' ' + result.description) - } - checkFileExist(downloadedFile).then((fileExists) => { - if (fileExists) { - fs.mkdirSync(path.dirname(outputFile), { recursive: true }) - fs.renameSync(downloadedFile, outputFile) - return resolve(result) - } else { - // eslint-disable-next-line prefer-promise-reject-errors - return reject('TimeoutError: Waiting for file to be downloaded') - } - }) - }) - }) - .catch((err) => { - const errMsg = err.toString() - if (!errMsg.includes('TimeoutError: Waiting for title to be "Finished"')) { - this.#browsersChrome.pushBrowser(browserChrome) - return reject(err) - } else { - this.#browsersChrome.pushBrowser(browserChrome) - console.log('TIMEOUT: ' + testCase) - return resolve() - } - }) - }) - }) - } + #runVideoRecorderClient(testCase) { + return new Promise((resolve, reject) => { + if (testCase.errorMsg) return resolve() + const browserChrome = this.#browsersChrome.shiftBrowser() + let vizzuUrl = this.#vizzuUrl + if (vizzuUrl.startsWith('/')) { + vizzuUrl = '/' + path.relative(TestEnv.getWorkspacePath(), vizzuUrl) + } + const suitePath = + '/' + path.relative(TestEnv.getWorkspacePath(), TestEnv.getTestSuitePath()) + const downloadedFile = + path.relative(suitePath, path.dirname(testCase.testFile)).replaceAll('/', '___') + + '___' + + path.basename(testCase.testName) + + '.webm' + fs.rmSync(downloadedFile, { + force: true + }) + const outputFile = 'generated/' + downloadedFile.replaceAll('___', '/') + browserChrome + .getUrl( + 'http://127.0.0.1:' + + String(this.#workspaceHostServerPort) + + suitePath + + '/modules/videorecorder/client/index.html' + + '?testSuitePath=' + + suitePath + + '&testCasesPath=' + + path.relative(suitePath, path.dirname(testCase.testFile)) + + '&testCase=' + + path.basename(testCase.testFile) + + '&testName=' + + path.basename(testCase.testName) + + '&testType=' + + testCase.testType + + '&testIndex=' + + testCase.testIndex + + '&vizzuUrl=' + + vizzuUrl + ) + .then(() => { + browserChrome + .waitUntilTitleIs('Finished', this.#browsersChrome.getTimeout() * 10) + .then(() => { + browserChrome + .executeScript(() => { + return result // eslint-disable-line no-undef + }) + .then((result) => { + this.#browsersChrome.pushBrowser(browserChrome) + if (result.result === 'OK') { + console.log('OK: ' + testCase.testName) + } else { + console.log( + 'ERROR: ' + + testCase.testName + + ' ' + + result.description + ) + } + checkFileExist(downloadedFile).then((fileExists) => { + if (fileExists) { + fs.mkdirSync(path.dirname(outputFile), { + recursive: true + }) + fs.renameSync(downloadedFile, outputFile) + return resolve(result) + } else { + // eslint-disable-next-line prefer-promise-reject-errors + return reject( + 'TimeoutError: Waiting for file to be downloaded' + ) + } + }) + }) + }) + .catch((err) => { + const errMsg = err.toString() + if ( + !errMsg.includes('TimeoutError: Waiting for title to be "Finished"') + ) { + this.#browsersChrome.pushBrowser(browserChrome) + return reject(err) + } else { + this.#browsersChrome.pushBrowser(browserChrome) + console.log('TIMEOUT: ' + testCase) + return resolve() + } + }) + }) + }) + } - #startVideoRecorder() { - return new Promise((resolve, reject) => { - const startTestSuiteReady = [] + #startVideoRecorder() { + return new Promise((resolve, reject) => { + const startTestSuiteReady = [] - startTestSuiteReady.push(pLimitReady) - pLimitReady.then((pLimit) => { - this.#pLimit = pLimit - }) + startTestSuiteReady.push(pLimitReady) + pLimitReady.then((pLimit) => { + this.#pLimit = pLimit + }) - startTestSuiteReady.push(this.#testCasesConfigReady) + startTestSuiteReady.push(this.#testCasesConfigReady) - startTestSuiteReady.push(this.#testCasesReady) + startTestSuiteReady.push(this.#testCasesReady) - this.#vizzuUrlReady = VizzuUrl.resolveVizzuUrl( - this.#vizzuUrl, - TestEnv.getWorkspacePath(), - TestEnv.getTestSuitePath() - ) - startTestSuiteReady.push(this.#vizzuUrlReady) - this.#vizzuUrlReady.then((url) => { - this.#vizzuUrl = url - }) + this.#vizzuUrlReady = VizzuUrl.resolveVizzuUrl( + this.#vizzuUrl, + TestEnv.getWorkspacePath(), + TestEnv.getTestSuitePath() + ) + startTestSuiteReady.push(this.#vizzuUrlReady) + this.#vizzuUrlReady.then((url) => { + this.#vizzuUrl = url + }) - this.#workspaceHost = new WorkspaceHost(TestEnv.getWorkspacePath()) - this.#workspaceHostReady = this.#workspaceHost.serverPortReady() - startTestSuiteReady.push(this.#workspaceHostReady) - this.#workspaceHostReady.then((serverPort) => { - this.#workspaceHostServerPort = serverPort - }) + this.#workspaceHost = new WorkspaceHost(TestEnv.getWorkspacePath()) + this.#workspaceHostReady = this.#workspaceHost.serverPortReady() + startTestSuiteReady.push(this.#workspaceHostReady) + this.#workspaceHostReady.then((serverPort) => { + this.#workspaceHostServerPort = serverPort + }) - this.#browsersChrome.setBrowsersNum( - this.#testCases.filteredTestCases.length < this.#browsersChrome.getBrowsersNum() - ? this.#testCases.filteredTestCases.length - : this.#browsersChrome.getBrowsersNum() - ) - this.#browsersChromeReady = this.#browsersChrome.startBrowsers() - startTestSuiteReady.push(this.#browsersChromeReady) + this.#browsersChrome.setBrowsersNum( + this.#testCases.filteredTestCases.length < this.#browsersChrome.getBrowsersNum() + ? this.#testCases.filteredTestCases.length + : this.#browsersChrome.getBrowsersNum() + ) + this.#browsersChromeReady = this.#browsersChrome.startBrowsers() + startTestSuiteReady.push(this.#browsersChromeReady) - Promise.all(startTestSuiteReady) - .then(() => { - return resolve() - }) - .catch((err) => { - return reject(err) - }) - }) - } + Promise.all(startTestSuiteReady) + .then(() => { + return resolve() + }) + .catch((err) => { + return reject(err) + }) + }) + } - #destructVideoRecorder() { - AggregateErrorReady.then((AggregateError) => { - const errs = [] - try { - this.#browsersChrome.closeBrowsers() - } catch (err) { - errs.push(err) - } - try { - if (this.#workspaceHost) { - this.#workspaceHost.closeServer() - } - } catch (err) { - errs.push(err) - } - if (errs.length > 1) { - throw new AggregateError(errs) - } else if (errs.length === 1) { - throw errs[0] - } - }) - } + #destructVideoRecorder() { + AggregateErrorReady.then((AggregateError) => { + const errs = [] + try { + this.#browsersChrome.closeBrowsers() + } catch (err) { + errs.push(err) + } + try { + if (this.#workspaceHost) { + this.#workspaceHost.closeServer() + } + } catch (err) { + errs.push(err) + } + if (errs.length > 1) { + throw new AggregateError(errs) + } else if (errs.length === 1) { + throw errs[0] + } + }) + } } try { - const argv = yargs - .help('h') - .alias('h', 'help') + const argv = yargs + .help('h') + .alias('h', 'help') - .version(false) + .version(false) - .array('c') - .alias('c', 'configs') - .nargs('c', 1) - .describe( - 'c', - "Change the list of config file's path of the test cases" + - '\n(relative or absolute path where the repo folder is the root)' + - '\n' - ) - .default('c', [ - '/test/integration/test_cases/test_cases.json', - '/test/integration/tests/style_tests.json' - ]) + .array('c') + .alias('c', 'configs') + .nargs('c', 1) + .describe( + 'c', + "Change the list of config file's path of the test cases" + + '\n(relative or absolute path where the repo folder is the root)' + + '\n' + ) + .default('c', [ + '/test/integration/test_cases/test_cases.json', + '/test/integration/tests/style_tests.json' + ]) - .string('vizzu') - .nargs('vizzu', 1) - .describe( - 'vizzu', - 'Change Vizzu url' + - '\n(can be forced to use vizzu.js or vizzu.min.js if its given)' + - '\n\n- "head": select the last stable Vizzu from the main branch' + - '\n(default: vizzu.min.js)' + - '\n\n- [sha]: select Vizzu with a short commit number' + - '\n(default: vizzu.min.js)' + - '\n\n- [version]: select Vizzu with a version number' + - '\n(vizzu.min.js only)' + - '\n\n- path: select Vizzu from the local file system' + - '\n(relative or absolute path where the repo folder is the root)' + - '\n(default: vizzu.js)' + - '\n' - ) - .default('vizzu', '/dist/vizzu.js') + .string('vizzu') + .nargs('vizzu', 1) + .describe( + 'vizzu', + 'Change Vizzu url' + + '\n(can be forced to use vizzu.js or vizzu.min.js if its given)' + + '\n\n- "head": select the last stable Vizzu from the main branch' + + '\n(default: vizzu.min.js)' + + '\n\n- [sha]: select Vizzu with a short commit number' + + '\n(default: vizzu.min.js)' + + '\n\n- [version]: select Vizzu with a version number' + + '\n(vizzu.min.js only)' + + '\n\n- path: select Vizzu from the local file system' + + '\n(relative or absolute path where the repo folder is the root)' + + '\n(default: vizzu.js)' + + '\n' + ) + .default('vizzu', '/dist/vizzu.js') - .number('b') - .alias('b', 'browsers') - .describe('b', 'Change number of parallel browser windows' + '\n') - .default('b', 1) + .number('b') + .alias('b', 'browsers') + .describe('b', 'Change number of parallel browser windows' + '\n') + .default('b', 1) - .example( - '$0 ../../test_cases/web_content/animated/*', - 'Generate thumbnails for test_cases/web_content/animated' - ).argv + .example( + '$0 ../../test_cases/web_content/animated/*', + 'Generate thumbnails for test_cases/web_content/animated' + ).argv - const videoRecorder = new VideoRecorder(argv.configs, argv._, argv.browsers, argv.vizzu) - videoRecorder.run() + const videoRecorder = new VideoRecorder(argv.configs, argv._, argv.browsers, argv.vizzu) + videoRecorder.run() } catch (err) { - process.exitCode = 1 - console.error(err) + process.exitCode = 1 + console.error(err) } diff --git a/test/integration/modules/videorecorder/resize.cjs b/test/integration/modules/videorecorder/resize.cjs index c4a4475f7..b6c325d8e 100644 --- a/test/integration/modules/videorecorder/resize.cjs +++ b/test/integration/modules/videorecorder/resize.cjs @@ -4,53 +4,53 @@ const fs = require('fs') const spawn = require('child_process') const getAllFiles = function (dirPath, arrayOfFiles) { - const files = fs.readdirSync(dirPath) + const files = fs.readdirSync(dirPath) - arrayOfFiles = arrayOfFiles || [] + arrayOfFiles = arrayOfFiles || [] - files.forEach(function (file) { - if (fs.statSync(dirPath + '/' + file).isDirectory()) { - arrayOfFiles = getAllFiles(dirPath + '/' + file, arrayOfFiles) - } else { - arrayOfFiles.push(path.join(dirPath, '/', file)) - } - }) + files.forEach(function (file) { + if (fs.statSync(dirPath + '/' + file).isDirectory()) { + arrayOfFiles = getAllFiles(dirPath + '/' + file, arrayOfFiles) + } else { + arrayOfFiles.push(path.join(dirPath, '/', file)) + } + }) - return arrayOfFiles + return arrayOfFiles } try { - const argv = yargs - .usage('Usage: $0 [options]') - - .help('h') - .alias('h', 'help') - - .version(false) - - .alias('s', 'size') - .describe('s', "Change video's height") - .nargs('s', 1) - .default('s', 320).argv - - fs.rmSync(path.join(__dirname, 'resized'), { force: true, recursive: true }) - const files = getAllFiles(path.join(__dirname, 'generated')) - files.forEach((file) => { - if (!fs.lstatSync(file).isDirectory()) { - if (path.extname(file) === '.webm') { - const outfile = file.replace('generated', 'resized') - fs.mkdirSync(path.dirname(outfile), { recursive: true }) - spawn.execSync( - `ffmpeg -i ${file} -vf scale=${argv.size.toString()}:-1 -ss 00:00.01 ${outfile}` - ) - const mp4file = outfile.replace('.webm', '.mp4') - spawn.execSync( - `ffmpeg -i ${file} -vf scale=${argv.size.toString()}:-1 -ss 00:00.01 ${mp4file}` - ) - } - } - }) + const argv = yargs + .usage('Usage: $0 [options]') + + .help('h') + .alias('h', 'help') + + .version(false) + + .alias('s', 'size') + .describe('s', "Change video's height") + .nargs('s', 1) + .default('s', 320).argv + + fs.rmSync(path.join(__dirname, 'resized'), { force: true, recursive: true }) + const files = getAllFiles(path.join(__dirname, 'generated')) + files.forEach((file) => { + if (!fs.lstatSync(file).isDirectory()) { + if (path.extname(file) === '.webm') { + const outfile = file.replace('generated', 'resized') + fs.mkdirSync(path.dirname(outfile), { recursive: true }) + spawn.execSync( + `ffmpeg -i ${file} -vf scale=${argv.size.toString()}:-1 -ss 00:00.01 ${outfile}` + ) + const mp4file = outfile.replace('.webm', '.mp4') + spawn.execSync( + `ffmpeg -i ${file} -vf scale=${argv.size.toString()}:-1 -ss 00:00.01 ${mp4file}` + ) + } + } + }) } catch (err) { - process.exitCode = 1 - console.error(err) + process.exitCode = 1 + console.error(err) } diff --git a/test/integration/modules/vizzu/vizzu-cloudfunctions.cjs b/test/integration/modules/vizzu/vizzu-cloudfunctions.cjs index d910cca25..a6b7b9abc 100644 --- a/test/integration/modules/vizzu/vizzu-cloudfunctions.cjs +++ b/test/integration/modules/vizzu/vizzu-cloudfunctions.cjs @@ -1,7 +1,7 @@ class VizzuCloudFunctions { - static getRemoteCloudFunctions() { - return 'https://europe-west3-vizzu-ci.cloudfunctions.net' - } + static getRemoteCloudFunctions() { + return 'https://europe-west3-vizzu-ci.cloudfunctions.net' + } } module.exports = VizzuCloudFunctions diff --git a/test/integration/modules/vizzu/vizzu-cloudfunctions.test.cjs b/test/integration/modules/vizzu/vizzu-cloudfunctions.test.cjs index 09f32db0e..dcfe8de8d 100644 --- a/test/integration/modules/vizzu/vizzu-cloudfunctions.test.cjs +++ b/test/integration/modules/vizzu/vizzu-cloudfunctions.test.cjs @@ -1,7 +1,7 @@ const VizzuCloudFunctions = require('./vizzu-cloudfunctions.cjs') test('if getRemoteCloudFunctions()', () => { - expect(VizzuCloudFunctions.getRemoteCloudFunctions()).toBe( - 'https://europe-west3-vizzu-ci.cloudfunctions.net' - ) + expect(VizzuCloudFunctions.getRemoteCloudFunctions()).toBe( + 'https://europe-west3-vizzu-ci.cloudfunctions.net' + ) }) diff --git a/test/integration/modules/vizzu/vizzu-url.cjs b/test/integration/modules/vizzu/vizzu-url.cjs index e5e872e5c..b39c695d1 100644 --- a/test/integration/modules/vizzu/vizzu-url.cjs +++ b/test/integration/modules/vizzu/vizzu-url.cjs @@ -4,136 +4,136 @@ const fetch = require('node-fetch') const WorkspacePath = require('../../modules/workspace/workspace-path.cjs') class VizzuUrl { - static getRemoteBucket() { - return 'https://vizzu-lib-main-sha.storage.googleapis.com' - } + static getRemoteBucket() { + return 'https://vizzu-lib-main-sha.storage.googleapis.com' + } - static getRemoteStableBucket() { - return 'https://vizzu-lib-main.storage.googleapis.com' - } + static getRemoteStableBucket() { + return 'https://vizzu-lib-main.storage.googleapis.com' + } - static getRemoteCdn() { - return 'https://cdn.jsdelivr.net/npm/vizzu' - } + static getRemoteCdn() { + return 'https://cdn.jsdelivr.net/npm/vizzu' + } - static getVizzuJs() { - return '/vizzu.js' - } + static getVizzuJs() { + return '/vizzu.js' + } - static getVizzuMinJs() { - return '/vizzu.min.js' - } + static getVizzuMinJs() { + return '/vizzu.min.js' + } - static resolveVizzuUrl(url, root, dirname) { - return new Promise((resolve, reject) => { - url = url.toString() - const vizzuTypeForced = VizzuUrl.#isVizzuUrlForced(url) - url = VizzuUrl.#purifyVizzuUrl(url) - url = VizzuUrl.#completeVizzuUrl(url, vizzuTypeForced) - if (url.startsWith('https://')) { - VizzuUrl.#isRemoteVizzuUrlExist(url) - .then((existingUrl) => { - return resolve(existingUrl) - }) - .catch((err) => { - return reject(err) - }) - } else { - VizzuUrl.#isLocalVizzuUrlExist(WorkspacePath.resolvePath(url, root, dirname)) - .then((vizzuPath) => { - return resolve(vizzuPath) - }) - .catch((err) => { - return reject(err) - }) - } - }) - } + static resolveVizzuUrl(url, root, dirname) { + return new Promise((resolve, reject) => { + url = url.toString() + const vizzuTypeForced = VizzuUrl.#isVizzuUrlForced(url) + url = VizzuUrl.#purifyVizzuUrl(url) + url = VizzuUrl.#completeVizzuUrl(url, vizzuTypeForced) + if (url.startsWith('https://')) { + VizzuUrl.#isRemoteVizzuUrlExist(url) + .then((existingUrl) => { + return resolve(existingUrl) + }) + .catch((err) => { + return reject(err) + }) + } else { + VizzuUrl.#isLocalVizzuUrlExist(WorkspacePath.resolvePath(url, root, dirname)) + .then((vizzuPath) => { + return resolve(vizzuPath) + }) + .catch((err) => { + return reject(err) + }) + } + }) + } - static #isVizzuUrlForced(url) { - if (url.endsWith(VizzuUrl.getVizzuMinJs())) { - return VizzuUrl.getVizzuMinJs() - } else if (url.endsWith(VizzuUrl.getVizzuJs())) { - return VizzuUrl.getVizzuJs() - } - } + static #isVizzuUrlForced(url) { + if (url.endsWith(VizzuUrl.getVizzuMinJs())) { + return VizzuUrl.getVizzuMinJs() + } else if (url.endsWith(VizzuUrl.getVizzuJs())) { + return VizzuUrl.getVizzuJs() + } + } - static #purifyVizzuUrl(url) { - if (url.endsWith(VizzuUrl.getVizzuMinJs())) { - return url.substring(0, url.length - VizzuUrl.getVizzuMinJs().length) - } else if (url.endsWith(VizzuUrl.getVizzuJs())) { - return url.substring(0, url.length - VizzuUrl.getVizzuJs().length) - } else if (url.endsWith('/')) { - return url.substring(0, url.length - 1) - } else { - return url - } - } + static #purifyVizzuUrl(url) { + if (url.endsWith(VizzuUrl.getVizzuMinJs())) { + return url.substring(0, url.length - VizzuUrl.getVizzuMinJs().length) + } else if (url.endsWith(VizzuUrl.getVizzuJs())) { + return url.substring(0, url.length - VizzuUrl.getVizzuJs().length) + } else if (url.endsWith('/')) { + return url.substring(0, url.length - 1) + } else { + return url + } + } - static #completeVizzuUrl(url, vizzuTypeForced) { - if (url.toLowerCase() === 'head') { - if (!vizzuTypeForced) { - vizzuTypeForced = VizzuUrl.getVizzuMinJs() - } - return VizzuUrl.getRemoteStableBucket() + '/lib' + vizzuTypeForced - } else if (/^[A-Za-z0-9]+$/.test(url) && url.length === 7) { - if (!vizzuTypeForced) { - vizzuTypeForced = VizzuUrl.getVizzuMinJs() - } - return VizzuUrl.getRemoteBucket() + '/lib-' + url + vizzuTypeForced - } else if (/^(\d+\.)?(\d+\.)?(\*|\d+)$/.test(url)) { - if (vizzuTypeForced === VizzuUrl.getVizzuJs()) { - throw new Error('select Vizzu from cdn can be used with vizzu.min.js only') - } - return VizzuUrl.getRemoteCdn() + '@' + url + '/dist' + VizzuUrl.getVizzuMinJs() - } else { - if (!vizzuTypeForced) { - vizzuTypeForced = VizzuUrl.getVizzuJs() - } - return url + vizzuTypeForced - } - } + static #completeVizzuUrl(url, vizzuTypeForced) { + if (url.toLowerCase() === 'head') { + if (!vizzuTypeForced) { + vizzuTypeForced = VizzuUrl.getVizzuMinJs() + } + return VizzuUrl.getRemoteStableBucket() + '/lib' + vizzuTypeForced + } else if (/^[A-Za-z0-9]+$/.test(url) && url.length === 7) { + if (!vizzuTypeForced) { + vizzuTypeForced = VizzuUrl.getVizzuMinJs() + } + return VizzuUrl.getRemoteBucket() + '/lib-' + url + vizzuTypeForced + } else if (/^(\d+\.)?(\d+\.)?(\*|\d+)$/.test(url)) { + if (vizzuTypeForced === VizzuUrl.getVizzuJs()) { + throw new Error('select Vizzu from cdn can be used with vizzu.min.js only') + } + return VizzuUrl.getRemoteCdn() + '@' + url + '/dist' + VizzuUrl.getVizzuMinJs() + } else { + if (!vizzuTypeForced) { + vizzuTypeForced = VizzuUrl.getVizzuJs() + } + return url + vizzuTypeForced + } + } - static #isUrlExist(url) { - return new Promise((resolve, reject) => { - fetch(url, { - method: 'HEAD' - }) - .then((response) => { - if (response.status === 200) { - return resolve(url) - } - return reject(response.status) - }) - .catch((err) => { - return reject(err) - }) - }) - } + static #isUrlExist(url) { + return new Promise((resolve, reject) => { + fetch(url, { + method: 'HEAD' + }) + .then((response) => { + if (response.status === 200) { + return resolve(url) + } + return reject(response.status) + }) + .catch((err) => { + return reject(err) + }) + }) + } - static #isRemoteVizzuUrlExist(url) { - return new Promise((resolve, reject) => { - VizzuUrl.#isUrlExist(url) - .then((existingUrl) => { - return resolve(existingUrl) - }) - .catch((err) => { - return reject(err) - }) - }) - } + static #isRemoteVizzuUrlExist(url) { + return new Promise((resolve, reject) => { + VizzuUrl.#isUrlExist(url) + .then((existingUrl) => { + return resolve(existingUrl) + }) + .catch((err) => { + return reject(err) + }) + }) + } - static #isLocalVizzuUrlExist(vizzuPath) { - return new Promise((resolve, reject) => { - fs.stat(vizzuPath, (err) => { - if (err === null) { - return resolve(vizzuPath) - } else { - return reject(err) - } - }) - }) - } + static #isLocalVizzuUrlExist(vizzuPath) { + return new Promise((resolve, reject) => { + fs.stat(vizzuPath, (err) => { + if (err === null) { + return resolve(vizzuPath) + } else { + return reject(err) + } + }) + }) + } } module.exports = VizzuUrl diff --git a/test/integration/modules/vizzu/vizzu-url.test.cjs b/test/integration/modules/vizzu/vizzu-url.test.cjs index 60cadd402..04e2144cc 100644 --- a/test/integration/modules/vizzu/vizzu-url.test.cjs +++ b/test/integration/modules/vizzu/vizzu-url.test.cjs @@ -4,259 +4,284 @@ const fs = require('fs') const fetch = require('node-fetch') test('if getRemoteBucket()', () => { - expect(VizzuUrl.getRemoteBucket()).toBe('https://vizzu-lib-main-sha.storage.googleapis.com') + expect(VizzuUrl.getRemoteBucket()).toBe('https://vizzu-lib-main-sha.storage.googleapis.com') }) test('if getRemoteStableBucket()', () => { - expect(VizzuUrl.getRemoteStableBucket()).toBe('https://vizzu-lib-main.storage.googleapis.com') + expect(VizzuUrl.getRemoteStableBucket()).toBe('https://vizzu-lib-main.storage.googleapis.com') }) test('if getRemoteCdn()', () => { - expect(VizzuUrl.getRemoteCdn()).toBe('https://cdn.jsdelivr.net/npm/vizzu') + expect(VizzuUrl.getRemoteCdn()).toBe('https://cdn.jsdelivr.net/npm/vizzu') }) test('if getVizzuJs()', () => { - expect(VizzuUrl.getVizzuJs()).toBe('/vizzu.js') + expect(VizzuUrl.getVizzuJs()).toBe('/vizzu.js') }) test('if getVizzuMinJs()', () => { - expect(VizzuUrl.getVizzuMinJs()).toBe('/vizzu.min.js') + expect(VizzuUrl.getVizzuMinJs()).toBe('/vizzu.min.js') }) describe('resolveVizzuUrl()', () => { - describe('head', () => { - test('if head', () => { - return VizzuUrl.resolveVizzuUrl('head').then((url) => { - expect(url).toBe(VizzuUrl.getRemoteStableBucket() + '/lib' + VizzuUrl.getVizzuMinJs()) - }) - }) - - test('if head/', () => { - return VizzuUrl.resolveVizzuUrl('head/').then((url) => { - expect(url).toBe(VizzuUrl.getRemoteStableBucket() + '/lib' + VizzuUrl.getVizzuMinJs()) - }) - }) - - test('if head' + VizzuUrl.getVizzuMinJs(), () => { - return VizzuUrl.resolveVizzuUrl('head' + VizzuUrl.getVizzuMinJs()).then((url) => { - expect(url).toBe(VizzuUrl.getRemoteStableBucket() + '/lib' + VizzuUrl.getVizzuMinJs()) - }) - }) - - test('if head' + VizzuUrl.getVizzuJs(), () => { - return VizzuUrl.resolveVizzuUrl('head' + VizzuUrl.getVizzuJs()).then((url) => { - expect(url).toBe(VizzuUrl.getRemoteStableBucket() + '/lib' + VizzuUrl.getVizzuJs()) - }) - }) - }) - - describe('sha', () => { - test('if sha is not exist', () => { - return expect(VizzuUrl.resolveVizzuUrl('0000000')).rejects.toBe(404) - }) - - const shaReady = fetch(VizzuUrl.getRemoteStableBucket() + '/lib/sha.txt').then((shaRaw) => { - return shaRaw.text() - }) - - test('if sha', () => { - return shaReady.then((sha) => { - sha = sha.toString().trim() - VizzuUrl.resolveVizzuUrl(sha).then((url) => { - expect(url).toBe(VizzuUrl.getRemoteBucket() + '/lib-' + sha + VizzuUrl.getVizzuMinJs()) - }) - }) - }) - - test('if sha/', () => { - return shaReady.then((sha) => { - sha = sha.toString().trim() - VizzuUrl.resolveVizzuUrl(sha + '/').then((url) => { - expect(url).toBe(VizzuUrl.getRemoteBucket() + '/lib-' + sha + VizzuUrl.getVizzuMinJs()) - }) - }) - }) - - test('if sha' + VizzuUrl.getVizzuMinJs(), () => { - return shaReady.then((sha) => { - sha = sha.toString().trim() - VizzuUrl.resolveVizzuUrl(sha + VizzuUrl.getVizzuMinJs()).then((url) => { - expect(url).toBe(VizzuUrl.getRemoteBucket() + '/lib-' + sha + VizzuUrl.getVizzuMinJs()) - }) - }) - }) - - test('if sha' + VizzuUrl.getVizzuJs(), () => { - return shaReady.then((sha) => { - sha = sha.toString().trim() - VizzuUrl.resolveVizzuUrl(sha + VizzuUrl.getVizzuJs()).then((url) => { - expect(url).toBe(VizzuUrl.getRemoteBucket() + '/lib-' + sha + VizzuUrl.getVizzuJs()) - }) - }) - }) - }) - - describe('cdn', () => { - test('if 0.0.0 err is thrown', () => { - return expect(VizzuUrl.resolveVizzuUrl('0.0.0')).rejects.toBe(404) - }) - - test('if 0.3.0', () => { - return VizzuUrl.resolveVizzuUrl('0.3.0').then((url) => { - expect(url).toBe(VizzuUrl.getRemoteCdn() + '@0.3.0/dist' + VizzuUrl.getVizzuMinJs()) - }) - }) - - test('if 0.3.0/', () => { - return VizzuUrl.resolveVizzuUrl('0.3.0/').then((url) => { - expect(url).toBe(VizzuUrl.getRemoteCdn() + '@0.3.0/dist' + VizzuUrl.getVizzuMinJs()) - }) - }) - - test('if 0.3.0' + VizzuUrl.getVizzuMinJs(), () => { - return VizzuUrl.resolveVizzuUrl('0.3.0' + VizzuUrl.getVizzuMinJs()).then((url) => { - expect(url).toBe(VizzuUrl.getRemoteCdn() + '@0.3.0/dist' + VizzuUrl.getVizzuMinJs()) - }) - }) - - test('if 0.3.0' + VizzuUrl.getVizzuJs(), () => { - return expect(VizzuUrl.resolveVizzuUrl('0.3.0' + VizzuUrl.getVizzuJs())).rejects.toThrow( - 'select Vizzu from cdn can be used with vizzu.min.js only' - ) - }) - }) - - describe('local', () => { - test('if err is thrown (root and dirname are undefined)', () => { - return expect(VizzuUrl.resolveVizzuUrl('/')).rejects.toThrow('parameter is required') - }) - - test('if err is thrown (root or dirname is undefined)', () => { - return expect(VizzuUrl.resolveVizzuUrl('/', '/')).rejects.toThrow('parameter is required') - }) - - test('if err is thrown (local does not exist)', () => { - return expect(VizzuUrl.resolveVizzuUrl('/', '/', '.')).rejects.toThrow( - "ENOENT: no such file or directory, stat '/vizzu.js'" - ) - }) - - describe('local is exists', () => { - const root = path.join(__dirname, '../../../..') - const local = path.join(__dirname, '../../test_report/unit/vizzu') - - beforeAll(() => { - return new Promise((resolve, reject) => { - fs.mkdir(local, { recursive: true, force: true }, (err) => { - if (err) { - return reject(err) - } - const vizzuJsReady = new Promise((resolve, reject) => { - fs.open(local + VizzuUrl.getVizzuJs(), 'w', (err, file) => { - if (err) { - return reject(err) - } - return resolve() - }) - }) - const vizzuMinJsReady = new Promise((resolve, reject) => { - fs.open(local + VizzuUrl.getVizzuMinJs(), 'w', (err, file) => { - if (err) { - return reject(err) - } - return resolve() - }) - }) - Promise.all([vizzuJsReady, vizzuMinJsReady]).then(() => { - return resolve() - }) - }) - }) - }) - - describe('with relative path', () => { - const local1 = './test/integration/test_report/unit/vizzu' - test('if ' + local1, () => { - return VizzuUrl.resolveVizzuUrl(local1, root, '.').then((url) => { - expect(url).toBe(path.resolve(local1 + VizzuUrl.getVizzuJs())) - }) - }) - - const local2 = './test/integration/test_report/unit/vizzu/' - test('if ' + local2, () => { - return VizzuUrl.resolveVizzuUrl(local2, root, '.').then((url) => { - expect(url).toBe(path.resolve(local2 + 'vizzu.js')) - }) - }) - - const local3 = './test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuJs() - test('if ' + local3, () => { - return VizzuUrl.resolveVizzuUrl(local3, root, '.').then((url) => { - expect(url).toBe(path.resolve(local3)) - }) - }) - - const local4 = './test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() - test('if ' + local4, () => { - return VizzuUrl.resolveVizzuUrl(local4, root, '.').then((url) => { - expect(url).toBe(path.resolve(local4)) - }) - }) - }) - - describe('with absolute path', () => { - const local1 = '/test/integration/test_report/unit/vizzu' - test('if ' + local1, () => { - return VizzuUrl.resolveVizzuUrl(local1, root, '.').then((url) => { - expect(url).toBe(path.resolve(root + local1 + VizzuUrl.getVizzuJs())) - }) - }) - - const local2 = '/test/integration/test_report/unit/vizzu/' - test('if ' + local2, () => { - return VizzuUrl.resolveVizzuUrl(local2, root, '.').then((url) => { - expect(url).toBe(path.resolve(root + local2 + 'vizzu.js')) - }) - }) - - const local3 = '/test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuJs() - test('if ' + local3, () => { - return VizzuUrl.resolveVizzuUrl(local3, root, '.').then((url) => { - expect(url).toBe(path.resolve(root + local3)) - }) - }) - - const local4 = '/test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() - test('if ' + local4, () => { - return VizzuUrl.resolveVizzuUrl(local4, root, '.').then((url) => { - expect(url).toBe(path.resolve(root + local4)) - }) - }) - }) - - afterAll(() => { - return new Promise((resolve, reject) => { - const rmVizzuJsReady = new Promise((resolve, reject) => { - fs.rm(local + VizzuUrl.getVizzuJs(), { force: true, recursive: true }, (err) => { - if (err) { - return reject(err) - } - return resolve() - }) - }) - const rmVizzuMinJsReady = new Promise((resolve, reject) => { - fs.rm(local + VizzuUrl.getVizzuMinJs(), { force: true, recursive: true }, (err) => { - if (err) { - return reject(err) - } - return resolve() - }) - }) - Promise.all([rmVizzuJsReady, rmVizzuMinJsReady]).then(() => { - return resolve() - }) - }) - }) - }) - }) + describe('head', () => { + test('if head', () => { + return VizzuUrl.resolveVizzuUrl('head').then((url) => { + expect(url).toBe( + VizzuUrl.getRemoteStableBucket() + '/lib' + VizzuUrl.getVizzuMinJs() + ) + }) + }) + + test('if head/', () => { + return VizzuUrl.resolveVizzuUrl('head/').then((url) => { + expect(url).toBe( + VizzuUrl.getRemoteStableBucket() + '/lib' + VizzuUrl.getVizzuMinJs() + ) + }) + }) + + test('if head' + VizzuUrl.getVizzuMinJs(), () => { + return VizzuUrl.resolveVizzuUrl('head' + VizzuUrl.getVizzuMinJs()).then((url) => { + expect(url).toBe( + VizzuUrl.getRemoteStableBucket() + '/lib' + VizzuUrl.getVizzuMinJs() + ) + }) + }) + + test('if head' + VizzuUrl.getVizzuJs(), () => { + return VizzuUrl.resolveVizzuUrl('head' + VizzuUrl.getVizzuJs()).then((url) => { + expect(url).toBe(VizzuUrl.getRemoteStableBucket() + '/lib' + VizzuUrl.getVizzuJs()) + }) + }) + }) + + describe('sha', () => { + test('if sha is not exist', () => { + return expect(VizzuUrl.resolveVizzuUrl('0000000')).rejects.toBe(404) + }) + + const shaReady = fetch(VizzuUrl.getRemoteStableBucket() + '/lib/sha.txt').then((shaRaw) => { + return shaRaw.text() + }) + + test('if sha', () => { + return shaReady.then((sha) => { + sha = sha.toString().trim() + VizzuUrl.resolveVizzuUrl(sha).then((url) => { + expect(url).toBe( + VizzuUrl.getRemoteBucket() + '/lib-' + sha + VizzuUrl.getVizzuMinJs() + ) + }) + }) + }) + + test('if sha/', () => { + return shaReady.then((sha) => { + sha = sha.toString().trim() + VizzuUrl.resolveVizzuUrl(sha + '/').then((url) => { + expect(url).toBe( + VizzuUrl.getRemoteBucket() + '/lib-' + sha + VizzuUrl.getVizzuMinJs() + ) + }) + }) + }) + + test('if sha' + VizzuUrl.getVizzuMinJs(), () => { + return shaReady.then((sha) => { + sha = sha.toString().trim() + VizzuUrl.resolveVizzuUrl(sha + VizzuUrl.getVizzuMinJs()).then((url) => { + expect(url).toBe( + VizzuUrl.getRemoteBucket() + '/lib-' + sha + VizzuUrl.getVizzuMinJs() + ) + }) + }) + }) + + test('if sha' + VizzuUrl.getVizzuJs(), () => { + return shaReady.then((sha) => { + sha = sha.toString().trim() + VizzuUrl.resolveVizzuUrl(sha + VizzuUrl.getVizzuJs()).then((url) => { + expect(url).toBe( + VizzuUrl.getRemoteBucket() + '/lib-' + sha + VizzuUrl.getVizzuJs() + ) + }) + }) + }) + }) + + describe('cdn', () => { + test('if 0.0.0 err is thrown', () => { + return expect(VizzuUrl.resolveVizzuUrl('0.0.0')).rejects.toBe(404) + }) + + test('if 0.3.0', () => { + return VizzuUrl.resolveVizzuUrl('0.3.0').then((url) => { + expect(url).toBe(VizzuUrl.getRemoteCdn() + '@0.3.0/dist' + VizzuUrl.getVizzuMinJs()) + }) + }) + + test('if 0.3.0/', () => { + return VizzuUrl.resolveVizzuUrl('0.3.0/').then((url) => { + expect(url).toBe(VizzuUrl.getRemoteCdn() + '@0.3.0/dist' + VizzuUrl.getVizzuMinJs()) + }) + }) + + test('if 0.3.0' + VizzuUrl.getVizzuMinJs(), () => { + return VizzuUrl.resolveVizzuUrl('0.3.0' + VizzuUrl.getVizzuMinJs()).then((url) => { + expect(url).toBe(VizzuUrl.getRemoteCdn() + '@0.3.0/dist' + VizzuUrl.getVizzuMinJs()) + }) + }) + + test('if 0.3.0' + VizzuUrl.getVizzuJs(), () => { + return expect( + VizzuUrl.resolveVizzuUrl('0.3.0' + VizzuUrl.getVizzuJs()) + ).rejects.toThrow('select Vizzu from cdn can be used with vizzu.min.js only') + }) + }) + + describe('local', () => { + test('if err is thrown (root and dirname are undefined)', () => { + return expect(VizzuUrl.resolveVizzuUrl('/')).rejects.toThrow('parameter is required') + }) + + test('if err is thrown (root or dirname is undefined)', () => { + return expect(VizzuUrl.resolveVizzuUrl('/', '/')).rejects.toThrow( + 'parameter is required' + ) + }) + + test('if err is thrown (local does not exist)', () => { + return expect(VizzuUrl.resolveVizzuUrl('/', '/', '.')).rejects.toThrow( + "ENOENT: no such file or directory, stat '/vizzu.js'" + ) + }) + + describe('local is exists', () => { + const root = path.join(__dirname, '../../../..') + const local = path.join(__dirname, '../../test_report/unit/vizzu') + + beforeAll(() => { + return new Promise((resolve, reject) => { + fs.mkdir(local, { recursive: true, force: true }, (err) => { + if (err) { + return reject(err) + } + const vizzuJsReady = new Promise((resolve, reject) => { + fs.open(local + VizzuUrl.getVizzuJs(), 'w', (err, file) => { + if (err) { + return reject(err) + } + return resolve() + }) + }) + const vizzuMinJsReady = new Promise((resolve, reject) => { + fs.open(local + VizzuUrl.getVizzuMinJs(), 'w', (err, file) => { + if (err) { + return reject(err) + } + return resolve() + }) + }) + Promise.all([vizzuJsReady, vizzuMinJsReady]).then(() => { + return resolve() + }) + }) + }) + }) + + describe('with relative path', () => { + const local1 = './test/integration/test_report/unit/vizzu' + test('if ' + local1, () => { + return VizzuUrl.resolveVizzuUrl(local1, root, '.').then((url) => { + expect(url).toBe(path.resolve(local1 + VizzuUrl.getVizzuJs())) + }) + }) + + const local2 = './test/integration/test_report/unit/vizzu/' + test('if ' + local2, () => { + return VizzuUrl.resolveVizzuUrl(local2, root, '.').then((url) => { + expect(url).toBe(path.resolve(local2 + 'vizzu.js')) + }) + }) + + const local3 = './test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuJs() + test('if ' + local3, () => { + return VizzuUrl.resolveVizzuUrl(local3, root, '.').then((url) => { + expect(url).toBe(path.resolve(local3)) + }) + }) + + const local4 = + './test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() + test('if ' + local4, () => { + return VizzuUrl.resolveVizzuUrl(local4, root, '.').then((url) => { + expect(url).toBe(path.resolve(local4)) + }) + }) + }) + + describe('with absolute path', () => { + const local1 = '/test/integration/test_report/unit/vizzu' + test('if ' + local1, () => { + return VizzuUrl.resolveVizzuUrl(local1, root, '.').then((url) => { + expect(url).toBe(path.resolve(root + local1 + VizzuUrl.getVizzuJs())) + }) + }) + + const local2 = '/test/integration/test_report/unit/vizzu/' + test('if ' + local2, () => { + return VizzuUrl.resolveVizzuUrl(local2, root, '.').then((url) => { + expect(url).toBe(path.resolve(root + local2 + 'vizzu.js')) + }) + }) + + const local3 = '/test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuJs() + test('if ' + local3, () => { + return VizzuUrl.resolveVizzuUrl(local3, root, '.').then((url) => { + expect(url).toBe(path.resolve(root + local3)) + }) + }) + + const local4 = '/test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() + test('if ' + local4, () => { + return VizzuUrl.resolveVizzuUrl(local4, root, '.').then((url) => { + expect(url).toBe(path.resolve(root + local4)) + }) + }) + }) + + afterAll(() => { + return new Promise((resolve, reject) => { + const rmVizzuJsReady = new Promise((resolve, reject) => { + fs.rm( + local + VizzuUrl.getVizzuJs(), + { force: true, recursive: true }, + (err) => { + if (err) { + return reject(err) + } + return resolve() + } + ) + }) + const rmVizzuMinJsReady = new Promise((resolve, reject) => { + fs.rm( + local + VizzuUrl.getVizzuMinJs(), + { force: true, recursive: true }, + (err) => { + if (err) { + return reject(err) + } + return resolve() + } + ) + }) + Promise.all([rmVizzuJsReady, rmVizzuMinJsReady]).then(() => { + return resolve() + }) + }) + }) + }) + }) }) diff --git a/test/integration/modules/vizzu/vizzu-version-client/index.html b/test/integration/modules/vizzu/vizzu-version-client/index.html index 3aaee2808..66c58f1f5 100644 --- a/test/integration/modules/vizzu/vizzu-version-client/index.html +++ b/test/integration/modules/vizzu/vizzu-version-client/index.html @@ -1,12 +1,12 @@ - - Loading... - - - - - - - + + Loading... + + + + + + + diff --git a/test/integration/modules/vizzu/vizzu-version-client/index.js b/test/integration/modules/vizzu/vizzu-version-client/index.js index 13d2ad8c7..64dfa2508 100644 --- a/test/integration/modules/vizzu/vizzu-version-client/index.js +++ b/test/integration/modules/vizzu/vizzu-version-client/index.js @@ -1,31 +1,31 @@ function catchError(err) { - console.error(err) - let errMsg = err.toString() - if (err.stack !== undefined) { - errMsg = err.stack - } - window.vizzuVersion = errMsg - document.title = 'Finished' + console.error(err) + let errMsg = err.toString() + if (err.stack !== undefined) { + errMsg = err.stack + } + window.vizzuVersion = errMsg + document.title = 'Finished' } try { - const queryString = window.location.search - const urlParams = new URLSearchParams(queryString) - const vizzuUrl = urlParams.get('vizzuUrl') + const queryString = window.location.search + const urlParams = new URLSearchParams(queryString) + const vizzuUrl = urlParams.get('vizzuUrl') - import(vizzuUrl) - .then((vizzuModule) => { - const Vizzu = vizzuModule.default - const chart = new Vizzu('vizzuCanvas') - return chart.initializing - }) - .then((chart) => { - window.vizzuVersion = chart.version() - document.title = 'Finished' - }) - .catch((err) => { - catchError(err) - }) + import(vizzuUrl) + .then((vizzuModule) => { + const Vizzu = vizzuModule.default + const chart = new Vizzu('vizzuCanvas') + return chart.initializing + }) + .then((chart) => { + window.vizzuVersion = chart.version() + document.title = 'Finished' + }) + .catch((err) => { + catchError(err) + }) } catch (err) { - catchError(err) + catchError(err) } diff --git a/test/integration/modules/vizzu/vizzu-version.cjs b/test/integration/modules/vizzu/vizzu-version.cjs index 6c346efbb..2da1cf737 100644 --- a/test/integration/modules/vizzu/vizzu-version.cjs +++ b/test/integration/modules/vizzu/vizzu-version.cjs @@ -8,91 +8,93 @@ const VizzuUrl = require('../../modules/vizzu/vizzu-url.cjs') const TestEnv = require('../../modules/integration-test/test-env.cjs') class VizzuVersion { - static getVizzuUrlVersion(vizzuUrl) { - return new Promise((resolve, reject) => { - const vizzuUrlReady = VizzuUrl.resolveVizzuUrl( - vizzuUrl, - TestEnv.getWorkspacePath(), - TestEnv.getTestSuitePath() - ) - vizzuUrlReady.then((vizzuUrl) => { - const workspaceHost = new WorkspaceHost(TestEnv.getWorkspacePath()) - const workspaceHostReady = workspaceHost.serverPortReady() - const browserChrome = new BrowserChrome() - const browserChromeReady = browserChrome.initializing - Promise.all([workspaceHostReady, browserChromeReady]).then(([workspaceHostServerPort]) => { - if (vizzuUrl.startsWith('/')) { - vizzuUrl = '/' + path.relative(TestEnv.getWorkspacePath(), vizzuUrl) - } - browserChrome - .getUrl( - 'http://127.0.0.1:' + - String(workspaceHostServerPort) + - '/test/integration/modules/vizzu/vizzu-version-client/index.html' + - '?vizzuUrl=' + - vizzuUrl - ) - .then(() => { - browserChrome.waitUntilTitleIs('Finished', 30000).then(() => { - browserChrome - .executeScript(() => { - return vizzuVersion // eslint-disable-line no-undef - }) - .then((VizzuVersion) => { - browserChrome.closeBrowser() - workspaceHost.closeServer() - return resolve(VizzuVersion) - }) - }) - }) - }) - }) - }) - } + static getVizzuUrlVersion(vizzuUrl) { + return new Promise((resolve, reject) => { + const vizzuUrlReady = VizzuUrl.resolveVizzuUrl( + vizzuUrl, + TestEnv.getWorkspacePath(), + TestEnv.getTestSuitePath() + ) + vizzuUrlReady.then((vizzuUrl) => { + const workspaceHost = new WorkspaceHost(TestEnv.getWorkspacePath()) + const workspaceHostReady = workspaceHost.serverPortReady() + const browserChrome = new BrowserChrome() + const browserChromeReady = browserChrome.initializing + Promise.all([workspaceHostReady, browserChromeReady]).then( + ([workspaceHostServerPort]) => { + if (vizzuUrl.startsWith('/')) { + vizzuUrl = '/' + path.relative(TestEnv.getWorkspacePath(), vizzuUrl) + } + browserChrome + .getUrl( + 'http://127.0.0.1:' + + String(workspaceHostServerPort) + + '/test/integration/modules/vizzu/vizzu-version-client/index.html' + + '?vizzuUrl=' + + vizzuUrl + ) + .then(() => { + browserChrome.waitUntilTitleIs('Finished', 30000).then(() => { + browserChrome + .executeScript(() => { + return vizzuVersion // eslint-disable-line no-undef + }) + .then((VizzuVersion) => { + browserChrome.closeBrowser() + workspaceHost.closeServer() + return resolve(VizzuVersion) + }) + }) + }) + } + ) + }) + }) + } - static getPrivateBetaList() { - return [ - { - num: '0.2.0 (private beta)', - url: 'https://vizzuhq.github.io/vizzu-beta-release/0.2.0' - } - ] - } + static getPrivateBetaList() { + return [ + { + num: '0.2.0 (private beta)', + url: 'https://vizzuhq.github.io/vizzu-beta-release/0.2.0' + } + ] + } - static getPublicBetaList() { - return new Promise((resolve) => { - fetch('https://data.jsdelivr.com/v1/package/npm/vizzu') - .then((data) => { - return data.json().then((data) => { - const publicBetaList = data.versions - publicBetaList.slice().forEach((version, index) => { - publicBetaList[index] = { - num: version + ' (cdn)', - url: VizzuUrl.getRemoteCdn() + '@' + version + '/dist/vizzu.min.js' - } - }) - return resolve(publicBetaList) - }) - }) - .catch((err) => { - console.error(err) - console.error('failed to fetch cdn lib list') - return resolve([]) - }) - }) - } + static getPublicBetaList() { + return new Promise((resolve) => { + fetch('https://data.jsdelivr.com/v1/package/npm/vizzu') + .then((data) => { + return data.json().then((data) => { + const publicBetaList = data.versions + publicBetaList.slice().forEach((version, index) => { + publicBetaList[index] = { + num: version + ' (cdn)', + url: VizzuUrl.getRemoteCdn() + '@' + version + '/dist/vizzu.min.js' + } + }) + return resolve(publicBetaList) + }) + }) + .catch((err) => { + console.error(err) + console.error('failed to fetch cdn lib list') + return resolve([]) + }) + }) + } - static checkUrlAvailability(url) { - return fetch(url, { method: 'HEAD' }) - .then((response) => { - if (response.status !== 200) { - throw new Error(`failed to fetch url: ${response.status}`) - } - }) - .catch((error) => { - throw error - }) - } + static checkUrlAvailability(url) { + return fetch(url, { method: 'HEAD' }) + .then((response) => { + if (response.status !== 200) { + throw new Error(`failed to fetch url: ${response.status}`) + } + }) + .catch((error) => { + throw error + }) + } } module.exports = VizzuVersion diff --git a/test/integration/modules/workspace/workspace-host.cjs b/test/integration/modules/workspace/workspace-host.cjs index 7a4fcff70..f3c8f5ca9 100644 --- a/test/integration/modules/workspace/workspace-host.cjs +++ b/test/integration/modules/workspace/workspace-host.cjs @@ -3,51 +3,51 @@ const serveStatic = require('serve-static') const express = require('express') class WorkspaceHost { - #app - - #server - #serverPort - - constructor(workspacePath, port = 0) { - this.#serverPort = this.#startServer(workspacePath, port) - } - - serverPortReady() { - return this.#serverPort - } - - #startServer(workspacePath, port) { - return new Promise((resolve, reject) => { - this.#app = express() - this.#app.use(serveStatic(this.#resolveWorkspacePath(workspacePath))) - this.#app.use(express.json()) - this.#server = this.#app.listen(port, () => { - return resolve(this.#server.address().port) - }) - }) - } - - setRoute(path, handler) { - this.#app.get(path, handler) - } - - setPostRoute(path, handler) { - this.#app.post(path, handler) - } - - closeServer() { - if (this.#server) { - this.#server.close() - } - } - - #resolveWorkspacePath(workspacePath) { - if (path.isAbsolute(workspacePath)) { - return workspacePath - } else { - return path.join(__dirname, workspacePath) - } - } + #app + + #server + #serverPort + + constructor(workspacePath, port = 0) { + this.#serverPort = this.#startServer(workspacePath, port) + } + + serverPortReady() { + return this.#serverPort + } + + #startServer(workspacePath, port) { + return new Promise((resolve, reject) => { + this.#app = express() + this.#app.use(serveStatic(this.#resolveWorkspacePath(workspacePath))) + this.#app.use(express.json()) + this.#server = this.#app.listen(port, () => { + return resolve(this.#server.address().port) + }) + }) + } + + setRoute(path, handler) { + this.#app.get(path, handler) + } + + setPostRoute(path, handler) { + this.#app.post(path, handler) + } + + closeServer() { + if (this.#server) { + this.#server.close() + } + } + + #resolveWorkspacePath(workspacePath) { + if (path.isAbsolute(workspacePath)) { + return workspacePath + } else { + return path.join(__dirname, workspacePath) + } + } } module.exports = WorkspaceHost diff --git a/test/integration/modules/workspace/workspace-path.cjs b/test/integration/modules/workspace/workspace-path.cjs index cc44ec07e..7785affc9 100644 --- a/test/integration/modules/workspace/workspace-path.cjs +++ b/test/integration/modules/workspace/workspace-path.cjs @@ -1,16 +1,16 @@ const path = require('path') class WorkspacePath { - static resolvePath(p, root, dirname) { - if (!p || !root || !dirname) { - throw new Error('parameter is required') - } - if (path.isAbsolute(p)) { - return path.resolve(path.join(root, p)) - } else { - return path.resolve(path.join(dirname, p)) - } - } + static resolvePath(p, root, dirname) { + if (!p || !root || !dirname) { + throw new Error('parameter is required') + } + if (path.isAbsolute(p)) { + return path.resolve(path.join(root, p)) + } else { + return path.resolve(path.join(dirname, p)) + } + } } module.exports = WorkspacePath diff --git a/test/integration/modules/workspace/workspace-path.test.cjs b/test/integration/modules/workspace/workspace-path.test.cjs index 038fa6833..338d67730 100644 --- a/test/integration/modules/workspace/workspace-path.test.cjs +++ b/test/integration/modules/workspace/workspace-path.test.cjs @@ -1,40 +1,40 @@ const WorkspacePath = require('./workspace-path.cjs') describe('WorkspacePath.resolvePath() without sufficient params', () => { - test('if err is thrown (0 param)', () => { - expect(() => { - WorkspacePath.resolvePath() - }).toThrow('parameter is required') - }) + test('if err is thrown (0 param)', () => { + expect(() => { + WorkspacePath.resolvePath() + }).toThrow('parameter is required') + }) - test('if err is thrown (1 param)', () => { - const param1 = 'param1' - expect(() => { - WorkspacePath.resolvePath(param1) - }).toThrow('parameter is required') - }) + test('if err is thrown (1 param)', () => { + const param1 = 'param1' + expect(() => { + WorkspacePath.resolvePath(param1) + }).toThrow('parameter is required') + }) - test('if err is thrown (2 params)', () => { - const param1 = 'param1' - const param2 = 'param2' - expect(() => { - WorkspacePath.resolvePath(param1, param2) - }).toThrow('parameter is required') - }) + test('if err is thrown (2 params)', () => { + const param1 = 'param1' + const param2 = 'param2' + expect(() => { + WorkspacePath.resolvePath(param1, param2) + }).toThrow('parameter is required') + }) }) describe('WorkspacePath.resolvePath(p, root, dirname)', () => { - test('if is absolute path resolved', () => { - const p = '/testDir/testFile.js' - const root = '/' - const dirname = '/testDirname' - expect(WorkspacePath.resolvePath(p, root, dirname)).toBe('/testDir/testFile.js') - }) + test('if is absolute path resolved', () => { + const p = '/testDir/testFile.js' + const root = '/' + const dirname = '/testDirname' + expect(WorkspacePath.resolvePath(p, root, dirname)).toBe('/testDir/testFile.js') + }) - test('if is relative path resolved', () => { - const p = './testDir/testFile.js' - const root = '/' - const dirname = '/testDirname' - expect(WorkspacePath.resolvePath(p, root, dirname)).toBe('/testDirname/testDir/testFile.js') - }) + test('if is relative path resolved', () => { + const p = './testDir/testFile.js' + const root = '/' + const dirname = '/testDirname' + expect(WorkspacePath.resolvePath(p, root, dirname)).toBe('/testDirname/testDir/testFile.js') + }) }) diff --git a/test/integration/test.cjs b/test/integration/test.cjs index 5b39ec3b5..4f17d5a60 100644 --- a/test/integration/test.cjs +++ b/test/integration/test.cjs @@ -4,20 +4,20 @@ const VizzuVersion = require('./modules/vizzu/vizzu-version.cjs') const TestSuite = require('./modules/integration-test/test-suite.cjs') const catchError = (err) => { - process.exitCode = 1 - let errMsg = err.toString() - if (err.stack !== undefined) { - errMsg = err.stack - } - if (cnsl) { - cnsl.log('[ ' + 'ERROR'.padEnd(cnsl.testStatusPad, ' ') + ' ] ' + errMsg) - } else { - console.log('[ ERROR ] ' + errMsg) - } + process.exitCode = 1 + let errMsg = err.toString() + if (err.stack !== undefined) { + errMsg = err.stack + } + if (cnsl) { + cnsl.log('[ ' + 'ERROR'.padEnd(cnsl.testStatusPad, ' ') + ' ] ' + errMsg) + } else { + console.log('[ ERROR ] ' + errMsg) + } } try { - const usage = ` + const usage = ` Usage: $0 [tests] [options] The integration test aims to comprehensively test the Vizzu library by executing animations represented as a promise chain of animate function calls. @@ -35,173 +35,179 @@ it indicates that the difference is likely caused by environmental factors such Please note that the test require Chrome, ChromeDriver and Selenium Webdriver to be properly configured and available. ` - const argv = yargs - - .usage(usage) - - .help('h') - .alias('h', 'help') - - .version(false) - .boolean('version') - .alias('v', 'version') - .describe('v', 'Show version number of Vizzu') - - .array('c') - .alias('c', 'configs') - .nargs('c', 1) - .describe( - 'c', - "Change the list of configuration files' path of the test cases" + - '\n(relative or absolute path where the repo folder is the root)' - ) - .default('c', [ - '/test/integration/test_cases/test_cases.json', - '/test/integration/tests/config_tests.json', - '/test/integration/tests/style_tests.json', - '/test/integration/tests/features.json', - '/test/integration/tests/fixes.json' - ]) - - .choices('Werror', ['noref', 'sameref']) - .describe( - 'Werror', - 'Select warnings to be treated as errors during the test execution' + - '\n- "noref": Test cases without reference hashes' + - '\n- "sameref": Test cases that produce the same hashes with the reference Vizzu' - ) - .coerce('Werror', (arg) => { - if (arg === true) { - return ['noref', 'sameref'] - } - return arg - }) - - .choices('images', ['ALL', 'FAILED', 'DISABLED']) - .describe( - 'images', - 'Change the saving behavior of images, which are captured from every test steps' + - '\n- "ALL": Create images for every test' + - '\n- "FAILED": Create images for failed/warning tests only' + - '\n- "DISABLED": Do not create images' - ) - .default('images', 'FAILED') - - .describe( - 'maxFailedImages', - 'The maximum number of failed and warning test cases, of which images are taken' - ) - .default('maxFailedImages', null) - - .choices('hashes', ['ALL', 'FAILED', 'DISABLED']) - .describe( - 'hashes', - 'Change the saving behavior of hashes, which are unique identifiers calculated for each test case' + - '\n- "ALL": Write hashes into the report file for every test' + - '\n- "FAILED": Write hashes into the report file for failed/warning tests only' + - '\n- "DISABLED": Do not create report file' - ) - .default('hashes', 'FAILED') - - .boolean('nologs') - .describe('nologs', 'Disable the saving of browser and console logs into a log file') - .default('nologs', false) - - .string('vizzu') - .nargs('vizzu', 1) - .describe( - 'vizzu', - 'Change Vizzu url' + - '\n(can be forced to use vizzu.js or vizzu.min.js if its given)' + - '\n\n- "head": specify "head" to select the last stable version of Vizzu from the main branch' + - '\n(default: vizzu.min.js)' + - '\n\n- [sha]: select Vizzu with a short commit number' + - '\n(default: vizzu.min.js)' + - '\n\n- [version]: select Vizzu with a version number' + - '\n(vizzu.min.js only)' + - '\n\n- path: select Vizzu from the local file system' + - '\n(relative or absolute path where the repo folder is the root)' + - '\n(default: vizzu.js)' - ) - .default('vizzu', '/dist/vizzu.js') - - .string('vizzu-ref') - .nargs('vizzu-ref', 1) - .describe( - 'vizzu-ref', - 'Change reference Vizzu url' + - '\n(can be forced to use vizzu.js or vizzu.min.js if its given)' + - '\n\n- "head": specify "head" to select the last stable version of Vizzu from the main branch' + - '\n(default: vizzu.min.js)' + - '\n\n- [sha]: select Vizzu with a short commit number' + - '\n(default: vizzu.min.js)' + - '\n\n- [version]: select Vizzu with a version number' + - '\n(vizzu.min.js only)' + - '\n\n- path: select Vizzu from the local file system' + - '\n(relative or absolute path where the repo folder is the root)' + - '\n(default: vizzu.js)' - ) - .default('vizzu-ref', 'head') - - .boolean('g') - .alias('g', 'gui') - .describe('g', 'Use browser with graphical user interface') - .default('g', false) - - .number('b') - .alias('b', 'browsers') - .describe('b', 'Change number of parallel browser windows') - .default('b', 6) - - .boolean('d') - .alias('d', 'delete') - .describe('d', 'Delete test report folder') - .default('d', false) - - .example([ - ['$0', 'Run all tests'], - ['$0 area_carte_2_polar.mjs', 'Select test case with name'], - ['$0 area_carte_2_polar', 'Select test case with name (without extension)'], - ['$0 area_carte_2_polar rectangle_carte_2_polar', 'Select test cases with name'], - ['$0 basic_animations/coordsystems/area_carte_2_polar.mjs', 'Select test case with path'], - ['$0 ./test_cases/basic_animations/coordsystems/*', 'Select test cases with glob pattern'] - ]) - .example([ - ['$0 --vizzu head', 'Run all tests with the latest stable Vizzu from the main branch'], - ['$0 --vizzu [x.y.z]', 'Run all tests and select Vizzu with a version number'], - [ - '$0 --vizzu [sha]/vizzu.js', - 'Run all tests and select Vizzu with a short commit number' + - '\nand use vizzu.js instead of the default vizzu.min.js' - ] - ]).argv - - if (argv.version) { - VizzuVersion.getVizzuUrlVersion(argv.vizzu).then((vizzuVersion) => { - console.log(vizzuVersion) - }) - } else if (argv.delete) { - TestSuite.del() - } else { - const testSuite = new TestSuite( - argv.configs, - argv._, - argv.nologs, - argv.browsers, - argv.gui, - argv.vizzu, - argv.vizzuRef, - argv.Werror || [], - argv.images, - argv.maxFailedImages, - argv.hashes - ) - // eslint-disable-next-line no-var - var cnsl = testSuite.cnsl() - testSuite.test().catch((err) => { - catchError(err) - }) - } + const argv = yargs + + .usage(usage) + + .help('h') + .alias('h', 'help') + + .version(false) + .boolean('version') + .alias('v', 'version') + .describe('v', 'Show version number of Vizzu') + + .array('c') + .alias('c', 'configs') + .nargs('c', 1) + .describe( + 'c', + "Change the list of configuration files' path of the test cases" + + '\n(relative or absolute path where the repo folder is the root)' + ) + .default('c', [ + '/test/integration/test_cases/test_cases.json', + '/test/integration/tests/config_tests.json', + '/test/integration/tests/style_tests.json', + '/test/integration/tests/features.json', + '/test/integration/tests/fixes.json' + ]) + + .choices('Werror', ['noref', 'sameref']) + .describe( + 'Werror', + 'Select warnings to be treated as errors during the test execution' + + '\n- "noref": Test cases without reference hashes' + + '\n- "sameref": Test cases that produce the same hashes with the reference Vizzu' + ) + .coerce('Werror', (arg) => { + if (arg === true) { + return ['noref', 'sameref'] + } + return arg + }) + + .choices('images', ['ALL', 'FAILED', 'DISABLED']) + .describe( + 'images', + 'Change the saving behavior of images, which are captured from every test steps' + + '\n- "ALL": Create images for every test' + + '\n- "FAILED": Create images for failed/warning tests only' + + '\n- "DISABLED": Do not create images' + ) + .default('images', 'FAILED') + + .describe( + 'maxFailedImages', + 'The maximum number of failed and warning test cases, of which images are taken' + ) + .default('maxFailedImages', null) + + .choices('hashes', ['ALL', 'FAILED', 'DISABLED']) + .describe( + 'hashes', + 'Change the saving behavior of hashes, which are unique identifiers calculated for each test case' + + '\n- "ALL": Write hashes into the report file for every test' + + '\n- "FAILED": Write hashes into the report file for failed/warning tests only' + + '\n- "DISABLED": Do not create report file' + ) + .default('hashes', 'FAILED') + + .boolean('nologs') + .describe('nologs', 'Disable the saving of browser and console logs into a log file') + .default('nologs', false) + + .string('vizzu') + .nargs('vizzu', 1) + .describe( + 'vizzu', + 'Change Vizzu url' + + '\n(can be forced to use vizzu.js or vizzu.min.js if its given)' + + '\n\n- "head": specify "head" to select the last stable version of Vizzu from the main branch' + + '\n(default: vizzu.min.js)' + + '\n\n- [sha]: select Vizzu with a short commit number' + + '\n(default: vizzu.min.js)' + + '\n\n- [version]: select Vizzu with a version number' + + '\n(vizzu.min.js only)' + + '\n\n- path: select Vizzu from the local file system' + + '\n(relative or absolute path where the repo folder is the root)' + + '\n(default: vizzu.js)' + ) + .default('vizzu', '/dist/vizzu.js') + + .string('vizzu-ref') + .nargs('vizzu-ref', 1) + .describe( + 'vizzu-ref', + 'Change reference Vizzu url' + + '\n(can be forced to use vizzu.js or vizzu.min.js if its given)' + + '\n\n- "head": specify "head" to select the last stable version of Vizzu from the main branch' + + '\n(default: vizzu.min.js)' + + '\n\n- [sha]: select Vizzu with a short commit number' + + '\n(default: vizzu.min.js)' + + '\n\n- [version]: select Vizzu with a version number' + + '\n(vizzu.min.js only)' + + '\n\n- path: select Vizzu from the local file system' + + '\n(relative or absolute path where the repo folder is the root)' + + '\n(default: vizzu.js)' + ) + .default('vizzu-ref', 'head') + + .boolean('g') + .alias('g', 'gui') + .describe('g', 'Use browser with graphical user interface') + .default('g', false) + + .number('b') + .alias('b', 'browsers') + .describe('b', 'Change number of parallel browser windows') + .default('b', 6) + + .boolean('d') + .alias('d', 'delete') + .describe('d', 'Delete test report folder') + .default('d', false) + + .example([ + ['$0', 'Run all tests'], + ['$0 area_carte_2_polar.mjs', 'Select test case with name'], + ['$0 area_carte_2_polar', 'Select test case with name (without extension)'], + ['$0 area_carte_2_polar rectangle_carte_2_polar', 'Select test cases with name'], + [ + '$0 basic_animations/coordsystems/area_carte_2_polar.mjs', + 'Select test case with path' + ], + [ + '$0 ./test_cases/basic_animations/coordsystems/*', + 'Select test cases with glob pattern' + ] + ]) + .example([ + ['$0 --vizzu head', 'Run all tests with the latest stable Vizzu from the main branch'], + ['$0 --vizzu [x.y.z]', 'Run all tests and select Vizzu with a version number'], + [ + '$0 --vizzu [sha]/vizzu.js', + 'Run all tests and select Vizzu with a short commit number' + + '\nand use vizzu.js instead of the default vizzu.min.js' + ] + ]).argv + + if (argv.version) { + VizzuVersion.getVizzuUrlVersion(argv.vizzu).then((vizzuVersion) => { + console.log(vizzuVersion) + }) + } else if (argv.delete) { + TestSuite.del() + } else { + const testSuite = new TestSuite( + argv.configs, + argv._, + argv.nologs, + argv.browsers, + argv.gui, + argv.vizzu, + argv.vizzuRef, + argv.Werror || [], + argv.images, + argv.maxFailedImages, + argv.hashes + ) + // eslint-disable-next-line no-var + var cnsl = testSuite.cnsl() + testSuite.test().catch((err) => { + catchError(err) + }) + } } catch (err) { - catchError(err) + catchError(err) } diff --git a/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_horizontal.mjs b/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_horizontal.mjs index 9d135d166..92427f222 100755 --- a/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_horizontal.mjs +++ b/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_horizontal.mjs @@ -1,191 +1,191 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: '1D, 1C - Bubble', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - x: { attach: ['Value 2 (+)'] }, - size: { detach: ['Value 2 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'X C, Y D (Y first) - Dotplot' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Joy factors'] }, - x: { detach: ['Value 2 (+)'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: 'X C, Y D (X first) - Bubble' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - lightness: { attach: ['Value 2 (+)'] }, - label: { attach: ['Country_code'], detach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'X C+D, Y D - Bubble.' - }, - style: { - plot: { - marker: { - label: { fontSize: 8 } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - x: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'X C+D, Y D (Y first) - Dotplot' - }, - style: { - plot: { - marker: { - label: { - position: 'top' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Joy factors'] }, - x: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'X C+D, Y D (X first) - Bubble' - }, - style: { - plot: { - marker: { - label: { - position: null - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - x: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'X C+D, Y D (Y first) - Dotplot' - }, - style: { - plot: { - marker: { - label: { - position: 'top' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Value 1 (+)'] } - }, - title: 'X C+D, Y D+C - Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Joy factors', 'Value 1 (+)'] }, - x: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'X C+D, Y D+C (X first) - Bubble' - }, - style: { - plot: { - marker: { - label: { - position: null - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: { detach: ['Country_code'], attach: ['Joy factors'] }, - size: { detach: ['Country_code'] }, - lightness: { detach: ['Value 2 (+)'] } - }, - title: 'X C+D, Y C - Bubble' - }, - style: { - plot: { - marker: { - label: { - fontSize: '12' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors', 'Value 1 (+)'] }, - x: { attach: ['Value 2 (+)'] }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'X D+C, Y C (Y first) - Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Value 1 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'X C, Y C (Y first) - Mekko' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: '1D, 1C - Bubble', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + x: { attach: ['Value 2 (+)'] }, + size: { detach: ['Value 2 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'X C, Y D (Y first) - Dotplot' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Joy factors'] }, + x: { detach: ['Value 2 (+)'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: 'X C, Y D (X first) - Bubble' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + lightness: { attach: ['Value 2 (+)'] }, + label: { attach: ['Country_code'], detach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'X C+D, Y D - Bubble.' + }, + style: { + plot: { + marker: { + label: { fontSize: 8 } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + x: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'X C+D, Y D (Y first) - Dotplot' + }, + style: { + plot: { + marker: { + label: { + position: 'top' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Joy factors'] }, + x: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'X C+D, Y D (X first) - Bubble' + }, + style: { + plot: { + marker: { + label: { + position: null + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + x: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'X C+D, Y D (Y first) - Dotplot' + }, + style: { + plot: { + marker: { + label: { + position: 'top' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Value 1 (+)'] } + }, + title: 'X C+D, Y D+C - Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Joy factors', 'Value 1 (+)'] }, + x: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'X C+D, Y D+C (X first) - Bubble' + }, + style: { + plot: { + marker: { + label: { + position: null + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: { detach: ['Country_code'], attach: ['Joy factors'] }, + size: { detach: ['Country_code'] }, + lightness: { detach: ['Value 2 (+)'] } + }, + title: 'X C+D, Y C - Bubble' + }, + style: { + plot: { + marker: { + label: { + fontSize: '12' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors', 'Value 1 (+)'] }, + x: { attach: ['Value 2 (+)'] }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'X D+C, Y C (Y first) - Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Value 1 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'X C, Y C (Y first) - Mekko' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_vertical.mjs b/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_vertical.mjs index e9b009991..011e4514b 100755 --- a/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_vertical.mjs +++ b/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_vertical.mjs @@ -1,146 +1,146 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: '1D, 1C - Bubble', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors'] }, - y: { attach: ['Value 2 (+)'] }, - size: { detach: ['Value 2 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'Y C, X D (X first) - Dotplot' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Joy factors'] }, - y: { detach: ['Value 2 (+)'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: 'Y C, X D (Y first) - Bubble' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - lightness: { attach: ['Value 2 (+)'] }, - label: { attach: ['Country_code'], detach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'Y C+D, X D - Bubble.' - }, - style: { - plot: { - marker: { - label: { fontSize: 8 } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'Y C+D, X D (X first) - Dotplot' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Joy factors'] }, - y: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'Y C+D, X D (Y first) - Bubble' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'Y C+D, X D (X first) - Dotplot' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Value 1 (+)'] } - }, - title: 'Y C+D, X D+C - Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Joy factors', 'Value 1 (+)'] }, - y: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'Y C+D, X D+C (Y first) - Bubble' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: { detach: ['Country_code'], attach: ['Joy factors'] }, - size: { detach: ['Country_code'] }, - lightness: { detach: ['Value 2 (+)'] } - }, - title: 'Y C, X D+C - Bubble' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors', 'Value 1 (+)'] }, - y: { attach: ['Value 2 (+)'] }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'Y C, X D+C (X first) - Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Value 1 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'Y C, X D (X first) - Mekko' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: '1D, 1C - Bubble', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors'] }, + y: { attach: ['Value 2 (+)'] }, + size: { detach: ['Value 2 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'Y C, X D (X first) - Dotplot' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Joy factors'] }, + y: { detach: ['Value 2 (+)'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: 'Y C, X D (Y first) - Bubble' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + lightness: { attach: ['Value 2 (+)'] }, + label: { attach: ['Country_code'], detach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'Y C+D, X D - Bubble.' + }, + style: { + plot: { + marker: { + label: { fontSize: 8 } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'Y C+D, X D (X first) - Dotplot' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Joy factors'] }, + y: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'Y C+D, X D (Y first) - Bubble' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'Y C+D, X D (X first) - Dotplot' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Value 1 (+)'] } + }, + title: 'Y C+D, X D+C - Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Joy factors', 'Value 1 (+)'] }, + y: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'Y C+D, X D+C (Y first) - Bubble' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: { detach: ['Country_code'], attach: ['Joy factors'] }, + size: { detach: ['Country_code'] }, + lightness: { detach: ['Value 2 (+)'] } + }, + title: 'Y C, X D+C - Bubble' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors', 'Value 1 (+)'] }, + y: { attach: ['Value 2 (+)'] }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'Y C, X D+C (X first) - Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Value 1 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'Y C, X D (X first) - Mekko' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_bar.mjs b/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_bar.mjs index ecef302e0..3da5fc1c1 100755 --- a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_bar.mjs +++ b/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_bar.mjs @@ -1,169 +1,169 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: '1D, 1C - Treemap' - }, - style: { - plot: { - marker: { - label: { fontSize: 14 } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - x: { attach: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, - size: { detach: ['Value 2 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'X C, Y D (Y first) - Bar' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Joy factors'] }, - x: { detach: ['Value 2 (+)'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: 'X C, Y D (X first) - Treemap' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - lightness: { attach: ['Value 2 (+)'] }, - label: { attach: ['Country_code'], detach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'X C+D, Y D - Treemap.' - }, - style: { - plot: { - marker: { - label: { fontSize: 8 } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - x: { - attach: ['Value 2 (+)', 'Country_code'], - range: { min: '0%', max: '110%' } - }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'X C+D, Y D (Y first) - Bar' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Joy factors'] }, - x: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'X C+D, Y D (X first) - Treemap' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - x: { - attach: ['Value 2 (+)', 'Country_code'], - range: { min: '0%', max: '110%' } - }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'X C+D, Y D (Y first) - Bar' - } - }), - (chart) => - chart.animate({ - config: { - orientation: 'vertical', - channels: { - y: { attach: ['Value 1 (+)'] } - }, - title: 'X C+D, Y D+C - Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Joy factors', 'Value 1 (+)'] }, - x: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'X C+D, Y D+C (X first) - Treemap' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: { detach: ['Country_code'], attach: ['Joy factors'] }, - size: { detach: ['Country_code'] }, - lightness: { detach: ['Value 2 (+)'] } - }, - title: 'X C+D, Y C - Treemap' - }, - style: { - plot: { - marker: { - label: { - fontSize: 14, - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors', 'Value 1 (+)'] }, - x: { attach: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'X D+C, Y C (Y first) - Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Value 1 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'X C, Y C (Y first) - Bar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: '1D, 1C - Treemap' + }, + style: { + plot: { + marker: { + label: { fontSize: 14 } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + x: { attach: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, + size: { detach: ['Value 2 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'X C, Y D (Y first) - Bar' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Joy factors'] }, + x: { detach: ['Value 2 (+)'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: 'X C, Y D (X first) - Treemap' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + lightness: { attach: ['Value 2 (+)'] }, + label: { attach: ['Country_code'], detach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'X C+D, Y D - Treemap.' + }, + style: { + plot: { + marker: { + label: { fontSize: 8 } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + x: { + attach: ['Value 2 (+)', 'Country_code'], + range: { min: '0%', max: '110%' } + }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'X C+D, Y D (Y first) - Bar' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Joy factors'] }, + x: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'X C+D, Y D (X first) - Treemap' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + x: { + attach: ['Value 2 (+)', 'Country_code'], + range: { min: '0%', max: '110%' } + }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'X C+D, Y D (Y first) - Bar' + } + }), + (chart) => + chart.animate({ + config: { + orientation: 'vertical', + channels: { + y: { attach: ['Value 1 (+)'] } + }, + title: 'X C+D, Y D+C - Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Joy factors', 'Value 1 (+)'] }, + x: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'X C+D, Y D+C (X first) - Treemap' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: { detach: ['Country_code'], attach: ['Joy factors'] }, + size: { detach: ['Country_code'] }, + lightness: { detach: ['Value 2 (+)'] } + }, + title: 'X C+D, Y C - Treemap' + }, + style: { + plot: { + marker: { + label: { + fontSize: 14, + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors', 'Value 1 (+)'] }, + x: { attach: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'X D+C, Y C (Y first) - Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Value 1 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'X C, Y C (Y first) - Bar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_column.mjs b/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_column.mjs index f05a3c468..8aebbba4f 100755 --- a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_column.mjs +++ b/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_column.mjs @@ -1,162 +1,162 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: '1D, 1C - Treemap' - }, - style: { - plot: { - marker: { - label: { fontSize: 14 } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors'] }, - y: { attach: ['Value 2 (+)'] }, - size: { detach: ['Value 2 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'Y C, X D (X first) - Column' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Joy factors'] }, - y: { detach: ['Value 2 (+)'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: 'Y C, X D (Y first) - Treemap' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - lightness: { attach: ['Value 2 (+)'] }, - label: { attach: ['Country_code'], detach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'Y C+D, X D - Treemap.' - }, - style: { - plot: { - marker: { - label: { fontSize: 8 } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'Y C+D, X D (X first) - Column' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Joy factors'] }, - y: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)'] } - }, - title: 'Y C+D, X D (Y first) - Treemap' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'Y C+D, X D (X first) - Column' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Value 1 (+)'] } - }, - title: 'Y C+D, X D+C - Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Joy factors', 'Value 1 (+)'] }, - y: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'Y C+D, X D+C (Y first) - Treemap' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: { detach: ['Country_code'], attach: ['Joy factors'] }, - size: { detach: ['Country_code'] }, - lightness: { detach: ['Value 2 (+)'] } - }, - title: 'Y C, X D+C - Treemap' - }, - style: { - plot: { - marker: { - label: { - fontSize: '12', - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors', 'Value 1 (+)'] }, - y: { attach: ['Value 2 (+)'] }, - size: { detach: ['Value 2 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'Y C, X D+C (X first) - Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Value 1 (+)'] } - }, - title: 'Y C, X D (X first) - Mekko' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: '1D, 1C - Treemap' + }, + style: { + plot: { + marker: { + label: { fontSize: 14 } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors'] }, + y: { attach: ['Value 2 (+)'] }, + size: { detach: ['Value 2 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'Y C, X D (X first) - Column' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Joy factors'] }, + y: { detach: ['Value 2 (+)'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: 'Y C, X D (Y first) - Treemap' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + lightness: { attach: ['Value 2 (+)'] }, + label: { attach: ['Country_code'], detach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'Y C+D, X D - Treemap.' + }, + style: { + plot: { + marker: { + label: { fontSize: 8 } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'Y C+D, X D (X first) - Column' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Joy factors'] }, + y: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)'] } + }, + title: 'Y C+D, X D (Y first) - Treemap' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'Y C+D, X D (X first) - Column' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Value 1 (+)'] } + }, + title: 'Y C+D, X D+C - Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Joy factors', 'Value 1 (+)'] }, + y: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'Y C+D, X D+C (Y first) - Treemap' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: { detach: ['Country_code'], attach: ['Joy factors'] }, + size: { detach: ['Country_code'] }, + lightness: { detach: ['Value 2 (+)'] } + }, + title: 'Y C, X D+C - Treemap' + }, + style: { + plot: { + marker: { + label: { + fontSize: '12', + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors', 'Value 1 (+)'] }, + y: { attach: ['Value 2 (+)'] }, + size: { detach: ['Value 2 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'Y C, X D+C (X first) - Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Value 1 (+)'] } + }, + title: 'Y C, X D (X first) - Mekko' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_bar.mjs b/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_bar.mjs index bff3f0c2a..ad4c48ea4 100755 --- a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_bar.mjs +++ b/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_bar.mjs @@ -1,176 +1,176 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: '1D, 1C - Treemap' - }, - style: { - plot: { - marker: { - label: { fontSize: 14 } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - x: { attach: ['Value 2 (+)'], range: { min: '0%', max: '133%' } }, - size: { detach: ['Value 2 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'X C, Y D (Y first) - Radial', - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Joy factors'] }, - x: { detach: ['Value 2 (+)'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: 'X C, Y D (X first) - Treemap', - coordSystem: 'cartesian' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - lightness: { attach: ['Value 2 (+)'] }, - label: { attach: ['Country_code'], detach: 'Joy factors' }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'X C+D, Y D - Treemap.' - }, - style: { - plot: { - marker: { - label: { fontSize: 8 } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - x: { - attach: ['Value 2 (+)', 'Country_code'], - range: { min: '0%', max: '133%' } - }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'X C+D, Y D (Y first) - Radial', - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Joy factors'] }, - x: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'X C+D, Y D (X first) - Treemap', - coordSystem: 'cartesian' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - x: { - attach: ['Value 2 (+)', 'Country_code'], - range: { min: '0%', max: '133%' } - }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'X C+D, Y D (Y first) - Radial', - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - orientation: 'vertical', - channels: { - y: { attach: ['Value 1 (+)'] } - }, - title: 'X C+D, Y D+C - Radial-Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Joy factors', 'Value 1 (+)'] }, - x: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'X C+D, Y D+C (X first) - Treemap', - coordSystem: 'cartesian' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: { detach: ['Country_code'], attach: ['Joy factors'] }, - size: { detach: ['Country_code'] }, - lightness: { detach: ['Value 2 (+)'] } - }, - title: 'X C+D, Y C - Treemap' - }, - style: { - plot: { - marker: { - label: { - fontSize: 14, - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors', 'Value 1 (+)'] }, - x: { attach: ['Value 2 (+)'], range: { min: '0%', max: '133%' } }, - size: { detach: ['Value 2 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'X D+C, Y C (Y first) - Radial-Mekko', - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Value 1 (+)'] } - }, - title: 'X C, Y C (Y first) - Radial' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: '1D, 1C - Treemap' + }, + style: { + plot: { + marker: { + label: { fontSize: 14 } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + x: { attach: ['Value 2 (+)'], range: { min: '0%', max: '133%' } }, + size: { detach: ['Value 2 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'X C, Y D (Y first) - Radial', + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Joy factors'] }, + x: { detach: ['Value 2 (+)'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: 'X C, Y D (X first) - Treemap', + coordSystem: 'cartesian' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + lightness: { attach: ['Value 2 (+)'] }, + label: { attach: ['Country_code'], detach: 'Joy factors' }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'X C+D, Y D - Treemap.' + }, + style: { + plot: { + marker: { + label: { fontSize: 8 } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + x: { + attach: ['Value 2 (+)', 'Country_code'], + range: { min: '0%', max: '133%' } + }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'X C+D, Y D (Y first) - Radial', + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Joy factors'] }, + x: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'X C+D, Y D (X first) - Treemap', + coordSystem: 'cartesian' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + x: { + attach: ['Value 2 (+)', 'Country_code'], + range: { min: '0%', max: '133%' } + }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'X C+D, Y D (Y first) - Radial', + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + orientation: 'vertical', + channels: { + y: { attach: ['Value 1 (+)'] } + }, + title: 'X C+D, Y D+C - Radial-Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Joy factors', 'Value 1 (+)'] }, + x: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'X C+D, Y D+C (X first) - Treemap', + coordSystem: 'cartesian' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: { detach: ['Country_code'], attach: ['Joy factors'] }, + size: { detach: ['Country_code'] }, + lightness: { detach: ['Value 2 (+)'] } + }, + title: 'X C+D, Y C - Treemap' + }, + style: { + plot: { + marker: { + label: { + fontSize: 14, + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors', 'Value 1 (+)'] }, + x: { attach: ['Value 2 (+)'], range: { min: '0%', max: '133%' } }, + size: { detach: ['Value 2 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'X D+C, Y C (Y first) - Radial-Mekko', + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Value 1 (+)'] } + }, + title: 'X C, Y C (Y first) - Radial' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_column.mjs b/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_column.mjs index b5b289c5b..e8d2902b4 100755 --- a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_column.mjs +++ b/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_column.mjs @@ -1,218 +1,218 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: '1D, 1C - Treemap', - legend: null - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { attach: ['Joy factors', 'index'] }, - y: { attach: ['Value 2 (+)'] }, - size: { detach: ['Value 2 (+)'] } - // label: { detach: ['Joy factors'] } - }, - title: 'Y C, X D (X first) - Coxcomb', - coordSystem: 'polar' - } - }, - { - geometry: { delay: 0, duration: 1 }, - y: { - delay: 0.7, - duration: 1 - }, - x: { - delay: 0, - duration: 0.7 - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { detach: ['Joy factors', 'index'] }, - y: { detach: ['Value 2 (+)'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Joy factors'] } - }, - title: 'Y C, X D (Y first) - Treemap', - coordSystem: 'cartesian' - } - }, - { - geometry: { delay: 0, duration: 1 }, - x: { - delay: 0.7, - duration: 1 - }, - y: { - delay: 0, - duration: 0.7 - }, - coordSystem: { - delay: 0, - duration: 2 - } - } - ), - (chart) => - chart.animate({ - config: { - channels: { - lightness: { attach: ['Value 2 (+)'] }, - label: { attach: ['Country_code'], detach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'Y C+D, X D - Treemap.' - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { attach: ['Joy factors', 'index'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] }, - label: null - }, - title: 'Y C+D, X D (X first) - Coxcomb', - coordSystem: 'polar' - } - }, - { - geometry: { delay: 0, duration: 1 }, - y: { - delay: 0.7, - duration: 1 - }, - x: { - delay: 0, - duration: 0.7 - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { detach: ['Joy factors', 'index'] }, - y: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] }, - label: { attach: ['Country_code'] } - }, - title: 'Y C+D, X D (Y first) - Treemap', - coordSystem: 'cartesian' - } - }, - { - geometry: { delay: 0, duration: 1 }, - x: { - delay: 0.7, - duration: 1 - }, - y: { - delay: 0, - duration: 0.7 - }, - coordSystem: { - delay: 0, - duration: 2 - } - } - ), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] } - }, - title: 'Y C+D, X D (X first) - Coxcomb', - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Value 1 (+)'] } - }, - title: 'Y C+D, X D+C - Mekko' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Joy factors', 'Value 1 (+)'] }, - y: { detach: ['Value 2 (+)', 'Country_code'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - }, - title: 'Y C+D, X D+C (Y first) - Treemap', - coordSystem: 'cartesian' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: { detach: ['Country_code'], attach: ['Joy factors'] }, - size: { detach: ['Country_code'] }, - lightness: { detach: ['Value 2 (+)'] } - }, - title: 'Y C, X D+C - Treemap' - }, - style: { - plot: { - marker: { - label: { - fontSize: '12', - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors', 'Value 1 (+)'] }, - y: { attach: ['Value 2 (+)'] }, - size: { detach: ['Value 2 (+)'] }, - label: { detach: ['Joy factors'] } - }, - title: 'Y C, X D+C (X first) - Coxcomb-Mekko', - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['index'] } - }, - title: 'Y C, X D (X first) - Coxcomb' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: '1D, 1C - Treemap', + legend: null + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { attach: ['Joy factors', 'index'] }, + y: { attach: ['Value 2 (+)'] }, + size: { detach: ['Value 2 (+)'] } + // label: { detach: ['Joy factors'] } + }, + title: 'Y C, X D (X first) - Coxcomb', + coordSystem: 'polar' + } + }, + { + geometry: { delay: 0, duration: 1 }, + y: { + delay: 0.7, + duration: 1 + }, + x: { + delay: 0, + duration: 0.7 + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { detach: ['Joy factors', 'index'] }, + y: { detach: ['Value 2 (+)'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Joy factors'] } + }, + title: 'Y C, X D (Y first) - Treemap', + coordSystem: 'cartesian' + } + }, + { + geometry: { delay: 0, duration: 1 }, + x: { + delay: 0.7, + duration: 1 + }, + y: { + delay: 0, + duration: 0.7 + }, + coordSystem: { + delay: 0, + duration: 2 + } + } + ), + (chart) => + chart.animate({ + config: { + channels: { + lightness: { attach: ['Value 2 (+)'] }, + label: { attach: ['Country_code'], detach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'Y C+D, X D - Treemap.' + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { attach: ['Joy factors', 'index'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] }, + label: null + }, + title: 'Y C+D, X D (X first) - Coxcomb', + coordSystem: 'polar' + } + }, + { + geometry: { delay: 0, duration: 1 }, + y: { + delay: 0.7, + duration: 1 + }, + x: { + delay: 0, + duration: 0.7 + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { detach: ['Joy factors', 'index'] }, + y: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] }, + label: { attach: ['Country_code'] } + }, + title: 'Y C+D, X D (Y first) - Treemap', + coordSystem: 'cartesian' + } + }, + { + geometry: { delay: 0, duration: 1 }, + x: { + delay: 0.7, + duration: 1 + }, + y: { + delay: 0, + duration: 0.7 + }, + coordSystem: { + delay: 0, + duration: 2 + } + } + ), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] } + }, + title: 'Y C+D, X D (X first) - Coxcomb', + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Value 1 (+)'] } + }, + title: 'Y C+D, X D+C - Mekko' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Joy factors', 'Value 1 (+)'] }, + y: { detach: ['Value 2 (+)', 'Country_code'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + }, + title: 'Y C+D, X D+C (Y first) - Treemap', + coordSystem: 'cartesian' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: { detach: ['Country_code'], attach: ['Joy factors'] }, + size: { detach: ['Country_code'] }, + lightness: { detach: ['Value 2 (+)'] } + }, + title: 'Y C, X D+C - Treemap' + }, + style: { + plot: { + marker: { + label: { + fontSize: '12', + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors', 'Value 1 (+)'] }, + y: { attach: ['Value 2 (+)'] }, + size: { detach: ['Value 2 (+)'] }, + label: { detach: ['Joy factors'] } + }, + title: 'Y C, X D+C (X first) - Coxcomb-Mekko', + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['index'] } + }, + title: 'Y C, X D (X first) - Coxcomb' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/coordsystems/area_carte_2_polar.mjs b/test/integration/test_cases/basic_animations/coordsystems/area_carte_2_polar.mjs index b37bab28c..3328acaae 100755 --- a/test/integration/test_cases/basic_animations/coordsystems/area_carte_2_polar.mjs +++ b/test/integration/test_cases/basic_animations/coordsystems/area_carte_2_polar.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Year'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - color: { attach: ['Country_code'] } - }, - title: 'Area - Cartesian 2 Polar', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - coordSystem: 'cartesian' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Year'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + color: { attach: ['Country_code'] } + }, + title: 'Area - Cartesian 2 Polar', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + coordSystem: 'cartesian' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/coordsystems/circle_without_2_carte.mjs b/test/integration/test_cases/basic_animations/coordsystems/circle_without_2_carte.mjs index b45eabbed..27a483974 100755 --- a/test/integration/test_cases/basic_animations/coordsystems/circle_without_2_carte.mjs +++ b/test/integration/test_cases/basic_animations/coordsystems/circle_without_2_carte.mjs @@ -1,39 +1,39 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)'] }, - label: { attach: ['Country_code'] } - }, - title: 'Without 2 Cartesian - Bubble 2 Scatter.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Value 2 (+)'] }, - y: { attach: ['Value 5 (+/-)'] }, - size: { attach: ['Value 1 (+)'] } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Value 2 (+)'] }, - y: { detach: ['Value 5 (+/-)'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)'] }, + label: { attach: ['Country_code'] } + }, + title: 'Without 2 Cartesian - Bubble 2 Scatter.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Value 2 (+)'] }, + y: { attach: ['Value 5 (+/-)'] }, + size: { attach: ['Value 1 (+)'] } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Value 2 (+)'] }, + y: { detach: ['Value 5 (+/-)'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/coordsystems/rectangle_carte_2_polar.mjs b/test/integration/test_cases/basic_animations/coordsystems/rectangle_carte_2_polar.mjs index cefae2bb2..29a566926 100755 --- a/test/integration/test_cases/basic_animations/coordsystems/rectangle_carte_2_polar.mjs +++ b/test/integration/test_cases/basic_animations/coordsystems/rectangle_carte_2_polar.mjs @@ -1,37 +1,37 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Year'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - color: { attach: ['Country_code'] } - }, - title: 'Rectangle - Cartesian 2 Polar' - }, - style: { - plot: { - marker: { - borderOpacity: 1 - } - } - } - }), - (chart) => - chart.animate({ - config: { - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - coordSystem: 'cartesian' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Year'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + color: { attach: ['Country_code'] } + }, + title: 'Rectangle - Cartesian 2 Polar' + }, + style: { + plot: { + marker: { + borderOpacity: 1 + } + } + } + }), + (chart) => + chart.animate({ + config: { + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + coordSystem: 'cartesian' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_carte.mjs b/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_carte.mjs index 9537121f3..406c7bb81 100755 --- a/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_carte.mjs +++ b/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_carte.mjs @@ -1,63 +1,63 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] }, - label: { attach: ['Country_code'] } - }, - title: 'Without 2 Cartesian - Treemap 2 Column.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] }, - lightness: { attach: ['Country_code'] } - } - }, - style: { - plot: { - marker: { - label: { fontSize: 6 } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['index'] }, - label: { detach: ['Country_code'] } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['index', 'Joy factors'] }, - y: { detach: ['Value 2 (+)', 'Country_code'] }, - label: { attach: ['Country_code'] }, - size: { attach: ['Value 2 (+)'] } - } - }, - style: { - plot: { - marker: { - label: { fontSize: null } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] }, + label: { attach: ['Country_code'] } + }, + title: 'Without 2 Cartesian - Treemap 2 Column.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] }, + lightness: { attach: ['Country_code'] } + } + }, + style: { + plot: { + marker: { + label: { fontSize: 6 } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['index'] }, + label: { detach: ['Country_code'] } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['index', 'Joy factors'] }, + y: { detach: ['Value 2 (+)', 'Country_code'] }, + label: { attach: ['Country_code'] }, + size: { attach: ['Value 2 (+)'] } + } + }, + style: { + plot: { + marker: { + label: { fontSize: null } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_polar.mjs b/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_polar.mjs index d24bf19ac..d48716a1a 100755 --- a/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_polar.mjs +++ b/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_polar.mjs @@ -1,50 +1,50 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Value 2 (+)', 'Country_code'] }, - label: { attach: ['Country_code'] } - }, - title: 'Without 2 polar - Treemap 2 Coxcomb.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Joy factors', 'index'] }, - y: { attach: ['Value 2 (+)', 'Country_code'] }, - size: { detach: ['Value 2 (+)'] }, - label: { detach: ['Country_code'] } - }, - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - borderOpacity: 1 - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['index', 'Joy factors'] }, - y: { detach: ['Value 2 (+)', 'Country_code'] }, - label: { attach: ['Country_code'] }, - size: { attach: ['Value 2 (+)'] }, - lightness: { attach: ['Country_code'] } - }, - coordSystem: 'cartesian' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Value 2 (+)', 'Country_code'] }, + label: { attach: ['Country_code'] } + }, + title: 'Without 2 polar - Treemap 2 Coxcomb.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Joy factors', 'index'] }, + y: { attach: ['Value 2 (+)', 'Country_code'] }, + size: { detach: ['Value 2 (+)'] }, + label: { detach: ['Country_code'] } + }, + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + borderOpacity: 1 + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['index', 'Joy factors'] }, + y: { detach: ['Value 2 (+)', 'Country_code'] }, + label: { attach: ['Country_code'] }, + size: { attach: ['Value 2 (+)'] }, + lightness: { attach: ['Country_code'] } + }, + coordSystem: 'cartesian' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/labels/axis/circle_negative_2dis_3con.mjs b/test/integration/test_cases/basic_animations/labels/axis/circle_negative_2dis_3con.mjs index cf7eff97d..a6dee2a1b 100755 --- a/test/integration/test_cases/basic_animations/labels/axis/circle_negative_2dis_3con.mjs +++ b/test/integration/test_cases/basic_animations/labels/axis/circle_negative_2dis_3con.mjs @@ -1,54 +1,54 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Estonia' && - record.Country !== 'Belgium' && - record.Country !== 'Sweden' && - record.Country !== 'Poland' && - record.Country !== 'Malta' && - record.Country !== 'Romania' && - record.Country !== 'Greece' && - record.Country !== 'Slovakia' && - record.Country !== 'Ireland' && - record.Country !== 'Lithuania' && - record.Country !== 'Croatia' && - record.Country !== 'Slovenia' && - record.Country !== 'Portugal' && - record.Country !== 'Finland' && - record.Country !== 'United Kingdom' + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Estonia' && + record.Country !== 'Belgium' && + record.Country !== 'Sweden' && + record.Country !== 'Poland' && + record.Country !== 'Malta' && + record.Country !== 'Romania' && + record.Country !== 'Greece' && + record.Country !== 'Slovakia' && + record.Country !== 'Ireland' && + record.Country !== 'Lithuania' && + record.Country !== 'Croatia' && + record.Country !== 'Slovenia' && + record.Country !== 'Portugal' && + record.Country !== 'Finland' && + record.Country !== 'United Kingdom' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '150%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '150%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: '1', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - title: '2' - } - }), - (chart) => - chart.animate({ - config: { - title: '3', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '150%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '150%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: '1', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + title: '2' + } + }), + (chart) => + chart.animate({ + config: { + title: '3', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/labels/marker/area_2dis_3con.mjs b/test/integration/test_cases/basic_animations/labels/marker/area_2dis_3con.mjs index a858665a3..b5477fa7e 100755 --- a/test/integration/test_cases/basic_animations/labels/marker/area_2dis_3con.mjs +++ b/test/integration/test_cases/basic_animations/labels/marker/area_2dis_3con.mjs @@ -1,350 +1,350 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Estonia' && - record.Country !== 'Belgium' && - record.Country !== 'Sweden' && - record.Country !== 'Poland' && - record.Country !== 'Malta' && - record.Country !== 'Romania' && - record.Country !== 'Greece' && - record.Country !== 'Slovakia' && - record.Country !== 'Ireland' && - record.Country !== 'Lithuania' && - record.Country !== 'Croatia' && - record.Country !== 'Slovenia' && - record.Country !== 'Portugal' && - record.Country !== 'Finland' && - record.Country !== 'United Kingdom' + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Estonia' && + record.Country !== 'Belgium' && + record.Country !== 'Sweden' && + record.Country !== 'Poland' && + record.Country !== 'Malta' && + record.Country !== 'Romania' && + record.Country !== 'Greece' && + record.Country !== 'Slovakia' && + record.Country !== 'Ireland' && + record.Country !== 'Lithuania' && + record.Country !== 'Croatia' && + record.Country !== 'Slovenia' && + record.Country !== 'Portugal' && + record.Country !== 'Finland' && + record.Country !== 'United Kingdom' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - attach: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - x: { attach: ['Year'] }, - color: { attach: ['Country'] }, - label: { attach: ['Value 2 (+)'] } - }, - title: 'Area Marker Label Positions - Center', - geometry: 'area' - }, - style: { - plot: { - marker: { - label: { - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Top' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Center/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Center/Normal' - }, - style: { - plot: { - marker: { - label: { - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Center/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Value 1 (+)'] }, - label: { attach: ['Value 1 (+)'] } - }, - title: 'Change Continuous' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Value 2 (+)'] }, - label: { attach: ['Value 2 (+)'] } - }, - title: 'Polar Coordinate', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Top/Normal' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Top/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Top/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Top/Angle' - }, - style: { - plot: { - marker: { - label: { - angle: 0.5 * 3.14 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area Marker Label Positions - Top/Angle' - }, - style: { - plot: { - marker: { - label: { - angle: null - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + attach: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + x: { attach: ['Year'] }, + color: { attach: ['Country'] }, + label: { attach: ['Value 2 (+)'] } + }, + title: 'Area Marker Label Positions - Center', + geometry: 'area' + }, + style: { + plot: { + marker: { + label: { + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Top' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Center/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Center/Normal' + }, + style: { + plot: { + marker: { + label: { + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Center/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Value 1 (+)'] }, + label: { attach: ['Value 1 (+)'] } + }, + title: 'Change Continuous' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Value 2 (+)'] }, + label: { attach: ['Value 2 (+)'] } + }, + title: 'Polar Coordinate', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Top/Normal' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Top/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Top/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Top/Angle' + }, + style: { + plot: { + marker: { + label: { + angle: 0.5 * 3.14 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area Marker Label Positions - Top/Angle' + }, + style: { + plot: { + marker: { + label: { + angle: null + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/labels/marker/circle_negative_2dis_3con.mjs b/test/integration/test_cases/basic_animations/labels/marker/circle_negative_2dis_3con.mjs index 6487249be..1ce64f762 100755 --- a/test/integration/test_cases/basic_animations/labels/marker/circle_negative_2dis_3con.mjs +++ b/test/integration/test_cases/basic_animations/labels/marker/circle_negative_2dis_3con.mjs @@ -1,454 +1,454 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Estonia' && - record.Country !== 'Belgium' && - record.Country !== 'Sweden' && - record.Country !== 'Poland' && - record.Country !== 'Malta' && - record.Country !== 'Romania' && - record.Country !== 'Greece' && - record.Country !== 'Slovakia' && - record.Country !== 'Ireland' && - record.Country !== 'Lithuania' && - record.Country !== 'Croatia' && - record.Country !== 'Slovenia' && - record.Country !== 'Portugal' && - record.Country !== 'Finland' && - record.Country !== 'United Kingdom' + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Estonia' && + record.Country !== 'Belgium' && + record.Country !== 'Sweden' && + record.Country !== 'Poland' && + record.Country !== 'Malta' && + record.Country !== 'Romania' && + record.Country !== 'Greece' && + record.Country !== 'Slovakia' && + record.Country !== 'Ireland' && + record.Country !== 'Lithuania' && + record.Country !== 'Croatia' && + record.Country !== 'Slovenia' && + record.Country !== 'Portugal' && + record.Country !== 'Finland' && + record.Country !== 'United Kingdom' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Circle Marker Label Positions - Center', - geometry: 'circle' - }, - style: { - plot: { - marker: { - label: { - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Top' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Normal' - }, - style: { - plot: { - marker: { - label: { - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Top', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Normal' - }, - style: { - plot: { - marker: { - label: { - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Angle' - }, - style: { - plot: { - marker: { - label: { - angle: 0.5 * 3.14 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { detach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 1 (+)'] }, - label: { attach: ['Value 1 (+)'] } - }, - title: 'Without Coordinate', - coordSystem: 'cartesian' - }, - style: { - plot: { - marker: { - label: { - orientation: 'horizontal', - angle: null - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Top' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Normal' - }, - style: { - plot: { - marker: { - label: { - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle Marker Label Positions - Center/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Circle Marker Label Positions - Center', + geometry: 'circle' + }, + style: { + plot: { + marker: { + label: { + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Top' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Normal' + }, + style: { + plot: { + marker: { + label: { + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Top', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Normal' + }, + style: { + plot: { + marker: { + label: { + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Angle' + }, + style: { + plot: { + marker: { + label: { + angle: 0.5 * 3.14 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { detach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 1 (+)'] }, + label: { attach: ['Value 1 (+)'] } + }, + title: 'Without Coordinate', + coordSystem: 'cartesian' + }, + style: { + plot: { + marker: { + label: { + orientation: 'horizontal', + angle: null + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Top' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Normal' + }, + style: { + plot: { + marker: { + label: { + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle Marker Label Positions - Center/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/labels/marker/line_2dis_3con.mjs b/test/integration/test_cases/basic_animations/labels/marker/line_2dis_3con.mjs index 28ec173a4..07d3d1b94 100755 --- a/test/integration/test_cases/basic_animations/labels/marker/line_2dis_3con.mjs +++ b/test/integration/test_cases/basic_animations/labels/marker/line_2dis_3con.mjs @@ -1,347 +1,347 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Estonia' && - record.Country !== 'Belgium' && - record.Country !== 'Sweden' && - record.Country !== 'Poland' && - record.Country !== 'Malta' && - record.Country !== 'Romania' && - record.Country !== 'Greece' && - record.Country !== 'Slovakia' && - record.Country !== 'Ireland' && - record.Country !== 'Lithuania' && - record.Country !== 'Croatia' && - record.Country !== 'Slovenia' && - record.Country !== 'Portugal' && - record.Country !== 'Finland' && - record.Country !== 'United Kingdom' + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Estonia' && + record.Country !== 'Belgium' && + record.Country !== 'Sweden' && + record.Country !== 'Poland' && + record.Country !== 'Malta' && + record.Country !== 'Romania' && + record.Country !== 'Greece' && + record.Country !== 'Slovakia' && + record.Country !== 'Ireland' && + record.Country !== 'Lithuania' && + record.Country !== 'Croatia' && + record.Country !== 'Slovenia' && + record.Country !== 'Portugal' && + record.Country !== 'Finland' && + record.Country !== 'United Kingdom' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Year'] }, - color: { attach: ['Country'] }, - label: { attach: ['Value 2 (+)'] } - }, - title: 'Line Marker Label Positions - Center', - geometry: 'line' - }, - style: { - plot: { - marker: { - label: { - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Top' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Center/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Center/Normal' - }, - style: { - plot: { - marker: { - label: { - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Center/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Value 1 (+)'] }, - label: { attach: ['Value 1 (+)'] } - }, - title: 'Change Continuous' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Value 2 (+)'] }, - label: { attach: ['Value 2 (+)'] } - }, - title: 'Polar Coordinate', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Top/Normal' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Top/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Top/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Top/Angle' - }, - style: { - plot: { - marker: { - label: { - angle: 0.5 * 3.14 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line Marker Label Positions - Top/Angle' - }, - style: { - plot: { - marker: { - label: { - angle: null - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Year'] }, + color: { attach: ['Country'] }, + label: { attach: ['Value 2 (+)'] } + }, + title: 'Line Marker Label Positions - Center', + geometry: 'line' + }, + style: { + plot: { + marker: { + label: { + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Top' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Center/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Center/Normal' + }, + style: { + plot: { + marker: { + label: { + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Center/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Value 1 (+)'] }, + label: { attach: ['Value 1 (+)'] } + }, + title: 'Change Continuous' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Value 2 (+)'] }, + label: { attach: ['Value 2 (+)'] } + }, + title: 'Polar Coordinate', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Top/Normal' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Top/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Top/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Top/Angle' + }, + style: { + plot: { + marker: { + label: { + angle: 0.5 * 3.14 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line Marker Label Positions - Top/Angle' + }, + style: { + plot: { + marker: { + label: { + angle: null + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs b/test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs index 6f610a2d6..cc903a711 100755 --- a/test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs +++ b/test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs @@ -1,176 +1,176 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Estonia' && - record.Country !== 'Belgium' && - record.Country !== 'Sweden' && - record.Country !== 'Poland' && - record.Country !== 'Malta' && - record.Country !== 'Romania' && - record.Country !== 'Greece' && - record.Country !== 'Slovakia' && - record.Country !== 'Ireland' && - record.Country !== 'Lithuania' && - record.Country !== 'Croatia' && - record.Country !== 'Slovenia' && - record.Country !== 'Portugal' && - record.Country !== 'Finland' && - record.Country !== 'United Kingdom' + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Estonia' && + record.Country !== 'Belgium' && + record.Country !== 'Sweden' && + record.Country !== 'Poland' && + record.Country !== 'Malta' && + record.Country !== 'Romania' && + record.Country !== 'Greece' && + record.Country !== 'Slovakia' && + record.Country !== 'Ireland' && + record.Country !== 'Lithuania' && + record.Country !== 'Croatia' && + record.Country !== 'Slovenia' && + record.Country !== 'Portugal' && + record.Country !== 'Finland' && + record.Country !== 'United Kingdom' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Country'] }, - color: { attach: ['Country'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Rectangle Marker Label PaddingBottom: Default' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label PaddingBottom: 40' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - paddingBottom: 40 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label PaddingBottom: null' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - paddingBottom: null - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label PaddingRight: 80' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - paddingBottom: null, - paddingRight: 80 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label PaddingRight: -80' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - paddingRight: -80 - } - } - } - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Country'] }, + color: { attach: ['Country'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Rectangle Marker Label PaddingBottom: Default' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label PaddingBottom: 40' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + paddingBottom: 40 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label PaddingBottom: null' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + paddingBottom: null + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label PaddingRight: 80' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + paddingBottom: null, + paddingRight: 80 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label PaddingRight: -80' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + paddingRight: -80 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Value 2 (+)'], range: { min: 'auto', max: 'auto' } }, - x: { attach: ['Value 2 (+)'] }, - label: { attach: ['Value 2 (+)', 'Country'] } - }, - title: '1 Rectangle Marker Label PaddingBottom: 40', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - paddingRight: null, - paddingBottom: 40 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: '2 Rectangle Marker Label PaddingRight: 80' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - paddingBottom: null, - paddingRight: 80 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label PaddingRight: -80' - }, - style: { - plot: { - marker: { - label: { - paddingRight: -80 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Padding: Default' - }, - style: { - plot: { - marker: { - label: { - paddingRight: null, - paddingBottom: null - } - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Value 2 (+)'], range: { min: 'auto', max: 'auto' } }, + x: { attach: ['Value 2 (+)'] }, + label: { attach: ['Value 2 (+)', 'Country'] } + }, + title: '1 Rectangle Marker Label PaddingBottom: 40', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + paddingRight: null, + paddingBottom: 40 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: '2 Rectangle Marker Label PaddingRight: 80' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + paddingBottom: null, + paddingRight: 80 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label PaddingRight: -80' + }, + style: { + plot: { + marker: { + label: { + paddingRight: -80 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Padding: Default' + }, + style: { + plot: { + marker: { + label: { + paddingRight: null, + paddingBottom: null + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs b/test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs index 68c867d6e..796d661c8 100755 --- a/test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs +++ b/test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs @@ -1,512 +1,512 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Estonia' && - record.Country !== 'Belgium' && - record.Country !== 'Sweden' && - record.Country !== 'Poland' && - record.Country !== 'Malta' && - record.Country !== 'Romania' && - record.Country !== 'Greece' && - record.Country !== 'Slovakia' && - record.Country !== 'Ireland' && - record.Country !== 'Lithuania' && - record.Country !== 'Croatia' && - record.Country !== 'Slovenia' && - record.Country !== 'Portugal' && - record.Country !== 'Finland' && - record.Country !== 'United Kingdom' + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Estonia' && + record.Country !== 'Belgium' && + record.Country !== 'Sweden' && + record.Country !== 'Poland' && + record.Country !== 'Malta' && + record.Country !== 'Romania' && + record.Country !== 'Greece' && + record.Country !== 'Slovakia' && + record.Country !== 'Ireland' && + record.Country !== 'Lithuania' && + record.Country !== 'Croatia' && + record.Country !== 'Slovenia' && + record.Country !== 'Portugal' && + record.Country !== 'Finland' && + record.Country !== 'United Kingdom' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Country'] }, - color: { attach: ['Country'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Rectangle Marker Label Positions - Center' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Normal' - }, - style: { - plot: { - marker: { - label: { - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Value 2 (+)'] }, - label: { attach: ['Value 2 (+)'] } - }, - title: 'Change Continuous' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Value 2 (+)'], range: { min: 'auto', max: 'auto' } }, - x: { attach: ['Value 2 (+)'] }, - label: { attach: ['Value 2 (+)', 'Country'] } - }, - title: 'Polar Coordinate', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Normal' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: '1 Rectangle Marker Label Positions - Top/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Country'] }, + color: { attach: ['Country'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Rectangle Marker Label Positions - Center' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Normal' + }, + style: { + plot: { + marker: { + label: { + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Value 2 (+)'] }, + label: { attach: ['Value 2 (+)'] } + }, + title: 'Change Continuous' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Value 2 (+)'], range: { min: 'auto', max: 'auto' } }, + x: { attach: ['Value 2 (+)'] }, + label: { attach: ['Value 2 (+)', 'Country'] } + }, + title: 'Polar Coordinate', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Normal' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: '1 Rectangle Marker Label Positions - Top/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - title: '2 Rectangle Marker Label Positions - Top/Tangential' - }, - style: { - plot: { - marker: { - label: { - paddingLeft: '100', - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Angle' - }, - style: { - plot: { - marker: { - label: { - angle: 0.5 * 3.14 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Value 2 (+)', 'Country'] }, - size: { attach: ['Value 2 (+)'] } - }, - title: 'Without Coordinate', - coordSystem: 'cartesian' - }, - style: { - plot: { - marker: { - label: { - position: 'center', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - orientation: 'horizontal', - angle: null - } - } - } - } - }), - (chart) => - chart.animate({ - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Left' - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Bottom' - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Right' - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Horizontal' - }, - style: { - plot: { - marker: { - label: { - position: 'center', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Normal' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Vertical' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Tangential' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Angle' - }, - style: { - plot: { - marker: { - label: { - angle: 0.5 * 3.14 - } - } - } - } - }) + (chart) => + chart.animate({ + config: { + title: '2 Rectangle Marker Label Positions - Top/Tangential' + }, + style: { + plot: { + marker: { + label: { + paddingLeft: '100', + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Angle' + }, + style: { + plot: { + marker: { + label: { + angle: 0.5 * 3.14 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Value 2 (+)', 'Country'] }, + size: { attach: ['Value 2 (+)'] } + }, + title: 'Without Coordinate', + coordSystem: 'cartesian' + }, + style: { + plot: { + marker: { + label: { + position: 'center', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + orientation: 'horizontal', + angle: null + } + } + } + } + }), + (chart) => + chart.animate({ + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Left' + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Bottom' + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Right' + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Horizontal' + }, + style: { + plot: { + marker: { + label: { + position: 'center', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Normal' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Vertical' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Tangential' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Angle' + }, + style: { + plot: { + marker: { + label: { + angle: 0.5 * 3.14 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs b/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs index e399242a3..018bffa30 100755 --- a/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs +++ b/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs @@ -1,523 +1,523 @@ import { data } from '../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Estonia' && - record.Country !== 'Belgium' && - record.Country !== 'Sweden' && - record.Country !== 'Poland' && - record.Country !== 'Malta' && - record.Country !== 'Romania' && - record.Country !== 'Greece' && - record.Country !== 'Slovakia' && - record.Country !== 'Ireland' && - record.Country !== 'Lithuania' && - record.Country !== 'Croatia' && - record.Country !== 'Slovenia' && - record.Country !== 'Portugal' && - record.Country !== 'Finland' && - record.Country !== 'United Kingdom' + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Estonia' && + record.Country !== 'Belgium' && + record.Country !== 'Sweden' && + record.Country !== 'Poland' && + record.Country !== 'Malta' && + record.Country !== 'Romania' && + record.Country !== 'Greece' && + record.Country !== 'Slovakia' && + record.Country !== 'Ireland' && + record.Country !== 'Lithuania' && + record.Country !== 'Croatia' && + record.Country !== 'Slovenia' && + record.Country !== 'Portugal' && + record.Country !== 'Finland' && + record.Country !== 'United Kingdom' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Country'] }, - color: { attach: ['Country'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Rectangle Marker Label Positions - Center' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top', - angle: Math.PI / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Left', - angle: (Math.PI * 2) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Bottom', - angle: (Math.PI * 3) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Right', - angle: (Math.PI * 4) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Horizontal', - angle: (Math.PI * 5) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'center' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Tangential', - angle: (Math.PI * 6) / 18 - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Normal', - angle: (Math.PI * 7) / 18 - }, - style: { - plot: { - marker: { - label: { - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Vertical', - angle: (Math.PI * 8) / 18 - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Value 2 (+)'] }, - label: { attach: ['Value 2 (+)'] } - }, - title: 'Change Continuous', - angle: (Math.PI * 9) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Value 2 (+)'], range: { min: 'auto', max: 'auto' } }, - x: { attach: ['Value 2 (+)'] }, - label: { attach: ['Value 2 (+)', 'Country'] } - }, - title: 'Polar Coordinate', - angle: (Math.PI * 27) / 18, - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Left', - angle: (Math.PI * 28) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Bottom', - angle: (Math.PI * 29) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Right', - angle: (Math.PI * 30) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Horizontal', - angle: (Math.PI * 31) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'center', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Normal', - angle: (Math.PI * 32) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Vertical', - angle: (Math.PI * 33) / 18 - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Tangential', - angle: (Math.PI * 34) / 18 - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Angle', - angle: (Math.PI * 35) / 18 - }, - style: { - plot: { - marker: { - label: { - angle: 0.5 * 3.14 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Value 2 (+)', 'Country'] }, - size: { attach: ['Value 2 (+)'] } - }, - title: 'Without Coordinate', - angle: (Math.PI * 36) / 18, - coordSystem: 'cartesian' - }, - style: { - plot: { - marker: { - label: { - position: 'center', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Horizontal', - angle: (Math.PI * 37) / 18 - }, - style: { - plot: { - marker: { - label: { - orientation: 'horizontal', - angle: null - } - } - } - } - }), - (chart) => - chart.animate({ - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Left', - angle: (Math.PI * 38) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'left' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Bottom', - angle: (Math.PI * 39) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'bottom' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Right', - angle: (Math.PI * 40) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'right' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Center/Horizontal', - angle: (Math.PI * 41) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'center', - orientation: 'horizontal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Normal', - angle: (Math.PI * 42) / 18 - }, - style: { - plot: { - marker: { - label: { - position: 'top', - orientation: 'normal' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Vertical', - angle: (Math.PI * 6) / 18 - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Tangential', - angle: (Math.PI * 16) / 18 - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - title: 'Rectangle Marker Label Positions - Top/Angle', - angle: (Math.PI * 54) / 18 - }, - style: { - plot: { - marker: { - label: { - angle: 1 * 3.14 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Country'] }, + color: { attach: ['Country'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Rectangle Marker Label Positions - Center' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top', + angle: Math.PI / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Left', + angle: (Math.PI * 2) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Bottom', + angle: (Math.PI * 3) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Right', + angle: (Math.PI * 4) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Horizontal', + angle: (Math.PI * 5) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'center' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Tangential', + angle: (Math.PI * 6) / 18 + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Normal', + angle: (Math.PI * 7) / 18 + }, + style: { + plot: { + marker: { + label: { + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Vertical', + angle: (Math.PI * 8) / 18 + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Value 2 (+)'] }, + label: { attach: ['Value 2 (+)'] } + }, + title: 'Change Continuous', + angle: (Math.PI * 9) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Value 2 (+)'], range: { min: 'auto', max: 'auto' } }, + x: { attach: ['Value 2 (+)'] }, + label: { attach: ['Value 2 (+)', 'Country'] } + }, + title: 'Polar Coordinate', + angle: (Math.PI * 27) / 18, + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Left', + angle: (Math.PI * 28) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Bottom', + angle: (Math.PI * 29) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Right', + angle: (Math.PI * 30) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Horizontal', + angle: (Math.PI * 31) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'center', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Normal', + angle: (Math.PI * 32) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Vertical', + angle: (Math.PI * 33) / 18 + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Tangential', + angle: (Math.PI * 34) / 18 + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Angle', + angle: (Math.PI * 35) / 18 + }, + style: { + plot: { + marker: { + label: { + angle: 0.5 * 3.14 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Value 2 (+)', 'Country'] }, + size: { attach: ['Value 2 (+)'] } + }, + title: 'Without Coordinate', + angle: (Math.PI * 36) / 18, + coordSystem: 'cartesian' + }, + style: { + plot: { + marker: { + label: { + position: 'center', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Horizontal', + angle: (Math.PI * 37) / 18 + }, + style: { + plot: { + marker: { + label: { + orientation: 'horizontal', + angle: null + } + } + } + } + }), + (chart) => + chart.animate({ + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Left', + angle: (Math.PI * 38) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'left' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Bottom', + angle: (Math.PI * 39) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'bottom' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Right', + angle: (Math.PI * 40) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'right' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Center/Horizontal', + angle: (Math.PI * 41) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'center', + orientation: 'horizontal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Normal', + angle: (Math.PI * 42) / 18 + }, + style: { + plot: { + marker: { + label: { + position: 'top', + orientation: 'normal' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Vertical', + angle: (Math.PI * 6) / 18 + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Tangential', + angle: (Math.PI * 16) / 18 + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + title: 'Rectangle Marker Label Positions - Top/Angle', + angle: (Math.PI * 54) / 18 + }, + style: { + plot: { + marker: { + label: { + angle: 1 * 3.14 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_2discrete_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/color_2discrete_anim.mjs index ed8d52949..028d5f4c5 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/color_2discrete_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/color_2discrete_anim.mjs @@ -1,40 +1,40 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Color 2 Discrete series.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - color: { attach: ['Joy factors'] }, - size: { attach: ['Joy factors'] }, - label: { detach: ['Value 5 (+/-)'] } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Joy factors'] }, - label: { attach: ['Value 5 (+/-)'] } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Color 2 Discrete series.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + color: { attach: ['Joy factors'] }, + size: { attach: ['Joy factors'] }, + label: { detach: ['Value 5 (+/-)'] } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Joy factors'] }, + label: { attach: ['Value 5 (+/-)'] } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_conti_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/color_conti_anim.mjs index e4a954bff..883549d23 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/color_conti_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/color_conti_anim.mjs @@ -1,44 +1,44 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - lightness: { attach: ['Country'] }, - color: { attach: ['Value 5 (+/-)'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Country'] } - }, - title: 'Color Continuous Anim.', - legend: 'color', - geometry: 'circle' - }, - style: { - plot: { - marker: { - colorGradient: - '#3d51b8 0, #6389ec 0.15, #9fbffa 0.35, #d5d7d9 0.5, #f4b096 0.65, #e36c56 0.85, #ac1727 1' - } - } - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' - }, - config: { - title: 'Color Continuous Anim. - Filtered' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + lightness: { attach: ['Country'] }, + color: { attach: ['Value 5 (+/-)'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Country'] } + }, + title: 'Color Continuous Anim.', + legend: 'color', + geometry: 'circle' + }, + style: { + plot: { + marker: { + colorGradient: + '#3d51b8 0, #6389ec 0.15, #9fbffa 0.35, #d5d7d9 0.5, #f4b096 0.65, #e36c56 0.85, #ac1727 1' + } + } + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' + }, + config: { + title: 'Color Continuous Anim. - Filtered' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_conti_changes_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/color_conti_changes_anim.mjs index 5fc66c1c8..9ae12a1c5 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/color_conti_changes_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/color_conti_changes_anim.mjs @@ -1,29 +1,29 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Value 4 (+/-)'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Country'] } - }, - title: 'Color Continuous series Changing Anim.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - color: { detach: ['Value 4 (+/-)'], attach: ['Value 5 (+/-)'] } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Value 4 (+/-)'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Country'] } + }, + title: 'Color Continuous series Changing Anim.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + color: { detach: ['Value 4 (+/-)'], attach: ['Value 5 (+/-)'] } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_conti_discrete_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/color_conti_discrete_anim.mjs index 4f56dc82c..149b17896 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/color_conti_discrete_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/color_conti_discrete_anim.mjs @@ -1,29 +1,29 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Color Discrete + Continuous.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - color: { attach: ['Value 4 (+/-)'] } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Color Discrete + Continuous.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + color: { attach: ['Value 4 (+/-)'] } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_anim.mjs index 7877aeb80..095ab8238 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_anim.mjs @@ -1,46 +1,46 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Country'] } - }, - title: 'Color Discrete Anim.', - legend: 'color', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Estonia' && - record.Country !== 'Belgium' && - record.Country !== 'Sweden' && - record.Country !== 'Poland' && - record.Country !== 'Malta' && - record.Country !== 'Romania' && - record.Country !== 'Bulgaria' && - record.Country !== 'Slovakia' && - record.Country !== 'Ireland' && - record.Country !== 'Lithuania' && - record.Country !== 'United Kingdom' - }, - config: { - title: 'Color Discrete Anim. - Filtered' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Country'] } + }, + title: 'Color Discrete Anim.', + legend: 'color', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Estonia' && + record.Country !== 'Belgium' && + record.Country !== 'Sweden' && + record.Country !== 'Poland' && + record.Country !== 'Malta' && + record.Country !== 'Romania' && + record.Country !== 'Bulgaria' && + record.Country !== 'Slovakia' && + record.Country !== 'Ireland' && + record.Country !== 'Lithuania' && + record.Country !== 'United Kingdom' + }, + config: { + title: 'Color Discrete Anim. - Filtered' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_changes_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_changes_anim.mjs index 3871d941f..30ce379d8 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_changes_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_changes_anim.mjs @@ -1,62 +1,62 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Color Discrete series Changing Anim.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { - attach: ['Year'] - }, - label: { - detach: ['Value 5 (+/-)'] - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { - detach: ['Year'], - attach: ['Country'] - }, - color: { - detach: ['Country'], - attach: ['Year'] - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { - detach: ['Country'] - }, - label: { - attach: ['Year'] - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Color Discrete series Changing Anim.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { + attach: ['Year'] + }, + label: { + detach: ['Value 5 (+/-)'] + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { + detach: ['Year'], + attach: ['Country'] + }, + color: { + detach: ['Country'], + attach: ['Year'] + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { + detach: ['Country'] + }, + label: { + attach: ['Year'] + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_anim.mjs index e7d564c9a..cd2381e01 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_anim.mjs @@ -1,34 +1,34 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Color legend On-Off Anim.', - legend: 'color', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - legend: null - } - }), - (chart) => - chart.animate({ - config: { - legend: 'color' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Color legend On-Off Anim.', + legend: 'color', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + legend: null + } + }), + (chart) => + chart.animate({ + config: { + legend: 'color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_series_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_series_anim.mjs index ba75cbb45..34bf02e07 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_series_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_series_anim.mjs @@ -1,29 +1,29 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 1 (+)'] }, - label: { attach: ['Value 1 (+)'] } - }, - title: 'Color legend On-Off Anim.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - color: { detach: ['Country'] } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 1 (+)'] }, + label: { attach: ['Value 1 (+)'] } + }, + title: 'Color legend On-Off Anim.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + color: { detach: ['Country'] } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_2discrete_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/lightness_2discrete_anim.mjs index 8d0345aab..5e524bc3a 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/lightness_2discrete_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/lightness_2discrete_anim.mjs @@ -1,30 +1,30 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - lightness: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Lightness 2 Discrete series.', - legend: 'lightness', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - lightness: { attach: ['Joy factors'] } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + lightness: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Lightness 2 Discrete series.', + legend: 'lightness', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + lightness: { attach: ['Joy factors'] } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_anim.mjs index 8afe03c22..4d246375b 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_anim.mjs @@ -1,37 +1,37 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - lightness: { attach: ['Value 5 (+/-)'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Lightness Continuous Anim.', - legend: 'lightness', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' - }, + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + lightness: { attach: ['Value 5 (+/-)'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Lightness Continuous Anim.', + legend: 'lightness', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' + }, - config: { - title: 'Lightness Continuous Anim. - Filtered' - } - }) + config: { + title: 'Lightness Continuous Anim. - Filtered' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_discrete_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_discrete_anim.mjs index a155f394c..8d3d0f90b 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_discrete_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_discrete_anim.mjs @@ -1,30 +1,30 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - lightness: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Lightness Discrete + Continuous.', - legend: 'lightness', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - lightness: { attach: ['Value 4 (+/-)'] } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + lightness: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Lightness Discrete + Continuous.', + legend: 'lightness', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + lightness: { attach: ['Value 4 (+/-)'] } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_discrete_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/lightness_discrete_anim.mjs index 8ef0745a7..fe6b0cdbe 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/lightness_discrete_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/lightness_discrete_anim.mjs @@ -1,36 +1,36 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Value 5 (+/-)'] }, - lightness: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Lightness Discrete Anim.', - legend: 'lightness', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' - }, - config: { - title: 'Lightness Discrete Anim. - Filtered' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Value 5 (+/-)'] }, + lightness: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Lightness Discrete Anim.', + legend: 'lightness', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' + }, + config: { + title: 'Lightness Discrete Anim. - Filtered' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_on_off_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/lightness_on_off_anim.mjs index 6b35bc3ff..37a7b4fe4 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/lightness_on_off_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/lightness_on_off_anim.mjs @@ -1,35 +1,35 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - lightness: { attach: ['Value 5 (+/-)'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Lightness legend On-Off Anim.', - legend: 'lightness', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - legend: null - } - }), - (chart) => - chart.animate({ - config: { - legend: 'lightness' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + lightness: { attach: ['Value 5 (+/-)'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Lightness legend On-Off Anim.', + legend: 'lightness', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + legend: null + } + }), + (chart) => + chart.animate({ + config: { + legend: 'lightness' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_2discrete_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/size_2discrete_anim.mjs index 8617ee118..7c166c72b 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/size_2discrete_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/size_2discrete_anim.mjs @@ -1,42 +1,42 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - lightness: { attach: ['Country'] }, - size: { attach: ['Country_code', 'Value 4 (+/-)'] }, - label: { attach: ['Year'] } - }, - title: 'Size 1 Discrete series.', - legend: 'size', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: { detach: ['Year'] }, - noop: { attach: ['Year'] } - }, - title: 'Size 1 Discrete series..' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Year'] }, - label: { attach: ['Year'] } - }, - title: 'Size 2 Discrete series (stacked).' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + lightness: { attach: ['Country'] }, + size: { attach: ['Country_code', 'Value 4 (+/-)'] }, + label: { attach: ['Year'] } + }, + title: 'Size 1 Discrete series.', + legend: 'size', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: { detach: ['Year'] }, + noop: { attach: ['Year'] } + }, + title: 'Size 1 Discrete series..' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Year'] }, + label: { attach: ['Year'] } + }, + title: 'Size 2 Discrete series (stacked).' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_conti_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/size_conti_anim.mjs index 227fb2640..8438e7736 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/size_conti_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/size_conti_anim.mjs @@ -1,44 +1,44 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 4 (+/-)'] } - }, - title: 'Size Continuous Anim.', - legend: 'size', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Finland' && - record.Country !== 'Lithuania' && - record.Country !== 'Latvia' && - record.Country !== 'Croatia' && - record.Country !== 'Ireland' && - record.Country !== 'Denmark' && - record.Country !== 'Hungary' && - record.Country !== 'United Kingdom' - }, + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 4 (+/-)'] } + }, + title: 'Size Continuous Anim.', + legend: 'size', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Finland' && + record.Country !== 'Lithuania' && + record.Country !== 'Latvia' && + record.Country !== 'Croatia' && + record.Country !== 'Ireland' && + record.Country !== 'Denmark' && + record.Country !== 'Hungary' && + record.Country !== 'United Kingdom' + }, - config: { - title: 'Size Continuous Anim. - Filtered' - } - }) + config: { + title: 'Size Continuous Anim. - Filtered' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_conti_discrete_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/size_conti_discrete_anim.mjs index 71153116c..5831f564e 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/size_conti_discrete_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/size_conti_discrete_anim.mjs @@ -1,30 +1,30 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - lightness: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Size Continuous + Discrete.', - legend: 'size', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Country_code'] } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + lightness: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Size Continuous + Discrete.', + legend: 'size', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Country_code'] } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_discrete_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/size_discrete_anim.mjs index a5a97002d..0fd912ef3 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/size_discrete_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/size_discrete_anim.mjs @@ -1,47 +1,47 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - attach: ['Value 5 (+/-)', 'Country'], - range: { min: '0%', max: '110%' } - }, - x: { attach: ['Value 3 (+)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Country'] }, - label: { attach: ['Country'] } - }, - title: 'Size Discrete Anim.', - legend: 'size', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Finland' && - record.Country !== 'Lithuania' && - record.Country !== 'Latvia' && - record.Country !== 'Croatia' && - record.Country !== 'Ireland' && - record.Country !== 'Denmark' && - record.Country !== 'Hungary' && - record.Country !== 'United Kingdom' - }, + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + attach: ['Value 5 (+/-)', 'Country'], + range: { min: '0%', max: '110%' } + }, + x: { attach: ['Value 3 (+)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Country'] }, + label: { attach: ['Country'] } + }, + title: 'Size Discrete Anim.', + legend: 'size', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Finland' && + record.Country !== 'Lithuania' && + record.Country !== 'Latvia' && + record.Country !== 'Croatia' && + record.Country !== 'Ireland' && + record.Country !== 'Denmark' && + record.Country !== 'Hungary' && + record.Country !== 'United Kingdom' + }, - config: { - title: 'Size Discrete Anim. - Filtered' - } - }) + config: { + title: 'Size Discrete Anim. - Filtered' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_on_off_anim.mjs b/test/integration/test_cases/basic_animations/legend_transitions/size_on_off_anim.mjs index bbb361087..d87e71b53 100755 --- a/test/integration/test_cases/basic_animations/legend_transitions/size_on_off_anim.mjs +++ b/test/integration/test_cases/basic_animations/legend_transitions/size_on_off_anim.mjs @@ -1,34 +1,34 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Country'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] } - }, - title: 'Size Continuous Anim.', - legend: 'size', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - legend: null - } - }), - (chart) => - chart.animate({ - config: { - legend: 'size' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Country'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] } + }, + title: 'Size Continuous Anim.', + legend: 'size', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + legend: null + } + }), + (chart) => + chart.animate({ + config: { + legend: 'size' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs b/test/integration/test_cases/basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs index cb1aca96c..9abd8b2f0 100755 --- a/test/integration/test_cases/basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs +++ b/test/integration/test_cases/basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs @@ -1,131 +1,131 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Year'] }, - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Value 5 (+/-)'] }, - size: { attach: ['Value 2 (+)'] } - }, - title: 'Histogram with (-) Nums' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle plot with (-) Nums', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Histogram with (-) Nums', - geometry: 'rectangle' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area with (-) Nums', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Histogram with (-) Nums', - geometry: 'rectangle' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line with (-) Nums', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle with (-) Nums', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area with (-) Nums', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle with (-) Nums', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line with (-) Nums', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area with (-) Nums', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle with (-) Nums', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area with (-) Nums', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line with (-) Nums', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Circle with (-) Nums', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Line with (-) Nums', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Area with (-) Nums', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Year'] }, + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Value 5 (+/-)'] }, + size: { attach: ['Value 2 (+)'] } + }, + title: 'Histogram with (-) Nums' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle plot with (-) Nums', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Histogram with (-) Nums', + geometry: 'rectangle' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area with (-) Nums', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Histogram with (-) Nums', + geometry: 'rectangle' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line with (-) Nums', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle with (-) Nums', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area with (-) Nums', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle with (-) Nums', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line with (-) Nums', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area with (-) Nums', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle with (-) Nums', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area with (-) Nums', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line with (-) Nums', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Circle with (-) Nums', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Line with (-) Nums', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Area with (-) Nums', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/markers_morph/marker_trans_polar.mjs b/test/integration/test_cases/basic_animations/markers_morph/marker_trans_polar.mjs index df005507d..901b0d8e5 100755 --- a/test/integration/test_cases/basic_animations/markers_morph/marker_trans_polar.mjs +++ b/test/integration/test_cases/basic_animations/markers_morph/marker_trans_polar.mjs @@ -1,28 +1,28 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Year'] }, - y: { attach: ['Value 5 (+/-)'] }, - size: { attach: ['Value 2 (+)'] } - }, - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Year'] }, + y: { attach: ['Value 5 (+/-)'] }, + size: { attach: ['Value 2 (+)'] } + }, + coordSystem: 'polar' + } + }) ] const geometries = ['rectangle', 'circle', 'area', 'line'] for (let i = 0; i < geometries.length; i++) { - testSteps.push((chart) => chart.animate({ geometry: geometries[i] })) - for (let j = i + 1; j < geometries.length; j++) { - testSteps.push((chart) => chart.animate({ geometry: geometries[j] })) - testSteps.push((chart) => chart.animate({ geometry: geometries[i] })) - } + testSteps.push((chart) => chart.animate({ geometry: geometries[i] })) + for (let j = i + 1; j < geometries.length; j++) { + testSteps.push((chart) => chart.animate({ geometry: geometries[j] })) + testSteps.push((chart) => chart.animate({ geometry: geometries[i] })) + } } export default testSteps diff --git a/test/integration/test_cases/basic_animations/someOtherTests/merge_split_area_stream_2dis_1con.mjs b/test/integration/test_cases/basic_animations/someOtherTests/merge_split_area_stream_2dis_1con.mjs index 011adc105..370aad0f0 100755 --- a/test/integration/test_cases/basic_animations/someOtherTests/merge_split_area_stream_2dis_1con.mjs +++ b/test/integration/test_cases/basic_animations/someOtherTests/merge_split_area_stream_2dis_1con.mjs @@ -1,71 +1,71 @@ import { data } from '../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: ['Revenue', 'Format'], - color: 'Format' - }, - title: 'Stacked Streamgraph', - geometry: 'area', - align: 'center' - }, - style: { - plot: { - xAxis: { - label: { - angle: 1.8, - fontSize: 8.5 - // numberFormat: 'grouped' - } - } - } - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: ['Revenue', 'Format'], + color: 'Format' + }, + title: 'Stacked Streamgraph', + geometry: 'area', + align: 'center' + }, + style: { + plot: { + xAxis: { + label: { + angle: 1.8, + fontSize: 8.5 + // numberFormat: 'grouped' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - range: { - max: '100%' - } - } - }, - title: 'Split Area Chart', - split: true, - align: 'min' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { + range: { + max: '100%' + } + } + }, + title: 'Split Area Chart', + split: true, + align: 'min' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Revenue', 'Year'], - y: 'Format' - }, - title: 'Bar Chart', - geometry: 'rectangle', - split: false, - align: 'min' - }, - style: { - plot: { - xAxis: { - label: { - angle: null, - fontSize: null - } - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Revenue', 'Year'], + y: 'Format' + }, + title: 'Bar Chart', + geometry: 'rectangle', + split: false, + align: 'min' + }, + style: { + plot: { + xAxis: { + label: { + angle: null, + fontSize: null + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_bar.mjs b/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_bar.mjs index 70638ed86..c7d9bd635 100755 --- a/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_bar.mjs +++ b/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_bar.mjs @@ -1,57 +1,57 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - /* Making the chart elements fill the whole of + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { + /* Making the chart elements fill the whole of the y-axis as the default value is now 110% */ - range: { - max: '100%' - } - } - }, - title: 'Trellis Area Chart', - split: true - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 2 (+)', 'Year'], - y: 'Country' - }, - title: 'Bar Chart', - geometry: 'rectangle', - split: false - } - }), + range: { + max: '100%' + } + } + }, + title: 'Trellis Area Chart', + split: true + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 2 (+)', 'Year'], + y: 'Country' + }, + title: 'Bar Chart', + geometry: 'rectangle', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_column.mjs b/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_column.mjs index 1a1b95375..239d30899 100755 --- a/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_column.mjs +++ b/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_column.mjs @@ -1,54 +1,54 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - x: 'Year', - color: 'Joy factors' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + x: 'Year', + color: 'Joy factors' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Split Area Chart', - split: true - } - }), + (chart) => + chart.animate({ + config: { + title: 'Split Area Chart', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Year'], - x: 'Joy factors' - }, - title: 'Column Chart', - geometry: 'rectangle', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Year'], + x: 'Joy factors' + }, + title: 'Column Chart', + geometry: 'rectangle', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - x: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Column Chart', - geometry: 'rectangle', - split: false - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + x: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Column Chart', + geometry: 'rectangle', + split: false + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/someOtherTests/total_time_bar_line.mjs b/test/integration/test_cases/basic_animations/someOtherTests/total_time_bar_line.mjs index c454ef131..0c2a7729b 100755 --- a/test/integration/test_cases/basic_animations/someOtherTests/total_time_bar_line.mjs +++ b/test/integration/test_cases/basic_animations/someOtherTests/total_time_bar_line.mjs @@ -1,42 +1,42 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 2 (+)', - x: 'Year', - color: 'Joy factors' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 2 (+)', + x: 'Year', + color: 'Joy factors' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Joy factors', - x: ['Value 2 (+)', 'Year'] - }, - title: 'Bar Chart', - geometry: 'rectangle', - sort: 'byValue' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: 'Joy factors', + x: ['Value 2 (+)', 'Year'] + }, + title: 'Bar Chart', + geometry: 'rectangle', + sort: 'byValue' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/basic_animations/someOtherTests/total_time_column_line.mjs b/test/integration/test_cases/basic_animations/someOtherTests/total_time_column_line.mjs index 23e8f9ac7..e18c8ed86 100755 --- a/test/integration/test_cases/basic_animations/someOtherTests/total_time_column_line.mjs +++ b/test/integration/test_cases/basic_animations/someOtherTests/total_time_column_line.mjs @@ -1,60 +1,60 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 2 (+)', - x: 'Year', - color: 'Joy factors' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 2 (+)', + x: 'Year', + color: 'Joy factors' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: ['Value 2 (+)', 'Year'], - x: 'Joy factors' - }, - title: 'Column Chart', - geometry: 'rectangle', - sort: 'byValue' - } - }, - { - /* Setting a custom rhythm for the animation + (chart) => + chart.animate( + { + config: { + channels: { + y: ['Value 2 (+)', 'Year'], + x: 'Joy factors' + }, + title: 'Column Chart', + geometry: 'rectangle', + sort: 'byValue' + } + }, + { + /* Setting a custom rhythm for the animation to assist the viewer in following it. */ - geometry: { - delay: 0.5, - duration: 0.5 - }, - y: { - delay: 0.5, - duration: 1 - }, - x: { - delay: 0, - duration: 1 - } - } - ), + geometry: { + delay: 0.5, + duration: 0.5 + }, + y: { + delay: 0.5, + duration: 1 + }, + x: { + delay: 0, + duration: 1 + } + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/area_negative_x.mjs b/test/integration/test_cases/chart_precision/area_negative_x.mjs index d68f9bf16..8abb1eddc 100755 --- a/test/integration/test_cases/chart_precision/area_negative_x.mjs +++ b/test/integration/test_cases/chart_precision/area_negative_x.mjs @@ -1,23 +1,23 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { - attach: ['Childs', 'Values child'], - range: { min: '0%', max: '110%' } - }, - y: { attach: ['Parents'] }, - label: { attach: ['Values child'] }, - lightness: { attach: ['Childs'] } - }, - title: 'Chart Precision Area - X', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { + attach: ['Childs', 'Values child'], + range: { min: '0%', max: '110%' } + }, + y: { attach: ['Parents'] }, + label: { attach: ['Values child'] }, + lightness: { attach: ['Childs'] } + }, + title: 'Chart Precision Area - X', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/area_negative_y.mjs b/test/integration/test_cases/chart_precision/area_negative_y.mjs index 0164b41d2..4f7efc5bd 100755 --- a/test/integration/test_cases/chart_precision/area_negative_y.mjs +++ b/test/integration/test_cases/chart_precision/area_negative_y.mjs @@ -1,23 +1,23 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents'] }, - y: { - attach: ['Childs', 'Values child'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values child'] }, - lightness: { attach: ['Childs'] } - }, - title: 'Chart Precision Area', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents'] }, + y: { + attach: ['Childs', 'Values child'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values child'] }, + lightness: { attach: ['Childs'] } + }, + title: 'Chart Precision Area', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/area_x.mjs b/test/integration/test_cases/chart_precision/area_x.mjs index f130217ea..ff07cf8b4 100755 --- a/test/integration/test_cases/chart_precision/area_x.mjs +++ b/test/integration/test_cases/chart_precision/area_x.mjs @@ -1,23 +1,23 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { - attach: ['Childs', 'Values parent'], - range: { min: '0%', max: '110%' } - }, - y: { attach: ['Parents'] }, - label: { attach: ['Values parent'] }, - lightness: { attach: ['Childs'] } - }, - title: 'Chart Precision Area - X', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { + attach: ['Childs', 'Values parent'], + range: { min: '0%', max: '110%' } + }, + y: { attach: ['Parents'] }, + label: { attach: ['Values parent'] }, + lightness: { attach: ['Childs'] } + }, + title: 'Chart Precision Area - X', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/area_y.mjs b/test/integration/test_cases/chart_precision/area_y.mjs index 9d85af742..da073ba9b 100755 --- a/test/integration/test_cases/chart_precision/area_y.mjs +++ b/test/integration/test_cases/chart_precision/area_y.mjs @@ -1,23 +1,23 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents'] }, - y: { - attach: ['Childs', 'Values parent'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values parent'] }, - lightness: { attach: ['Childs'] } - }, - title: 'Chart Precision Area', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents'] }, + y: { + attach: ['Childs', 'Values parent'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values parent'] }, + lightness: { attach: ['Childs'] } + }, + title: 'Chart Precision Area', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/bubble.mjs b/test/integration/test_cases/chart_precision/bubble.mjs index c03adb834..ecfae2185 100755 --- a/test/integration/test_cases/chart_precision/bubble.mjs +++ b/test/integration/test_cases/chart_precision/bubble.mjs @@ -1,19 +1,19 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - label: { attach: ['Values parent'] }, - size: { attach: ['Values parent', 'Parents'] }, - color: { attach: ['Childs'] } - }, - title: 'Bubble', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + label: { attach: ['Values parent'] }, + size: { attach: ['Values parent', 'Parents'] }, + color: { attach: ['Childs'] } + }, + title: 'Bubble', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/circle.mjs b/test/integration/test_cases/chart_precision/circle.mjs index 73a4c6c36..b9c49febc 100755 --- a/test/integration/test_cases/chart_precision/circle.mjs +++ b/test/integration/test_cases/chart_precision/circle.mjs @@ -1,23 +1,23 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents'] }, - y: { - attach: ['Childs', 'Values parent'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values parent'] }, - size: { attach: ['Values parent'] } - }, - title: 'Chart Precision Circle', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents'] }, + y: { + attach: ['Childs', 'Values parent'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values parent'] }, + size: { attach: ['Values parent'] } + }, + title: 'Chart Precision Circle', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/circle_negative.mjs b/test/integration/test_cases/chart_precision/circle_negative.mjs index a4f62b01f..79aa2c68a 100755 --- a/test/integration/test_cases/chart_precision/circle_negative.mjs +++ b/test/integration/test_cases/chart_precision/circle_negative.mjs @@ -1,20 +1,20 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents'] }, - y: { attach: ['Values child'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Childs', 'Values child'] }, - size: { attach: ['Values child'] } - }, - title: 'Chart Precision Circle', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents'] }, + y: { attach: ['Values child'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Childs', 'Values child'] }, + size: { attach: ['Values child'] } + }, + title: 'Chart Precision Circle', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/column_color_gradient.mjs b/test/integration/test_cases/chart_precision/column_color_gradient.mjs index 6f329c35b..64d0520ed 100755 --- a/test/integration/test_cases/chart_precision/column_color_gradient.mjs +++ b/test/integration/test_cases/chart_precision/column_color_gradient.mjs @@ -1,22 +1,22 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents', 'Childs'] }, - y: { - attach: ['Parents', 'Childs', 'Values child'], - range: { min: '110%', max: '0%' } - }, - color: { attach: ['Values child'] } - }, - title: 'Waterfall (-) Color Gradient', - legend: 'color' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents', 'Childs'] }, + y: { + attach: ['Parents', 'Childs', 'Values child'], + range: { min: '110%', max: '0%' } + }, + color: { attach: ['Values child'] } + }, + title: 'Waterfall (-) Color Gradient', + legend: 'color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/column_lightness.mjs b/test/integration/test_cases/chart_precision/column_lightness.mjs index e8cd381e9..01e54496c 100755 --- a/test/integration/test_cases/chart_precision/column_lightness.mjs +++ b/test/integration/test_cases/chart_precision/column_lightness.mjs @@ -1,24 +1,24 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents', 'Childs'] }, - y: { - attach: ['Parents', 'Childs', 'Values child'], - range: { min: '110%', max: '0%' } - }, - color: { attach: ['Parents'] }, - lightness: { attach: ['Values child'] }, - label: { attach: ['Values child'] } - }, - title: 'Waterfall (-) lightness', - legend: 'lightness' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents', 'Childs'] }, + y: { + attach: ['Parents', 'Childs', 'Values child'], + range: { min: '110%', max: '0%' } + }, + color: { attach: ['Parents'] }, + lightness: { attach: ['Values child'] }, + label: { attach: ['Values child'] } + }, + title: 'Waterfall (-) lightness', + legend: 'lightness' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/line_negative_x.mjs b/test/integration/test_cases/chart_precision/line_negative_x.mjs index ed3fd3de5..ff1fb2cfd 100755 --- a/test/integration/test_cases/chart_precision/line_negative_x.mjs +++ b/test/integration/test_cases/chart_precision/line_negative_x.mjs @@ -1,29 +1,29 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Values child'], range: { min: '0%', max: '110%' } }, - y: { attach: ['Parents'] }, - label: { attach: ['Values child', 'Childs'] }, - size: { attach: ['Values child'] } - }, - title: 'Chart Precision Line (-) - X', - geometry: 'line' - }, - style: { - plot: { - marker: { - label: { - position: 'top' - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Values child'], range: { min: '0%', max: '110%' } }, + y: { attach: ['Parents'] }, + label: { attach: ['Values child', 'Childs'] }, + size: { attach: ['Values child'] } + }, + title: 'Chart Precision Line (-) - X', + geometry: 'line' + }, + style: { + plot: { + marker: { + label: { + position: 'top' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/line_negative_y.mjs b/test/integration/test_cases/chart_precision/line_negative_y.mjs index d39cf1ca8..d9988861d 100755 --- a/test/integration/test_cases/chart_precision/line_negative_y.mjs +++ b/test/integration/test_cases/chart_precision/line_negative_y.mjs @@ -1,20 +1,20 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents'] }, - y: { attach: ['Values child'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Childs', 'Values child'] }, - size: { attach: ['Values child'] } - }, - title: 'Chart Precision Line (-) - Y', - geometry: 'line' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents'] }, + y: { attach: ['Values child'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Childs', 'Values child'] }, + size: { attach: ['Values child'] } + }, + title: 'Chart Precision Line (-) - Y', + geometry: 'line' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/line_x.mjs b/test/integration/test_cases/chart_precision/line_x.mjs index a8536a9b5..6f940c913 100755 --- a/test/integration/test_cases/chart_precision/line_x.mjs +++ b/test/integration/test_cases/chart_precision/line_x.mjs @@ -1,23 +1,23 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { - attach: ['Childs', 'Values parent'], - range: { min: '0%', max: '110%' } - }, - y: { attach: ['Parents'] }, - label: { attach: ['Values parent'] }, - size: { attach: ['Values parent'] } - }, - title: 'Chart Precision Line - X', - geometry: 'line' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { + attach: ['Childs', 'Values parent'], + range: { min: '0%', max: '110%' } + }, + y: { attach: ['Parents'] }, + label: { attach: ['Values parent'] }, + size: { attach: ['Values parent'] } + }, + title: 'Chart Precision Line - X', + geometry: 'line' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/line_y.mjs b/test/integration/test_cases/chart_precision/line_y.mjs index 8fd833a33..53d334410 100755 --- a/test/integration/test_cases/chart_precision/line_y.mjs +++ b/test/integration/test_cases/chart_precision/line_y.mjs @@ -1,23 +1,23 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents'] }, - y: { - attach: ['Childs', 'Values parent'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values parent'] }, - size: { attach: ['Values parent'] } - }, - title: 'Chart Precision Line - Y', - geometry: 'line' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents'] }, + y: { + attach: ['Childs', 'Values parent'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values parent'] }, + size: { attach: ['Values parent'] } + }, + title: 'Chart Precision Line - Y', + geometry: 'line' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/rectangle_negative_x.mjs b/test/integration/test_cases/chart_precision/rectangle_negative_x.mjs index e39d5e19c..955db0834 100755 --- a/test/integration/test_cases/chart_precision/rectangle_negative_x.mjs +++ b/test/integration/test_cases/chart_precision/rectangle_negative_x.mjs @@ -1,21 +1,21 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { - attach: ['Childs', 'Values child'], - range: { min: '0%', max: '110%' } - }, - y: { attach: ['Parents', 'Childs'] }, - label: { attach: ['Values child'] } - }, - title: 'Chart Precision Rectangle (-) - X' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { + attach: ['Childs', 'Values child'], + range: { min: '0%', max: '110%' } + }, + y: { attach: ['Parents', 'Childs'] }, + label: { attach: ['Values child'] } + }, + title: 'Chart Precision Rectangle (-) - X' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/rectangle_negative_y.mjs b/test/integration/test_cases/chart_precision/rectangle_negative_y.mjs index e3260e5c6..3b18ea9a3 100755 --- a/test/integration/test_cases/chart_precision/rectangle_negative_y.mjs +++ b/test/integration/test_cases/chart_precision/rectangle_negative_y.mjs @@ -1,21 +1,21 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents', 'Childs'] }, - y: { - attach: ['Childs', 'Values child'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values child'] } - }, - title: 'Chart Precision Rectangle (-) - Y' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents', 'Childs'] }, + y: { + attach: ['Childs', 'Values child'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values child'] } + }, + title: 'Chart Precision Rectangle (-) - Y' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/rectangle_x.mjs b/test/integration/test_cases/chart_precision/rectangle_x.mjs index 4d98a872a..ef8d9c97d 100755 --- a/test/integration/test_cases/chart_precision/rectangle_x.mjs +++ b/test/integration/test_cases/chart_precision/rectangle_x.mjs @@ -1,21 +1,21 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { - attach: ['Childs', 'Values parent'], - range: { min: '0%', max: '110%' } - }, - y: { attach: ['Parents'] }, - label: { attach: ['Values parent'] } - }, - title: 'Chart Precision Rectangle - X' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { + attach: ['Childs', 'Values parent'], + range: { min: '0%', max: '110%' } + }, + y: { attach: ['Parents'] }, + label: { attach: ['Values parent'] } + }, + title: 'Chart Precision Rectangle - X' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/rectangle_y.mjs b/test/integration/test_cases/chart_precision/rectangle_y.mjs index a2f4d6a18..d17d84c87 100755 --- a/test/integration/test_cases/chart_precision/rectangle_y.mjs +++ b/test/integration/test_cases/chart_precision/rectangle_y.mjs @@ -1,21 +1,21 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Parents'] }, - y: { - attach: ['Childs', 'Values parent'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values parent'] } - }, - title: 'Chart Precision Rectangle - Y' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Parents'] }, + y: { + attach: ['Childs', 'Values parent'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values parent'] } + }, + title: 'Chart Precision Rectangle - Y' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/chart_precision/treemap.mjs b/test/integration/test_cases/chart_precision/treemap.mjs index 948ea3197..82cfe1557 100755 --- a/test/integration/test_cases/chart_precision/treemap.mjs +++ b/test/integration/test_cases/chart_precision/treemap.mjs @@ -1,18 +1,18 @@ import { data } from '../../test_data/chart_precision.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - label: { attach: ['Values parent'] }, - size: { attach: ['Values parent', 'Parents'] }, - color: { attach: ['Childs'] } - }, - title: 'Treemap' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + label: { attach: ['Values parent'] }, + size: { attach: ['Values parent', 'Parents'] }, + color: { attach: ['Childs'] } + }, + title: 'Treemap' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/color_palettes/color_conti_gradient.mjs b/test/integration/test_cases/color_palettes/color_conti_gradient.mjs index 170b0842a..3ccc3c552 100755 --- a/test/integration/test_cases/color_palettes/color_conti_gradient.mjs +++ b/test/integration/test_cases/color_palettes/color_conti_gradient.mjs @@ -1,23 +1,23 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '150%' } }, - x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '150%' } }, - color: { attach: ['Value 5 (+/-)'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Value 5 (+/-)'] }, - noop: { attach: ['Country'] } - }, - title: 'Default Color Gradient', - legend: 'color', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '150%' } }, + x: { attach: ['Value 6 (+/-)'], range: { min: '0%', max: '150%' } }, + color: { attach: ['Value 5 (+/-)'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Value 5 (+/-)'] }, + noop: { attach: ['Country'] } + }, + title: 'Default Color Gradient', + legend: 'color', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/data_fault_and_formats/column_rectangle_less_disc.mjs b/test/integration/test_cases/data_fault_and_formats/column_rectangle_less_disc.mjs index 664d0ce85..ac8502560 100755 --- a/test/integration/test_cases/data_fault_and_formats/column_rectangle_less_disc.mjs +++ b/test/integration/test_cases/data_fault_and_formats/column_rectangle_less_disc.mjs @@ -1,22 +1,22 @@ import { data } from '../../test_data/data_missing_long.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - attach: ['Channel title for long names', '値3'], - range: { min: '110%', max: '0%' } - }, - x: { attach: ['Childs of long names which have no end'] }, - color: { attach: ['Channel title for long names'] }, - label: { attach: ['Childs of long names which have no end'] } - }, - title: 'Data missing - Less Discrete' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + attach: ['Channel title for long names', '値3'], + range: { min: '110%', max: '0%' } + }, + x: { attach: ['Childs of long names which have no end'] }, + color: { attach: ['Channel title for long names'] }, + label: { attach: ['Childs of long names which have no end'] } + }, + title: 'Data missing - Less Discrete' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_conti.mjs b/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_conti.mjs index 55d04bd93..a5a4ca11d 100755 --- a/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_conti.mjs +++ b/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_conti.mjs @@ -1,22 +1,22 @@ import { data } from '../../test_data/data_missing_long_more_conti.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - attach: ['Categ. Parent', 'Values 1'], - range: { min: '110%', max: '0%' } - }, - x: { attach: ['Timeseries'] }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Column More Conti. elements' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + attach: ['Categ. Parent', 'Values 1'], + range: { min: '110%', max: '0%' } + }, + x: { attach: ['Timeseries'] }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Column More Conti. elements' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_disc.mjs b/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_disc.mjs index 30f6a769a..093e85e4a 100755 --- a/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_disc.mjs +++ b/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_disc.mjs @@ -1,31 +1,31 @@ import { data } from '../../test_data/data_missing_long_more_disc.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - attach: ['Channel title for long names', '値3'], - range: { min: '110%', max: '0%' } - }, - x: { attach: ['Childs of long names which have no end'] }, - color: { attach: ['Channel title for long names'] }, - label: { attach: ['Childs of long names which have no end'] } - }, - title: 'Column More Disc. elements' - }, - style: { - plot: { - marker: { - label: { - position: 'top' - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + attach: ['Channel title for long names', '値3'], + range: { min: '110%', max: '0%' } + }, + x: { attach: ['Childs of long names which have no end'] }, + color: { attach: ['Channel title for long names'] }, + label: { attach: ['Childs of long names which have no end'] } + }, + title: 'Column More Disc. elements' + }, + style: { + plot: { + marker: { + label: { + position: 'top' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/data_fault_and_formats/rectangle_data_cube.mjs b/test/integration/test_cases/data_fault_and_formats/rectangle_data_cube.mjs index 5c2556ac4..2f66209ba 100755 --- a/test/integration/test_cases/data_fault_and_formats/rectangle_data_cube.mjs +++ b/test/integration/test_cases/data_fault_and_formats/rectangle_data_cube.mjs @@ -1,22 +1,22 @@ import { data } from '../../test_data/cube_test_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - set: ['Genres', 'Popularity'], - range: { min: '110%', max: '0%' } - }, - x: { set: ['Kinds'] }, - color: { set: ['Genres'] }, - label: { set: ['Popularity'] } - }, - title: 'Data Cube' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + set: ['Genres', 'Popularity'], + range: { min: '110%', max: '0%' } + }, + x: { set: ['Kinds'] }, + color: { set: ['Genres'] }, + label: { set: ['Popularity'] } + }, + title: 'Data Cube' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs b/test/integration/test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs index 0ca68aa68..bd4b7dbb6 100755 --- a/test/integration/test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs @@ -1,30 +1,30 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - attach: ['Joy factors', 'Value 2 (+)'], - range: { min: '0%', max: '107.5%' } - }, - x: { attach: ['Year'] }, - color: { attach: ['Joy factors'] } - }, - title: 'Stacked Coxcomb Chart', - coordSystem: 'polar' - }, - style: { - plot: { - backgroundColor: 'rgb(215,215,215 )', - marker: { - rectangleSpacing: 0.1 - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + attach: ['Joy factors', 'Value 2 (+)'], + range: { min: '0%', max: '107.5%' } + }, + x: { attach: ['Year'] }, + color: { attach: ['Joy factors'] } + }, + title: 'Stacked Coxcomb Chart', + coordSystem: 'polar' + }, + style: { + plot: { + backgroundColor: 'rgb(215,215,215 )', + marker: { + rectangleSpacing: 0.1 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/lay_out/full_line_negative_2dis_1con.mjs b/test/integration/test_cases/lay_out/full_line_negative_2dis_1con.mjs index 270588452..8627d7aed 100755 --- a/test/integration/test_cases/lay_out/full_line_negative_2dis_1con.mjs +++ b/test/integration/test_cases/lay_out/full_line_negative_2dis_1con.mjs @@ -1,29 +1,29 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Year'] }, - color: { attach: ['Country'] } - }, - title: 'Line Chart with (-) Nums (2disc)', - geometry: 'line' - }, - style: { - title: { backgroundColor: 'rgb(200,200,200 )' }, - legend: { backgroundColor: 'rgb(230,230,230 )' }, - plot: { - backgroundColor: 'rgb(215,215,215 )', - marker: { - rectangleSpacing: 0.1 - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Year'] }, + color: { attach: ['Country'] } + }, + title: 'Line Chart with (-) Nums (2disc)', + geometry: 'line' + }, + style: { + title: { backgroundColor: 'rgb(200,200,200 )' }, + legend: { backgroundColor: 'rgb(230,230,230 )' }, + plot: { + backgroundColor: 'rgb(215,215,215 )', + marker: { + rectangleSpacing: 0.1 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs b/test/integration/test_cases/lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs index cadf9c75d..64e370a41 100755 --- a/test/integration/test_cases/lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs @@ -1,29 +1,29 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - attach: ['Joy factors', 'Value 2 (+)'], - range: { min: '0%', max: '1.075%' } - }, - x: { attach: ['Year'] }, - color: { attach: ['Joy factors'] } - }, - title: null, - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - borderOpacity: 1 - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + attach: ['Joy factors', 'Value 2 (+)'], + range: { min: '0%', max: '1.075%' } + }, + x: { attach: ['Year'] }, + color: { attach: ['Joy factors'] } + }, + title: null, + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + borderOpacity: 1 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs b/test/integration/test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs index 3279cc7e6..74ffe105b 100755 --- a/test/integration/test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs +++ b/test/integration/test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs @@ -1,24 +1,24 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Year'] }, - color: { attach: ['Country'] } - }, - title: null, - geometry: 'line' - }, - style: { - legend: { - backgroundColor: 'rgb(180,180,180 )' - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Year'] }, + color: { attach: ['Country'] } + }, + title: null, + geometry: 'line' + }, + style: { + legend: { + backgroundColor: 'rgb(180,180,180 )' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs b/test/integration/test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs index e7ea4ecb7..a7ef91c05 100755 --- a/test/integration/test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs @@ -1,30 +1,30 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - attach: ['Joy factors', 'Value 2 (+)'], - range: { min: '0%', max: '107.5%' } - }, - x: { attach: ['Year'] }, - color: { attach: ['Joy factors'] } - }, - title: null, - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - marker: { - borderOpacity: 1 - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + attach: ['Joy factors', 'Value 2 (+)'], + range: { min: '0%', max: '107.5%' } + }, + x: { attach: ['Year'] }, + color: { attach: ['Joy factors'] } + }, + title: null, + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + marker: { + borderOpacity: 1 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/lay_out/plot_line_negative_2dis_1con.mjs b/test/integration/test_cases/lay_out/plot_line_negative_2dis_1con.mjs index 932cfcac1..46c90b023 100755 --- a/test/integration/test_cases/lay_out/plot_line_negative_2dis_1con.mjs +++ b/test/integration/test_cases/lay_out/plot_line_negative_2dis_1con.mjs @@ -1,25 +1,25 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Year'] }, - color: { attach: ['Country'] } - }, - title: null, - geometry: 'line', - legend: null - }, - style: { - legend: { - backgroundColor: 'rgb(180,180,180 )' - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Year'] }, + color: { attach: ['Country'] } + }, + title: null, + geometry: 'line', + legend: null + }, + style: { + legend: { + backgroundColor: 'rgb(180,180,180 )' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs b/test/integration/test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs index 55234018b..15face0a1 100755 --- a/test/integration/test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs @@ -1,30 +1,30 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { - attach: ['Joy factors', 'Value 2 (+)'], - range: { min: '0%', max: '107.5%' } - }, - x: { attach: ['Year'] }, - color: { attach: ['Joy factors'] } - }, - title: 'Stacked Coxcomb Chart', - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - marker: { - borderOpacity: 1 - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { + attach: ['Joy factors', 'Value 2 (+)'], + range: { min: '0%', max: '107.5%' } + }, + x: { attach: ['Year'] }, + color: { attach: ['Joy factors'] } + }, + title: 'Stacked Coxcomb Chart', + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + marker: { + borderOpacity: 1 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs b/test/integration/test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs index 2f3d04d06..a907d727a 100755 --- a/test/integration/test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs +++ b/test/integration/test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs @@ -1,25 +1,25 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: { attach: ['Year'] }, - color: { attach: ['Country'] } - }, - title: 'Line Chart with (-) Nums (2disc)', - geometry: 'line', - legend: null - }, - style: { - legend: { - backgroundColor: 'rgb(180,180,180 )' - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: { attach: ['Year'] }, + color: { attach: ['Country'] } + }, + title: 'Line Chart with (-) Nums (2disc)', + geometry: 'line', + legend: null + }, + style: { + legend: { + backgroundColor: 'rgb(180,180,180 )' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/all_operations.mjs b/test/integration/test_cases/operations/all_operations.mjs index f3486ffcb..cef981e9d 100755 --- a/test/integration/test_cases/operations/all_operations.mjs +++ b/test/integration/test_cases/operations/all_operations.mjs @@ -1,119 +1,119 @@ import { data } from '../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Values 1'] } - }, - title: 'A simple column chart.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Categ. Child'] }, - color: { attach: ['Categ. Parent'] } - }, - title: 'More categorical data series can be on the same channel.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Values 3', 'Timeseries', 'Categ. Child'] }, - y: { - set: ['Categ. Parent', 'Values 1'], - range: { min: '0%', max: '110%' } - }, - x: { set: ['Timeseries', 'Categ. Child'] }, - lightness: { set: ['Values 1'] } - }, - title: 'Getting back to the stacked column chart in one step.' - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: 9, - orientation: 'vertical', - angle: 3.14 * -1 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Values 3', 'Timeseries', 'Categ. Child'] }, - y: { - set: ['Categ. Parent', 'Categ. Child', 'Values 1'], - range: { min: '0%', max: '110%' } - }, - x: { set: ['Timeseries'] }, - lightness: { set: ['Values 1'] } - }, - title: 'Getting back to the stacked column chart in one step.' - }, - style: { - plot: { - marker: { - label: { - position: 'center', - fontSize: null, - orientation: null, - angle: null - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Child'] }, - lightness: { set: null } - }, - title: 'Getting back to the stacked column chart in one step.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] }, - x: { attach: ['Categ. Parent'] } - }, - title: 'Data can be grouped...' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Categ. Parent'] }, - y: { attach: ['Categ. Parent'] } - }, - title: '...or stacked, by putting a dimension from one axis to the other.' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Comparing ratios is just another option out of many more...', - align: 'stretch' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Values 1'] } + }, + title: 'A simple column chart.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Categ. Child'] }, + color: { attach: ['Categ. Parent'] } + }, + title: 'More categorical data series can be on the same channel.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Values 3', 'Timeseries', 'Categ. Child'] }, + y: { + set: ['Categ. Parent', 'Values 1'], + range: { min: '0%', max: '110%' } + }, + x: { set: ['Timeseries', 'Categ. Child'] }, + lightness: { set: ['Values 1'] } + }, + title: 'Getting back to the stacked column chart in one step.' + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: 9, + orientation: 'vertical', + angle: 3.14 * -1 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Values 3', 'Timeseries', 'Categ. Child'] }, + y: { + set: ['Categ. Parent', 'Categ. Child', 'Values 1'], + range: { min: '0%', max: '110%' } + }, + x: { set: ['Timeseries'] }, + lightness: { set: ['Values 1'] } + }, + title: 'Getting back to the stacked column chart in one step.' + }, + style: { + plot: { + marker: { + label: { + position: 'center', + fontSize: null, + orientation: null, + angle: null + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Child'] }, + lightness: { set: null } + }, + title: 'Getting back to the stacked column chart in one step.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] }, + x: { attach: ['Categ. Parent'] } + }, + title: 'Data can be grouped...' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Categ. Parent'] }, + y: { attach: ['Categ. Parent'] } + }, + title: '...or stacked, by putting a dimension from one axis to the other.' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Comparing ratios is just another option out of many more...', + align: 'stretch' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/all_operations_sizeing.mjs b/test/integration/test_cases/operations/all_operations_sizeing.mjs index 97e6a5972..5725b5849 100755 --- a/test/integration/test_cases/operations/all_operations_sizeing.mjs +++ b/test/integration/test_cases/operations/all_operations_sizeing.mjs @@ -1,186 +1,186 @@ import { data } from '../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Values 1'] } - }, - title: 'A simple column chart.', - legend: null - }, - style: { - fontSize: 12 - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] }, - color: { attach: ['Categ. Parent'] } - }, - title: 'A cross-metric added to the y-axis and the color channel.', - legend: 'color' - } - }), - (chart) => - chart.animate({ - config: { - channels: {}, - title: 'The geometric elements used can be changed to area...', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] } - }, - title: '...or line...', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] } - }, - title: '...or back to rectangle.', - geometry: 'rectangle' - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { detach: ['Values 1'] }, - x: { attach: ['Values 1'], range: { min: '0%', max: '110%' } } - }, - legend: null, - title: 'Values can be grouped by the other axis too.' - } - }, - { x: { easing: 'ease-in' } } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { detach: 'Timeseries' } - }, - title: 'Values can be grouped by the other axis too.' - } - }, - { x: { easing: 'ease-out' } } - ), - (chart) => - chart.animate({ - config: { - channels: { - x: { range: { min: '0%', max: '133.3%' } } - }, - title: 'Using polar coordinates instead of cartesian is also an option.', - coordSystem: 'polar', - legend: null - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: 'Timeseries' }, - lightness: { attach: ['Values 2'] } - }, - title: 'Values can be added to the lightness channel.', - legend: 'lightness' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] }, - x: { - detach: ['Values 1', 'Timeseries'], - range: { min: 'auto', max: 'auto' } - }, - size: { attach: ['Values 3', 'Timeseries'] } - }, - title: 'Charts can also exist without any data on the axes.', - legend: null, - coordSystem: 'cartesian' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Categ. Child'] } - }, - title: 'More categorical data series can be on the same channel.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Values 3', 'Timeseries', 'Categ. Child'] }, - y: { - attach: ['Categ. Parent', 'Categ. Child', 'Values 1'], - range: { min: '0%', max: '110%' } - }, - x: { attach: ['Timeseries'] }, - lightness: { detach: ['Values 2'] } - }, - legend: 'color', - title: 'Getting back to the stacked bar chart in one step.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Child'] } - }, - title: 'Getting back to the stacked bar chart in one step.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] }, - x: { attach: ['Categ. Parent'] } - }, - title: 'Data can be grouped...' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Categ. Parent'] }, - y: { attach: ['Categ. Parent'] } - }, - title: '...or stacked, by putting a dimension from one axis to the other.' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Comparing ratios is just another option out of many more...', - align: 'stretch' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Values 1'] } + }, + title: 'A simple column chart.', + legend: null + }, + style: { + fontSize: 12 + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] }, + color: { attach: ['Categ. Parent'] } + }, + title: 'A cross-metric added to the y-axis and the color channel.', + legend: 'color' + } + }), + (chart) => + chart.animate({ + config: { + channels: {}, + title: 'The geometric elements used can be changed to area...', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] } + }, + title: '...or line...', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] } + }, + title: '...or back to rectangle.', + geometry: 'rectangle' + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + y: { detach: ['Values 1'] }, + x: { attach: ['Values 1'], range: { min: '0%', max: '110%' } } + }, + legend: null, + title: 'Values can be grouped by the other axis too.' + } + }, + { x: { easing: 'ease-in' } } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { detach: 'Timeseries' } + }, + title: 'Values can be grouped by the other axis too.' + } + }, + { x: { easing: 'ease-out' } } + ), + (chart) => + chart.animate({ + config: { + channels: { + x: { range: { min: '0%', max: '133.3%' } } + }, + title: 'Using polar coordinates instead of cartesian is also an option.', + coordSystem: 'polar', + legend: null + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: 'Timeseries' }, + lightness: { attach: ['Values 2'] } + }, + title: 'Values can be added to the lightness channel.', + legend: 'lightness' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] }, + x: { + detach: ['Values 1', 'Timeseries'], + range: { min: 'auto', max: 'auto' } + }, + size: { attach: ['Values 3', 'Timeseries'] } + }, + title: 'Charts can also exist without any data on the axes.', + legend: null, + coordSystem: 'cartesian' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Categ. Child'] } + }, + title: 'More categorical data series can be on the same channel.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Values 3', 'Timeseries', 'Categ. Child'] }, + y: { + attach: ['Categ. Parent', 'Categ. Child', 'Values 1'], + range: { min: '0%', max: '110%' } + }, + x: { attach: ['Timeseries'] }, + lightness: { detach: ['Values 2'] } + }, + legend: 'color', + title: 'Getting back to the stacked bar chart in one step.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Child'] } + }, + title: 'Getting back to the stacked bar chart in one step.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] }, + x: { attach: ['Categ. Parent'] } + }, + title: 'Data can be grouped...' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Categ. Parent'] }, + y: { attach: ['Categ. Parent'] } + }, + title: '...or stacked, by putting a dimension from one axis to the other.' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Comparing ratios is just another option out of many more...', + align: 'stretch' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate.mjs b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate.mjs index 94537ef90..081a69040 100755 --- a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate.mjs +++ b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate.mjs @@ -1,42 +1,42 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Area - Aggregated.', - geometry: 'area', - legend: null - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] }, - color: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Area - Drill Down.', - legend: 'color' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] }, - color: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Area - Aggregated.', - legend: null - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Area - Aggregated.', + geometry: 'area', + legend: null + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] }, + color: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Area - Drill Down.', + legend: 'color' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] }, + color: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Area - Aggregated.', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate.mjs b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate.mjs index b79f7cf19..01fcb92ce 100755 --- a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate.mjs +++ b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Values 1'] }, - y: { attach: ['Values 2'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Categ. Parent'] }, - size: { attach: ['Values 3'] }, - label: { attach: ['Categ. Parent'] } - }, - title: '1. Operations: Circle - Aggregated.', - geometry: 'circle' - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { attach: ['Categ. Child'] } - }, - title: '2. Operations: Circle - Drill Down.' - } - }, - { duration: 0.3 } - ), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Categ. Child'] }, - noop: { attach: ['Categ. Child'] } - }, - title: '3. Operations: Circle - Drill Down.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { detach: ['Categ. Child'] }, - size: { attach: ['Categ. Child'] } - }, - title: '4. Operations: Circle - Aggregated.' - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { detach: ['Categ. Child'] } - }, - title: '5. Operations: Circle - Aggregated.' - } - }, - { duration: 0.3 } - ) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Values 1'] }, + y: { attach: ['Values 2'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Categ. Parent'] }, + size: { attach: ['Values 3'] }, + label: { attach: ['Categ. Parent'] } + }, + title: '1. Operations: Circle - Aggregated.', + geometry: 'circle' + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + size: { attach: ['Categ. Child'] } + }, + title: '2. Operations: Circle - Drill Down.' + } + }, + { duration: 0.3 } + ), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Categ. Child'] }, + noop: { attach: ['Categ. Child'] } + }, + title: '3. Operations: Circle - Drill Down.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + noop: { detach: ['Categ. Child'] }, + size: { attach: ['Categ. Child'] } + }, + title: '4. Operations: Circle - Aggregated.' + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + size: { detach: ['Categ. Child'] } + }, + title: '5. Operations: Circle - Aggregated.' + } + }, + { duration: 0.3 } + ) ] export default testSteps diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble.mjs b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble.mjs index 1946e4569..ad29f5924 100755 --- a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble.mjs +++ b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble.mjs @@ -1,37 +1,37 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - label: { attach: ['Values 1'] }, - color: { attach: ['Categ. Parent'] }, - size: { attach: ['Values 1'] } - }, - title: 'Bubble - Aggregated.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Categ. Child'] } - }, - title: 'Bubble - Drill Down.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Categ. Child'] } - }, - title: 'Bubble - Aggregated.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + label: { attach: ['Values 1'] }, + color: { attach: ['Categ. Parent'] }, + size: { attach: ['Values 1'] } + }, + title: 'Bubble - Aggregated.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Categ. Child'] } + }, + title: 'Bubble - Drill Down.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Categ. Child'] } + }, + title: 'Bubble - Aggregated.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x.mjs b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x.mjs index baf5d1fa9..aeae64355 100755 --- a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x.mjs +++ b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x.mjs @@ -1,57 +1,57 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries', 'Categ. Parent'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Line - Drilled Down - X axis.', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Categ. Parent'] }, - size: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Aggregated - X axis.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Drill Down - X axis.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Aggregated - X axis.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { attach: ['Categ. Parent'] }, - size: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Aggregated - X axis.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries', 'Categ. Parent'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Line - Drilled Down - X axis.', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Categ. Parent'] }, + size: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Aggregated - X axis.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Drill Down - X axis.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Aggregated - X axis.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { attach: ['Categ. Parent'] }, + size: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Aggregated - X axis.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y.mjs b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y.mjs index 8f2e19a25..3d4339ae0 100755 --- a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y.mjs +++ b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y.mjs @@ -1,59 +1,59 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Line - Aggregated - Y axis.', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Drill Down - Y axis.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Categ. Parent'] }, - color: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Drill Down - Y axis.', - legend: 'color' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - color: { detach: ['Categ. Parent'] }, - size: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Aggregated - Y axis.', - legend: null - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Aggregated - Y axis.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Line - Aggregated - Y axis.', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Drill Down - Y axis.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Categ. Parent'] }, + color: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Drill Down - Y axis.', + legend: 'color' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + color: { detach: ['Categ. Parent'] }, + size: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Aggregated - Y axis.', + legend: null + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Aggregated - Y axis.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X.mjs b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X.mjs index df0d25472..ef6527ec6 100755 --- a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X.mjs +++ b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X.mjs @@ -1,60 +1,60 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Rectangle - Aggregated - X axis.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] }, - color: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Rectangle - Drill Down - X axis.', - legend: 'color' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] }, - x: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Rectangle - Drill Down - X axis.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] }, - x: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Rectangle - Aggregated - X axis.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] }, - color: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Rectangle - Aggregated - X axis.', - legend: null - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Rectangle - Aggregated - X axis.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] }, + color: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Rectangle - Drill Down - X axis.', + legend: 'color' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] }, + x: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Rectangle - Drill Down - X axis.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] }, + x: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Rectangle - Aggregated - X axis.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] }, + color: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Rectangle - Aggregated - X axis.', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y.mjs b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y.mjs index b509fa0ef..dedd5d691 100755 --- a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y.mjs +++ b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y.mjs @@ -1,40 +1,40 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Rectangle - Aggregated.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] }, - color: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Rectangle - Drill Down.', - legend: 'color' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] }, - color: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Rectangle - Aggregated.', - legend: null - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Rectangle - Aggregated.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] }, + color: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Rectangle - Drill Down.', + legend: 'color' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] }, + color: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Rectangle - Aggregated.', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap.mjs b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap.mjs index 8bdcbf5bf..e49c7389e 100755 --- a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap.mjs +++ b/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap.mjs @@ -1,36 +1,36 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - label: { attach: ['Values 1'] }, - color: { attach: ['Categ. Parent'] }, - size: { attach: ['Values 1'] } - }, - title: 'Treemap - Aggregated.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Categ. Child'] } - }, - title: 'Treemap - Drill Down.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Categ. Child'] } - }, - title: 'Treemap - Aggregated.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + label: { attach: ['Values 1'] }, + color: { attach: ['Categ. Parent'] }, + size: { attach: ['Values 1'] } + }, + title: 'Treemap - Aggregated.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Categ. Child'] } + }, + title: 'Treemap - Drill Down.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Categ. Child'] } + }, + title: 'Treemap - Aggregated.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/area_filter_x.mjs b/test/integration/test_cases/operations/filter_tutorial_data/area_filter_x.mjs index 9135b8ce9..43270bfa9 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/area_filter_x.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/area_filter_x.mjs @@ -1,29 +1,29 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Timeseries', - y: ['Values 1', 'Categ. Parent'], - color: 'Categ. Parent', - label: 'Values 1' - }, - title: 'Operations: Area', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2020' - }, - config: { - title: 'Operations: Area - Filtered.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Timeseries', + y: ['Values 1', 'Categ. Parent'], + color: 'Categ. Parent', + label: 'Values 1' + }, + title: 'Operations: Area', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2020' + }, + config: { + title: 'Operations: Area - Filtered.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/area_filter_y.mjs b/test/integration/test_cases/operations/filter_tutorial_data/area_filter_y.mjs index 0e50aee05..5c4ae139b 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/area_filter_y.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/area_filter_y.mjs @@ -1,32 +1,33 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1', 'Categ. Parent'] }, - color: { - attach: ['Categ. Parent'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Area - Filter.', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record['Categ. Parent'] !== 'A' && record['Categ. Parent'] !== 'B' - }, - config: { - title: 'Operations: Area - Filtered.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1', 'Categ. Parent'] }, + color: { + attach: ['Categ. Parent'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Area - Filter.', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record['Categ. Parent'] !== 'A' && record['Categ. Parent'] !== 'B' + }, + config: { + title: 'Operations: Area - Filtered.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/circle_filter.mjs b/test/integration/test_cases/operations/filter_tutorial_data/circle_filter.mjs index 6671da2b8..49152e080 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/circle_filter.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/circle_filter.mjs @@ -1,30 +1,30 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Values 1'] }, - y: { attach: ['Values 2'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Timeseries'] }, - size: { attach: ['Values 3'] }, - noop: { attach: ['Categ. Child'] } - }, - title: 'Operations: Scatter Plot.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2021' - }, - config: { - title: 'Operations: Scatter Plot - Filtered.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Values 1'] }, + y: { attach: ['Values 2'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Timeseries'] }, + size: { attach: ['Values 3'] }, + noop: { attach: ['Categ. Child'] } + }, + title: 'Operations: Scatter Plot.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2021' + }, + config: { + title: 'Operations: Scatter Plot - Filtered.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/circle_filter_bubble.mjs b/test/integration/test_cases/operations/filter_tutorial_data/circle_filter_bubble.mjs index 29c59e4ef..8945a377f 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/circle_filter_bubble.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/circle_filter_bubble.mjs @@ -1,28 +1,28 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - label: { attach: ['Values 1'] }, - color: { attach: ['Timeseries'] }, - size: { attach: ['Values 1', 'Categ. Child'] } - }, - title: 'Operation: Bubble Chart.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2020' - }, - config: { - title: 'Operation: Bubble - Filtered.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + label: { attach: ['Values 1'] }, + color: { attach: ['Timeseries'] }, + size: { attach: ['Values 1', 'Categ. Child'] } + }, + title: 'Operation: Bubble Chart.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2020' + }, + config: { + title: 'Operation: Bubble - Filtered.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/filter_off_anim.mjs b/test/integration/test_cases/operations/filter_tutorial_data/filter_off_anim.mjs index 6646440c6..7b31e5b0c 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/filter_off_anim.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/filter_off_anim.mjs @@ -1,56 +1,56 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - lightness: { attach: ['Country'] }, - color: { attach: ['Value 5 (+/-)'] }, - size: { attach: ['Value 4 (+/-)'] }, - label: { attach: ['Country'] } - }, - title: 'Filter on', - legend: 'color', - geometry: 'circle' - }, - style: { - plot: { - marker: { - colorGradient: - '#3d51b8 0, #6389ec 0.15, #9fbffa 0.35, #d5d7d9 0.5, #f4b096 0.65, #e36c56 0.85, #ac1727 1' - } - } - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Denmark' && - record.Country !== 'Bulgaria' && - record.Country !== 'Lithuania' && - record.Country !== 'Croatia' && - record.Country !== 'Slovenia' && - record.Country !== 'Netherlands' - }, - config: { - title: 'Filtered' - } - }), - (chart) => - chart.animate({ - data: { - filter: null - }, - config: { - title: 'Filter off' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + lightness: { attach: ['Country'] }, + color: { attach: ['Value 5 (+/-)'] }, + size: { attach: ['Value 4 (+/-)'] }, + label: { attach: ['Country'] } + }, + title: 'Filter on', + legend: 'color', + geometry: 'circle' + }, + style: { + plot: { + marker: { + colorGradient: + '#3d51b8 0, #6389ec 0.15, #9fbffa 0.35, #d5d7d9 0.5, #f4b096 0.65, #e36c56 0.85, #ac1727 1' + } + } + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Denmark' && + record.Country !== 'Bulgaria' && + record.Country !== 'Lithuania' && + record.Country !== 'Croatia' && + record.Country !== 'Slovenia' && + record.Country !== 'Netherlands' + }, + config: { + title: 'Filtered' + } + }), + (chart) => + chart.animate({ + data: { + filter: null + }, + config: { + title: 'Filter off' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/line_filter_x.mjs b/test/integration/test_cases/operations/filter_tutorial_data/line_filter_x.mjs index 45d71fad2..883f01d1e 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/line_filter_x.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/line_filter_x.mjs @@ -1,32 +1,32 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1', 'Categ. Parent'] }, - color: { - attach: ['Categ. Parent'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Line - Filter.', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2021' - }, - config: { - title: 'Operations: Line - Filtered.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1', 'Categ. Parent'] }, + color: { + attach: ['Categ. Parent'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Line - Filter.', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2021' + }, + config: { + title: 'Operations: Line - Filtered.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/line_filter_y.mjs b/test/integration/test_cases/operations/filter_tutorial_data/line_filter_y.mjs index 31a507666..fab3c77d6 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/line_filter_y.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/line_filter_y.mjs @@ -1,33 +1,34 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1'] }, - color: { - attach: ['Categ. Parent'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Line - Filter.', - geometry: 'line' - // legend: 'color' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record['Categ. Parent'] !== 'A' && record['Categ. Parent'] !== 'B' - }, - config: { - title: 'Operations: Line - Filtered.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1'] }, + color: { + attach: ['Categ. Parent'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Line - Filter.', + geometry: 'line' + // legend: 'color' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record['Categ. Parent'] !== 'A' && record['Categ. Parent'] !== 'B' + }, + config: { + title: 'Operations: Line - Filtered.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_treemap.mjs b/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_treemap.mjs index b98711cad..7593e4f84 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_treemap.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_treemap.mjs @@ -1,27 +1,27 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - label: { attach: ['Values 1'] }, - color: { attach: ['Timeseries'] }, - size: { attach: ['Values 1', 'Categ. Child'] } - }, - title: 'Operation: Bubble Chart.' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2020' - }, - config: { - title: 'Operation: Bubble - Filtered.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + label: { attach: ['Values 1'] }, + color: { attach: ['Timeseries'] }, + size: { attach: ['Values 1', 'Categ. Child'] } + }, + title: 'Operation: Bubble Chart.' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2020' + }, + config: { + title: 'Operation: Bubble - Filtered.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_x.mjs b/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_x.mjs index 060f0fe1f..ba9d552ae 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_x.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_x.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1', 'Categ. Parent'] }, - color: { - attach: ['Categ. Parent'], - range: { min: '0%', max: '110%' } - }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Area - Filter.' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2020' - }, - config: { - title: 'Operations: Area - Filtered.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1', 'Categ. Parent'] }, + color: { + attach: ['Categ. Parent'], + range: { min: '0%', max: '110%' } + }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Area - Filter.' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Timeseries !== '2019' && record.Timeseries !== '2020' + }, + config: { + title: 'Operations: Area - Filtered.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_y.mjs b/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_y.mjs index 21080c178..a75fe57ac 100755 --- a/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_y.mjs +++ b/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_y.mjs @@ -1,28 +1,28 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Categ. Parent'] }, - y: { attach: ['Values 1', 'Timeseries'] }, - color: { attach: ['Timeseries'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Area - Filter.' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Timeseries !== '2018' && record.Timeseries !== '2021' - }, - config: { - title: 'Operations: Area - Filtered.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Categ. Parent'] }, + y: { attach: ['Values 1', 'Timeseries'] }, + color: { attach: ['Timeseries'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Area - Filter.' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Timeseries !== '2018' && record.Timeseries !== '2021' + }, + config: { + title: 'Operations: Area - Filtered.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/group_stack_tutorial_data/area_group_stack.mjs b/test/integration/test_cases/operations/group_stack_tutorial_data/area_group_stack.mjs index 90fcc74fd..e37fc622c 100755 --- a/test/integration/test_cases/operations/group_stack_tutorial_data/area_group_stack.mjs +++ b/test/integration/test_cases/operations/group_stack_tutorial_data/area_group_stack.mjs @@ -1,43 +1,43 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { - attach: ['Values 1', 'Categ. Parent'], - range: { min: '0%', max: '110%' } - }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Area - Stacked.', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Area - Groupped.', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Area - Stacked.', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { + attach: ['Values 1', 'Categ. Parent'], + range: { min: '0%', max: '110%' } + }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Area - Stacked.', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Area - Groupped.', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Area - Stacked.', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/group_stack_tutorial_data/bubble_group_stack.mjs b/test/integration/test_cases/operations/group_stack_tutorial_data/bubble_group_stack.mjs index b87dd58ad..babf42910 100755 --- a/test/integration/test_cases/operations/group_stack_tutorial_data/bubble_group_stack.mjs +++ b/test/integration/test_cases/operations/group_stack_tutorial_data/bubble_group_stack.mjs @@ -1,39 +1,39 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - size: { attach: ['Values 1', 'Timeseries', 'Categ. Parent'] }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Circle - Groupped.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Categ. Parent'] }, - noop: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Circle - Stacked.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Categ. Parent'] }, - noop: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Circle - Groupped.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + size: { attach: ['Values 1', 'Timeseries', 'Categ. Parent'] }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Circle - Groupped.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Categ. Parent'] }, + noop: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Circle - Stacked.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Categ. Parent'] }, + noop: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Circle - Groupped.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/group_stack_tutorial_data/line_group_stack.mjs b/test/integration/test_cases/operations/group_stack_tutorial_data/line_group_stack.mjs index 2497ea0b0..311faf3a5 100755 --- a/test/integration/test_cases/operations/group_stack_tutorial_data/line_group_stack.mjs +++ b/test/integration/test_cases/operations/group_stack_tutorial_data/line_group_stack.mjs @@ -1,41 +1,41 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { - attach: ['Values 1', 'Categ. Parent'], - range: { min: '0%', max: '110%' } - }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Line - Stacked.', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Groupped.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Line - Stacked.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { + attach: ['Values 1', 'Categ. Parent'], + range: { min: '0%', max: '110%' } + }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Line - Stacked.', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Groupped.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Line - Stacked.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/group_stack_tutorial_data/treemap_group_stack.mjs b/test/integration/test_cases/operations/group_stack_tutorial_data/treemap_group_stack.mjs index a1bbc5ada..f6b4efa71 100755 --- a/test/integration/test_cases/operations/group_stack_tutorial_data/treemap_group_stack.mjs +++ b/test/integration/test_cases/operations/group_stack_tutorial_data/treemap_group_stack.mjs @@ -1,39 +1,39 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - size: { attach: ['Values 1', 'Timeseries', 'Categ. Parent'] }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Circle - Groupped.', - geometry: 'rectangle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { detach: ['Categ. Parent'] }, - noop: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Circle - Stacked.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { attach: ['Categ. Parent'] }, - noop: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Circle - Groupped.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + size: { attach: ['Values 1', 'Timeseries', 'Categ. Parent'] }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Circle - Groupped.', + geometry: 'rectangle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { detach: ['Categ. Parent'] }, + noop: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Circle - Stacked.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { attach: ['Categ. Parent'] }, + noop: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Circle - Groupped.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/histogram_2_drilldown_negative_1dis_1con.mjs b/test/integration/test_cases/operations/histogram_2_drilldown_negative_1dis_1con.mjs index 4a9c554c6..b91dca30d 100755 --- a/test/integration/test_cases/operations/histogram_2_drilldown_negative_1dis_1con.mjs +++ b/test/integration/test_cases/operations/histogram_2_drilldown_negative_1dis_1con.mjs @@ -1,58 +1,58 @@ import { data } from '../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Year'] }, - y: { attach: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, - label: { attach: ['Value 2 (+)'] } - }, - title: 'Histogram with (-) Nums', - align: 'none' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Joy factors'] }, - color: { attach: ['Joy factors'] } - }, - title: 'Stacked', - legend: 'color' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - detach: ['Joy factors', 'Value 2 (+)'], - attach: ['Value 5 (+/-)'], - range: { min: '0%', max: '110%' } - }, - x: { attach: ['Joy factors'] }, - label: { detach: ['Value 2 (+)'], attach: ['Value 5 (+/-)'] } - }, - title: 'Grouped with (-) Nums', - split: true - }, - style: { - plot: { - marker: { - label: { - fontSize: 8, - position: 'top', - orientation: 'vertical', - angle: -1 * 3.14 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Year'] }, + y: { attach: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, + label: { attach: ['Value 2 (+)'] } + }, + title: 'Histogram with (-) Nums', + align: 'none' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Joy factors'] }, + color: { attach: ['Joy factors'] } + }, + title: 'Stacked', + legend: 'color' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { + detach: ['Joy factors', 'Value 2 (+)'], + attach: ['Value 5 (+/-)'], + range: { min: '0%', max: '110%' } + }, + x: { attach: ['Joy factors'] }, + label: { detach: ['Value 2 (+)'], attach: ['Value 5 (+/-)'] } + }, + title: 'Grouped with (-) Nums', + split: true + }, + style: { + plot: { + marker: { + label: { + fontSize: 8, + position: 'top', + orientation: 'vertical', + angle: -1 * 3.14 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/orientation_tutorial_data/area_orientation.mjs b/test/integration/test_cases/operations/orientation_tutorial_data/area_orientation.mjs index 408184452..1aa9f10cf 100755 --- a/test/integration/test_cases/operations/orientation_tutorial_data/area_orientation.mjs +++ b/test/integration/test_cases/operations/orientation_tutorial_data/area_orientation.mjs @@ -1,45 +1,45 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { - attach: ['Values 1', 'Categ. Parent'], - range: { min: '0%', max: '110%' } - }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Area - Orientation Change - No:1.', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Values 1'] }, - x: { attach: ['Values 1'] }, - color: { detach: ['Categ. Parent'], attach: ['Timeseries'] } - }, - title: 'Operations: Area - Orientation Change - No:2' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Values 1'] }, - y: { attach: ['Values 1'] }, - color: { detach: ['Timeseries'], attach: ['Categ. Parent'] } - }, - title: 'Operations: Area - Orientation Change - No:3' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { + attach: ['Values 1', 'Categ. Parent'], + range: { min: '0%', max: '110%' } + }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Area - Orientation Change - No:1.', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Values 1'] }, + x: { attach: ['Values 1'] }, + color: { detach: ['Categ. Parent'], attach: ['Timeseries'] } + }, + title: 'Operations: Area - Orientation Change - No:2' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Values 1'] }, + y: { attach: ['Values 1'] }, + color: { detach: ['Timeseries'], attach: ['Categ. Parent'] } + }, + title: 'Operations: Area - Orientation Change - No:3' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs b/test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs index e61353c76..1e83dd6bf 100755 --- a/test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs +++ b/test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs @@ -1,44 +1,44 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Line - Orientation Change - No:1.', - geometry: 'line', - orientation: 'horizontal' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Values 1'], range: { min: 'auto', max: 'auto' } }, - x: { attach: ['Values 1'] }, - color: { attach: ['Timeseries'] } - }, - title: 'Operations: Line - Orientation Change - No:2', - orientation: 'vertical' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Values 1'] }, - y: { attach: ['Values 1'] }, - color: { attach: ['Categ. Parent'] } - }, - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Line - Orientation Change - No:1.', + geometry: 'line', + orientation: 'horizontal' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Values 1'], range: { min: 'auto', max: 'auto' } }, + x: { attach: ['Values 1'] }, + color: { attach: ['Timeseries'] } + }, + title: 'Operations: Line - Orientation Change - No:2', + orientation: 'vertical' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Values 1'] }, + y: { attach: ['Values 1'] }, + color: { attach: ['Categ. Parent'] } + }, + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/orientation_tutorial_data/rectangle_orientation.mjs b/test/integration/test_cases/operations/orientation_tutorial_data/rectangle_orientation.mjs index 56e9bd972..e776164d6 100755 --- a/test/integration/test_cases/operations/orientation_tutorial_data/rectangle_orientation.mjs +++ b/test/integration/test_cases/operations/orientation_tutorial_data/rectangle_orientation.mjs @@ -1,43 +1,43 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { - attach: ['Values 1', 'Categ. Parent'], - range: { min: '0%', max: '110%' } - }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Rectangle - Orientation Change - No:1.' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Values 1'] }, - x: { attach: ['Values 1'] } - }, - title: 'Operations: Rectangle - Orientation Change - No:2' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { detach: ['Values 1'] }, - y: { attach: ['Values 1'] }, - color: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Rectangle - Orientation Change - No:3' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { + attach: ['Values 1', 'Categ. Parent'], + range: { min: '0%', max: '110%' } + }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Rectangle - Orientation Change - No:1.' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Values 1'] }, + x: { attach: ['Values 1'] } + }, + title: 'Operations: Rectangle - Orientation Change - No:2' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { detach: ['Values 1'] }, + y: { attach: ['Values 1'] }, + color: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Rectangle - Orientation Change - No:3' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/split_merge_tutorial_data/area_split_merge.mjs b/test/integration/test_cases/operations/split_merge_tutorial_data/area_split_merge.mjs index 139f024de..3d270d921 100755 --- a/test/integration/test_cases/operations/split_merge_tutorial_data/area_split_merge.mjs +++ b/test/integration/test_cases/operations/split_merge_tutorial_data/area_split_merge.mjs @@ -1,37 +1,37 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { - attach: ['Categ. Parent', 'Values 1'], - range: { min: '0%', max: '110%' } - }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Area - Merged.', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Operations: Area - Splitted.', - split: true - } - }), - (chart) => - chart.animate({ - config: { - title: 'Operations: Area - Merged.', - split: false - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { + attach: ['Categ. Parent', 'Values 1'], + range: { min: '0%', max: '110%' } + }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Area - Merged.', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Operations: Area - Splitted.', + split: true + } + }), + (chart) => + chart.animate({ + config: { + title: 'Operations: Area - Merged.', + split: false + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/split_merge_tutorial_data/circle_split_merge.mjs b/test/integration/test_cases/operations/split_merge_tutorial_data/circle_split_merge.mjs index cc8c35661..c18036c6f 100755 --- a/test/integration/test_cases/operations/split_merge_tutorial_data/circle_split_merge.mjs +++ b/test/integration/test_cases/operations/split_merge_tutorial_data/circle_split_merge.mjs @@ -1,43 +1,43 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Values 2'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Categ. Parent'] }, - size: { attach: ['Values 3'] }, - label: { attach: ['Categ. Child', 'Values 1'] } - }, - title: 'Operations: Circle - Merged.', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Circle - Splitted.', - orientation: 'horizontal', - split: true, - align: 'min' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent', 'Categ. Child'] } - }, - title: 'Operations: Circle - Merged.', - split: false - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Values 2'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Categ. Parent'] }, + size: { attach: ['Values 3'] }, + label: { attach: ['Categ. Child', 'Values 1'] } + }, + title: 'Operations: Circle - Merged.', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Circle - Splitted.', + orientation: 'horizontal', + split: true, + align: 'min' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent', 'Categ. Child'] } + }, + title: 'Operations: Circle - Merged.', + split: false + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/split_merge_tutorial_data/line_split_merge.mjs b/test/integration/test_cases/operations/split_merge_tutorial_data/line_split_merge.mjs index a7fc7ebf0..c69569cab 100755 --- a/test/integration/test_cases/operations/split_merge_tutorial_data/line_split_merge.mjs +++ b/test/integration/test_cases/operations/split_merge_tutorial_data/line_split_merge.mjs @@ -1,40 +1,40 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Area - Merged.', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { attach: ['Categ. Parent'] } - }, - title: 'Operations: Area - Splitted.', - split: true - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: { detach: ['Categ. Parent'] } - }, - title: 'Operations: Area - Merged.', - split: false - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { attach: ['Values 1'], range: { min: '0%', max: '110%' } }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Area - Merged.', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { attach: ['Categ. Parent'] } + }, + title: 'Operations: Area - Splitted.', + split: true + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: { detach: ['Categ. Parent'] } + }, + title: 'Operations: Area - Merged.', + split: false + } + }) ] export default testSteps diff --git a/test/integration/test_cases/operations/split_merge_tutorial_data/rectangle_split_merge.mjs b/test/integration/test_cases/operations/split_merge_tutorial_data/rectangle_split_merge.mjs index e935ad171..affa5d6fb 100755 --- a/test/integration/test_cases/operations/split_merge_tutorial_data/rectangle_split_merge.mjs +++ b/test/integration/test_cases/operations/split_merge_tutorial_data/rectangle_split_merge.mjs @@ -1,39 +1,39 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Timeseries'] }, - y: { - attach: ['Categ. Parent', 'Values 1'], - range: { min: '0%', max: '110%' } - }, - color: { attach: ['Categ. Parent'] }, - label: { attach: ['Values 1'] } - }, - title: 'Operations: Rectangle - Merged.', - geometry: 'rectangle' - } - }), - (chart) => - chart.animate({ - config: { - title: 'Operations: Rectangle - Splitted.', - split: true - }, - style: { plot: { marker: { label: { position: 'top' } } } } - }), - (chart) => - chart.animate({ - config: { - title: 'Operations: Rectangle - Merged.', - split: false - }, - style: { plot: { marker: { label: { position: null } } } } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Timeseries'] }, + y: { + attach: ['Categ. Parent', 'Values 1'], + range: { min: '0%', max: '110%' } + }, + color: { attach: ['Categ. Parent'] }, + label: { attach: ['Values 1'] } + }, + title: 'Operations: Rectangle - Merged.', + geometry: 'rectangle' + } + }), + (chart) => + chart.animate({ + config: { + title: 'Operations: Rectangle - Splitted.', + split: true + }, + style: { plot: { marker: { label: { position: 'top' } } } } + }), + (chart) => + chart.animate({ + config: { + title: 'Operations: Rectangle - Merged.', + split: false + }, + style: { plot: { marker: { label: { position: null } } } } + }) ] export default testSteps diff --git a/test/integration/test_cases/shorthands/column_shorthands.mjs b/test/integration/test_cases/shorthands/column_shorthands.mjs index a5d6b68bb..37ac8986b 100755 --- a/test/integration/test_cases/shorthands/column_shorthands.mjs +++ b/test/integration/test_cases/shorthands/column_shorthands.mjs @@ -3,48 +3,48 @@ import { data } from '../../test_data/chart_types_eu.mjs' let snapshot const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: ['Joy factors', 'Value 2 (+)'] }, - x: { attach: ['Country_code'] }, - color: { attach: ['Joy factors'] } - }, - title: 'Column Chart Stacked' - } - }), - (chart) => { - snapshot = chart.store() - return chart - }, - (chart) => - chart.animate({ - align: 'stretch' - }), - (chart) => - chart.animate({ - align: 'min' - }), - (chart) => - chart.animate({ - channels: { - x: { attach: 'Value 2 (+)' } - } - }), - (chart) => - chart.animate({ - y: 'Value 2 (+)', - x: ['Country_code', 'Joy factors'] - }), - (chart) => - chart.animate({ - style: { - 'plot.xAxis.label.fontSize': '70%' - } - }), - (chart) => chart.animate(snapshot) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: ['Joy factors', 'Value 2 (+)'] }, + x: { attach: ['Country_code'] }, + color: { attach: ['Joy factors'] } + }, + title: 'Column Chart Stacked' + } + }), + (chart) => { + snapshot = chart.store() + return chart + }, + (chart) => + chart.animate({ + align: 'stretch' + }), + (chart) => + chart.animate({ + align: 'min' + }), + (chart) => + chart.animate({ + channels: { + x: { attach: 'Value 2 (+)' } + } + }), + (chart) => + chart.animate({ + y: 'Value 2 (+)', + x: ['Country_code', 'Joy factors'] + }), + (chart) => + chart.animate({ + style: { + 'plot.xAxis.label.fontSize': '70%' + } + }), + (chart) => chart.animate(snapshot) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs index c555caad3..16e41b298 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Area Chart', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Area Chart', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_negative_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_negative_1dis_1con.mjs index d8273b18d..6f913f409 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_negative_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_negative_1dis_1con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - label: 'Value 5 (+/-)' - }, - title: 'Area Chart with (-) Nums', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + label: 'Value 5 (+/-)' + }, + title: 'Area Chart with (-) Nums', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs index 3ace6b2e0..cff8266ed 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs @@ -1,34 +1,34 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Country', - x: 'Value 5 (+/-)', - color: 'Country', - label: 'Value 5 (+/-)' - }, - title: 'Bar Chart with (-) Nums', - orientation: 'vertical' - }, - style: { - plot: { - yAxis: { - label: { - fontSize: 11 - } - }, - marker: { - label: { - fontSize: 10 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Country', + x: 'Value 5 (+/-)', + color: 'Country', + label: 'Value 5 (+/-)' + }, + title: 'Bar Chart with (-) Nums', + orientation: 'vertical' + }, + style: { + plot: { + yAxis: { + label: { + fontSize: 11 + } + }, + marker: { + label: { + fontSize: 10 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con.mjs index ead93ca12..bec813b30 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con.mjs @@ -1,30 +1,30 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Country', - x: ['Joy factors', 'Value 5 (+/-)'], - color: 'Country', - lightness: 'Joy factors' - }, - title: 'Stacked Bar Chart', - orientation: 'vertical', - legend: null - }, - style: { - plot: { - yAxis: { - label: { - fontSize: 11 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Country', + x: ['Joy factors', 'Value 5 (+/-)'], + color: 'Country', + lightness: 'Joy factors' + }, + title: 'Stacked Bar Chart', + orientation: 'vertical', + legend: null + }, + style: { + plot: { + yAxis: { + label: { + fontSize: 11 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con.mjs index 8c39700ed..3284c0943 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con.mjs @@ -1,30 +1,30 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 5 (+/-)', - x: ['Joy factors', 'Country'], - color: 'Joy factors', - label: 'Value 5 (+/-)' - }, - title: 'Grouped Column Chart with (-) Nums' - }, - style: { - plot: { - marker: { - label: { - fontSize: 7, - orientation: 'vertical', - angle: 3.14 * -1 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 5 (+/-)', + x: ['Joy factors', 'Country'], + color: 'Joy factors', + label: 'Value 5 (+/-)' + }, + title: 'Grouped Column Chart with (-) Nums' + }, + style: { + plot: { + marker: { + label: { + fontSize: 7, + orientation: 'vertical', + angle: 3.14 * -1 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs index 87794e743..f986c1810 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs @@ -1,18 +1,18 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Column Chart Stacked' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Column Chart Stacked' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con.mjs index 085977abc..c3bfef29d 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con.mjs @@ -1,20 +1,20 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Country', 'Year', 'Value 5 (+/-)'], - x: 'Country_code', - color: 'Country_code', - lightness: 'Value 5 (+/-)' - }, - title: 'Stacked Column Chart with (-) Numbers', - legend: 'lightness' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Country', 'Year', 'Value 5 (+/-)'], + x: 'Country_code', + color: 'Country_code', + lightness: 'Value 5 (+/-)' + }, + title: 'Stacked Column Chart with (-) Numbers', + legend: 'lightness' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con.mjs index 3636455f7..7cda381d6 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con.mjs @@ -1,20 +1,20 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Value 5 (+/-)', 'Country_code'], - x: ['Year', 'Joy factors'], - color: 'Country_code', - size: ['Country_code', 'Value 2 (+)'], - noop: 'Year' - }, - title: 'Stacked Column Chart with (-) Nums' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Value 5 (+/-)', 'Country_code'], + x: ['Year', 'Joy factors'], + color: 'Country_code', + size: ['Country_code', 'Value 2 (+)'], + noop: 'Year' + }, + title: 'Stacked Column Chart with (-) Nums' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs index 640fb51b3..81510db7c 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs @@ -1,17 +1,17 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Year', 'Value 5 (+/-)'] - }, - title: 'DotPlot with (-) Nums', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Year', 'Value 5 (+/-)'] + }, + title: 'DotPlot with (-) Nums', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs index edf5825f9..6c8ba4c94 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs @@ -1,18 +1,18 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - label: 'Value 5 (+/-)' - }, - title: 'Histogram with (-) Nums' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + label: 'Value 5 (+/-)' + }, + title: 'Histogram with (-) Nums' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs index 71d792d31..911b23714 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs @@ -1,34 +1,34 @@ import { data } from '../../../test_data/icicle.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors/Country', 'Value 2 (+)'], - y: { - set: ['Type', 'index'], - title: 'Editable title', - range: { min: '0%', max: '100%' } - }, - label: 'Joy factors/Country', - color: 'Joy factors/Country' - }, - orientation: 'vertical', - title: 'Icicle chart' - }, - style: { - plot: { - marker: { - label: { - orientation: 'vertical', - angle: 3.14 * -1 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors/Country', 'Value 2 (+)'], + y: { + set: ['Type', 'index'], + title: 'Editable title', + range: { min: '0%', max: '100%' } + }, + label: 'Joy factors/Country', + color: 'Joy factors/Country' + }, + orientation: 'vertical', + title: 'Icicle chart' + }, + style: { + plot: { + marker: { + label: { + orientation: 'vertical', + angle: 3.14 * -1 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_1dis_1con.mjs index ab85c865e..03621e24d 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_1dis_1con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - label: 'Value 5 (+/-)' - }, - title: 'Line Chart with (-) Nums', - geometry: 'line' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + label: 'Value 5 (+/-)' + }, + title: 'Line Chart with (-) Nums', + geometry: 'line' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_2dis_1con.mjs index ef17f0f31..c64ed6154 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_2dis_1con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 5 (+/-)', - x: 'Year', - color: 'Country' - }, - title: 'Line Chart with (-) Nums (2disc)', - geometry: 'line' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 5 (+/-)', + x: 'Year', + color: 'Country' + }, + title: 'Line Chart with (-) Nums (2disc)', + geometry: 'line' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs index 38a5da684..9edeadcc3 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs @@ -1,25 +1,25 @@ import { data } from '../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country === 'Bulgaria' || - record.Country === 'Germany' || - record.Country === 'Malta' || - record.Country === 'Lithuania' // Csak ezek látszódjanak.; + record.Country === 'Bulgaria' || + record.Country === 'Germany' || + record.Country === 'Malta' || + record.Country === 'Lithuania' // Csak ezek látszódjanak.; const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 1 (+)', - x: ['Country', 'Value 2 (+)'], - color: 'Country', - label: ['Value 2 (+)', 'Country'] - }, - title: 'Mekko chart' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 1 (+)', + x: ['Country', 'Value 2 (+)'], + color: 'Country', + label: ['Value 2 (+)', 'Country'] + }, + title: 'Mekko chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs index 16f72f0c2..7c50d9545 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs @@ -1,25 +1,25 @@ import { data } from '../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country === 'Bulgaria' || - record.Country === 'Germany' || - record.Country === 'Malta' || - record.Country === 'Lithuania' + record.Country === 'Bulgaria' || + record.Country === 'Germany' || + record.Country === 'Malta' || + record.Country === 'Lithuania' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - x: ['Country', 'Value 2 (+)'], - color: 'Joy factors', - label: ['Value 2 (+)', 'Country'] - }, - title: 'Stacked Mekko chart' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + x: ['Country', 'Value 2 (+)'], + color: 'Joy factors', + label: ['Value 2 (+)', 'Country'] + }, + title: 'Stacked Mekko chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs index a323c7a2b..8ab7819bf 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - label: 'Value 5 (+/-)' - }, - title: 'Scatterplot', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + label: 'Value 5 (+/-)' + }, + title: 'Scatterplot', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs index a138bacad..f66633fe1 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs @@ -1,21 +1,21 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 6 (+/-)', - y: 'Value 5 (+/-)', - noop: 'Year', - label: 'Year' - }, - title: 'Scatterplot with (-) Nums', - geometry: 'circle', - coordSystem: 'cartesian' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 6 (+/-)', + y: 'Value 5 (+/-)', + noop: 'Year', + label: 'Year' + }, + title: 'Scatterplot with (-) Nums', + geometry: 'circle', + coordSystem: 'cartesian' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs index 3e2af4e5f..632e91c9d 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs @@ -1,21 +1,21 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 5 (+/-)', - x: 'Value 6 (+/-)', - color: 'Country', - size: 'Value 4 (+/-)', - label: 'Value 5 (+/-)' - }, - title: 'Scatterplot with (-) Nums', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 5 (+/-)', + x: 'Value 6 (+/-)', + color: 'Country', + size: 'Value 4 (+/-)', + label: 'Value 5 (+/-)' + }, + title: 'Scatterplot with (-) Nums', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs index 82e0ba145..fc5311b1e 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Country', 'Value 5 (+/-)'], - x: 'Year', - color: 'Country' - }, - title: 'Stacked Area Chart with (-) Nums', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Country', 'Value 5 (+/-)'], + x: 'Year', + color: 'Country' + }, + title: 'Stacked Area Chart with (-) Nums', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con.mjs index 733739dc9..412a9f09e 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con.mjs @@ -1,30 +1,30 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Year', 'Value 5 (+/-)'], - y: ['Country', 'Year'], - color: 'Country', - lightness: 'Value 6 (+/-)' - }, - title: 'Sample Waterfall', - orientation: 'vertical', - legend: null - }, - style: { - plot: { - yAxis: { - label: { - fontSize: 10 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Year', 'Value 5 (+/-)'], + y: ['Country', 'Year'], + color: 'Country', + lightness: 'Value 6 (+/-)' + }, + title: 'Sample Waterfall', + orientation: 'vertical', + legend: null + }, + style: { + plot: { + yAxis: { + label: { + fontSize: 10 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs index c6c1536e7..9f37e537d 100755 --- a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs @@ -3,29 +3,29 @@ import { data } from '../../../test_data/chart_types_eu.mjs' data.filter = (record) => record.Country === 'Belgium' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Year', 'Value 5 (+/-)'], - x: 'Year', - color: 'Country', - label: 'Value 5 (+/-)' - }, - title: 'Waterfall Chart with (-) Nums (Belgium)', - legend: null - }, - style: { - plot: { - marker: { - label: { - position: 'top' - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Year', 'Value 5 (+/-)'], + x: 'Year', + color: 'Country', + label: 'Value 5 (+/-)' + }, + title: 'Waterfall Chart with (-) Nums (Belgium)', + legend: null + }, + style: { + plot: { + marker: { + label: { + position: 'top' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs index 1f8cfab72..4c58a4d66 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs @@ -1,20 +1,20 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Country', 'Value 2 (+)'], - x: 'Year', - color: 'Country' - }, - title: 'Area Spiderweb (fake. no multiaxes)', - geometry: 'area', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Country', 'Value 2 (+)'], + x: 'Year', + color: 'Country' + }, + title: 'Area Spiderweb (fake. no multiaxes)', + geometry: 'area', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs index 7204673d2..4f8c2d552 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs @@ -1,20 +1,20 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 2 (+)', - x: 'Year', - color: 'Country' - }, - title: 'Spiderweb (fake. no multiaxes)', - geometry: 'line', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 2 (+)', + x: 'Year', + color: 'Country' + }, + title: 'Spiderweb (fake. no multiaxes)', + geometry: 'line', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs index 98b448313..80d36e8a4 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs @@ -1,28 +1,28 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 2 (+)', - x: 'Joy factors', - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Coxcomb Chart', - orientation: 'horizontal', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: 0 - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 2 (+)', + x: 'Joy factors', + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Coxcomb Chart', + orientation: 'horizontal', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: 0 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs index 90501ed2f..5e6860a47 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs @@ -1,26 +1,26 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - x: 'Year', - color: 'Joy factors' - }, - title: 'Stacked Coxcomb Chart', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: 0.1 - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + x: 'Year', + color: 'Joy factors' + }, + title: 'Stacked Coxcomb Chart', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: 0.1 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs index f9cfc7ab6..a28ddfd09 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs @@ -1,26 +1,26 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - x: ['Year', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stacked Coxcomb Chart', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - borderOpacity: 1 - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + x: ['Year', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stacked Coxcomb Chart', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + borderOpacity: 1 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con.mjs index 520ee1328..8c6338d6c 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { set: ['Joy factors'], range: { min: '-30%' } }, - x: { set: ['Value 2 (+)'], range: { max: '133%' } }, - color: 'Joy factors' - }, - title: 'Radial Chart', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { set: ['Joy factors'], range: { min: '-30%' } }, + x: { set: ['Value 2 (+)'], range: { max: '133%' } }, + color: 'Joy factors' + }, + title: 'Radial Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con.mjs index 4afb11381..5f3ba061b 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { set: 'Joy factors', range: { min: '-30%' } }, - x: { set: ['Country', 'Value 2 (+)'], range: { max: '133%' } }, - color: 'Country' - }, - title: 'Radial Chart (2disc)', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { set: 'Joy factors', range: { min: '-30%' } }, + x: { set: ['Country', 'Value 2 (+)'], range: { max: '133%' } }, + color: 'Country' + }, + title: 'Radial Chart (2disc)', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs index 7c0f98733..e88204c12 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs @@ -1,29 +1,29 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { set: ['Year'], range: { min: '-20%' } }, - x: { set: ['Country', 'Value 2 (+)'], range: { max: '133%' } }, - color: 'Country', - lightness: 'Year' - }, - title: 'Stacked Radial Chart', - coordSystem: 'polar' - }, - style: { - plot: { - yAxis: { - label: { - fontSize: 8 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { set: ['Year'], range: { min: '-20%' } }, + x: { set: ['Country', 'Value 2 (+)'], range: { max: '133%' } }, + color: 'Country', + lightness: 'Year' + }, + title: 'Stacked Radial Chart', + coordSystem: 'polar' + }, + style: { + plot: { + yAxis: { + label: { + fontSize: 8 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs index 7cd0fdb37..64e4855e3 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: { set: 'Value 2 (+)', range: { max: '130%' } }, - label: 'Value 2 (+)' - }, - title: 'Spiderweb Area (not a real Spider)', - legend: null, - geometry: 'area', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential', - angle: 3.14 * -0.5 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: { set: 'Value 2 (+)', range: { max: '130%' } }, + label: 'Value 2 (+)' + }, + title: 'Spiderweb Area (not a real Spider)', + legend: null, + geometry: 'area', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential', + angle: 3.14 * -0.5 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs index c91aa0c2e..d8b1d678f 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: { set: ['Value 2 (+)'], range: { min: '0%', max: '130%' } }, - label: 'Value 2 (+)' - }, - title: 'Spiderweb 1Line (fake. no multiaxes)', - align: 'none', - geometry: 'line', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential', - angle: 3.14 * -0.5 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: { set: ['Value 2 (+)'], range: { min: '0%', max: '130%' } }, + label: 'Value 2 (+)' + }, + title: 'Spiderweb 1Line (fake. no multiaxes)', + align: 'none', + geometry: 'line', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential', + angle: 3.14 * -0.5 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con.mjs index 9efa5de82..1eee4bc9a 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con.mjs @@ -1,39 +1,39 @@ import { data } from '../../../test_data/sunburst.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors/Country', 'Value 2 (+)'], - y: ['Type', 'index'], - label: 'Joy factors/Country', - color: 'Joy factors/Country' - }, - title: 'Sunburst chart', - orientation: 'vertical', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential', - angle: 3.14 * -0.5 - } - }, - yAxis: { - title: { - color: '#ffffff00' - }, - label: { - color: '#ffffff00' - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors/Country', 'Value 2 (+)'], + y: ['Type', 'index'], + label: 'Joy factors/Country', + color: 'Joy factors/Country' + }, + title: 'Sunburst chart', + orientation: 'vertical', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential', + angle: 3.14 * -0.5 + } + }, + yAxis: { + title: { + color: '#ffffff00' + }, + label: { + color: '#ffffff00' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con.mjs b/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con.mjs index a750fb278..8f2bb9a73 100755 --- a/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con.mjs +++ b/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con.mjs @@ -1,40 +1,40 @@ import { data } from '../../../test_data/sunburst.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors/Country', 'Value 2 (+)'], - y: ['Type', 'index'], - label: 'Joy factors/Country', - color: 'Joy factors/Country', - lightness: 'Value 5 (+/-)' - }, - title: 'Sunburst chart (a hierarchikus adatok szétszedése, még hack!)', - orientation: 'vertical', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential', - angle: 3.14 * -0.5 - } - }, - yAxis: { - title: { - color: '#ffffff00' - }, - label: { - color: '#ffffff00' - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors/Country', 'Value 2 (+)'], + y: ['Type', 'index'], + label: 'Joy factors/Country', + color: 'Joy factors/Country', + lightness: 'Value 5 (+/-)' + }, + title: 'Sunburst chart (a hierarchikus adatok szétszedése, még hack!)', + orientation: 'vertical', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential', + angle: 3.14 * -0.5 + } + }, + yAxis: { + title: { + color: '#ffffff00' + }, + label: { + color: '#ffffff00' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_1dis_2con.mjs b/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_1dis_2con.mjs index d223836cf..84e543115 100755 --- a/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_1dis_2con.mjs +++ b/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_1dis_2con.mjs @@ -1,20 +1,20 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Country', - label: 'Country_code', - lightness: 'Value 5 (+/-)', - size: 'Value 5 (+/-)' - }, - title: 'Bubble Chart', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Country', + label: 'Country_code', + lightness: 'Value 5 (+/-)', + size: 'Value 5 (+/-)' + }, + title: 'Bubble Chart', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_1con.mjs index 441fa6f07..0a0e89792 100755 --- a/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_1con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: ['Country_code', 'Value 2 (+)'], - label: 'Country_code' - }, - title: 'Bubble chart', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: ['Country_code', 'Value 2 (+)'], + label: 'Country_code' + }, + title: 'Bubble chart', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_2con.mjs b/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_2con.mjs index defea7f4a..bdbd0b952 100755 --- a/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_2con.mjs +++ b/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_2con.mjs @@ -1,20 +1,20 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: ['Country_code', 'Value 2 (+)'], - label: 'Country_code', - lightness: 'Value 4 (+/-)' - }, - title: 'Bubble Chart', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: ['Country_code', 'Value 2 (+)'], + label: 'Country_code', + lightness: 'Value 4 (+/-)' + }, + title: 'Bubble Chart', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con.mjs b/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con.mjs index b1ed350c2..631d2240e 100755 --- a/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con.mjs @@ -1,18 +1,18 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: ['Value 2 (+)', 'Country_code'], - label: 'Country_code' - }, - title: 'Treemap (Stacked)' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: ['Value 2 (+)', 'Country_code'], + label: 'Country_code' + }, + title: 'Treemap (Stacked)' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con.mjs b/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con.mjs index 63e57877c..c180f2936 100755 --- a/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con.mjs +++ b/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: ['Value 2 (+)', 'Country_code'], - label: 'Country_code', - lightness: 'Value 2 (+)' - }, - title: 'Treemap (Stacked+2conti)' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: ['Value 2 (+)', 'Country_code'], + label: 'Country_code', + lightness: 'Value 2 (+)' + }, + title: 'Treemap (Stacked+2conti)' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/test_cases.json b/test/integration/test_cases/test_cases.json index dc872a525..f43d8f315 100644 --- a/test/integration/test_cases/test_cases.json +++ b/test/integration/test_cases/test_cases.json @@ -1,3296 +1,3296 @@ { - "suite": "/test/integration/test_cases", - "test": { - "basic_animations/anim_order/circle_without_2_carte_horizontal": { - "refs": ["be265b7"] - }, - "basic_animations/anim_order/circle_without_2_carte_vertical": { - "refs": ["e4972d8"] - }, - "basic_animations/anim_order/rectangle_without_2_carte_bar": { - "refs": ["77b7809"] - }, - "basic_animations/anim_order/rectangle_without_2_carte_column": { - "refs": ["33a9773"] - }, - "basic_animations/anim_order/rectangle_without_2_polar_bar": { - "refs": ["a1535ae"] - }, - "basic_animations/anim_order/rectangle_without_2_polar_column": { - "refs": ["244cc5f"] - }, - "basic_animations/coordsystems/area_carte_2_polar": { - "refs": ["7b3d87d"] - }, - "basic_animations/coordsystems/circle_without_2_carte": { - "refs": ["44524c8"] - }, - "basic_animations/coordsystems/rectangle_carte_2_polar": { - "refs": ["6109049"] - }, - "basic_animations/coordsystems/rectangle_without_2_carte": { - "refs": ["00e5959"] - }, - "basic_animations/coordsystems/rectangle_without_2_polar": { - "refs": ["5bfd4e0"] - }, - "basic_animations/labels/axis/circle_negative_2dis_3con": { - "refs": ["6d34d02"] - }, - "basic_animations/labels/marker/area_2dis_3con": { - "refs": ["39a8de7"] - }, - "basic_animations/labels/marker/circle_negative_2dis_3con": { - "refs": ["db72798"] - }, - "basic_animations/labels/marker/line_2dis_3con": { - "refs": ["a1c8ac0"] - }, - "basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con": { - "refs": ["5df3408"] - }, - "basic_animations/labels/marker/rectangle_negative_2dis_3con": { - "refs": ["1d1c034"] - }, - "basic_animations/labels/rectangle_labels_rotated_charts": { - "refs": ["6ee1ac0"] - }, - "basic_animations/legend_transitions/color_2discrete_anim": { - "refs": ["955eea3"] - }, - "basic_animations/legend_transitions/color_conti_anim": { - "refs": ["adbb6e4"] - }, - "basic_animations/legend_transitions/color_conti_changes_anim": { - "refs": ["10078ce"] - }, - "basic_animations/legend_transitions/color_conti_discrete_anim": { - "refs": ["89c4261"] - }, - "basic_animations/legend_transitions/color_discrete_anim": { - "refs": ["1b4fabb"] - }, - "basic_animations/legend_transitions/color_discrete_changes_anim": { - "refs": ["4ce6aaf"] - }, - "basic_animations/legend_transitions/color_off_on_anim": { - "refs": ["5156dd2"] - }, - "basic_animations/legend_transitions/color_off_on_series_anim": { - "refs": ["a92829f"] - }, - "basic_animations/legend_transitions/lightness_2discrete_anim": { - "refs": ["89207bf"] - }, - "basic_animations/legend_transitions/lightness_conti_anim": { - "refs": ["1d574aa"] - }, - "basic_animations/legend_transitions/lightness_conti_discrete_anim": { - "refs": ["3d1d378"] - }, - "basic_animations/legend_transitions/lightness_discrete_anim": { - "refs": ["53d1e59"] - }, - "basic_animations/legend_transitions/lightness_on_off_anim": { - "refs": ["cb29658"] - }, - "basic_animations/legend_transitions/size_2discrete_anim": { - "refs": ["9faecfd"] - }, - "basic_animations/legend_transitions/size_conti_anim": { - "refs": ["bfd8d87"] - }, - "basic_animations/legend_transitions/size_conti_discrete_anim": { - "refs": ["4f2d0d6"] - }, - "basic_animations/legend_transitions/size_discrete_anim": { - "refs": ["dc1bff3"] - }, - "basic_animations/legend_transitions/size_on_off_anim": { - "refs": ["927adbc"] - }, - "basic_animations/markers_morph/marker_trans_neg_1dis_1con": { - "refs": ["b51fba3"] - }, - "basic_animations/someOtherTests/merge_split_area_stream_2dis_1con": { - "refs": ["940d210"] - }, - "basic_animations/someOtherTests/total_time_area_bar": { - "refs": ["4503ca5"] - }, - "basic_animations/someOtherTests/total_time_area_column": { - "refs": ["1b27db5"] - }, - "basic_animations/someOtherTests/total_time_bar_line": { - "refs": ["5fe98b0"] - }, - "basic_animations/someOtherTests/total_time_column_line": { - "refs": ["3037126"] - }, - "chart_precision/area_negative_x": { - "refs": ["7b8bffc"] - }, - "chart_precision/area_negative_y": { - "refs": ["3d11d78"] - }, - "chart_precision/area_x": { - "refs": ["39d462f"] - }, - "chart_precision/area_y": { - "refs": ["66772c7"] - }, - "chart_precision/bubble": { - "refs": ["17230b5"] - }, - "chart_precision/circle": { - "refs": ["357570e"] - }, - "chart_precision/circle_negative": { - "refs": ["e4f4797"] - }, - "chart_precision/column_color_gradient": { - "refs": ["f3ce43a"] - }, - "chart_precision/column_lightness": { - "refs": ["9f4f365"] - }, - "chart_precision/line_negative_x": { - "refs": ["19a1d4d"] - }, - "chart_precision/line_negative_y": { - "refs": ["8f6c794"] - }, - "chart_precision/line_x": { - "refs": ["78fa5d0"] - }, - "chart_precision/line_y": { - "refs": ["ab1f390"] - }, - "chart_precision/rectangle_negative_x": { - "refs": ["be1c257"] - }, - "chart_precision/rectangle_negative_y": { - "refs": ["7fc8e3f"] - }, - "chart_precision/rectangle_x": { - "refs": ["b1ee211"] - }, - "chart_precision/rectangle_y": { - "refs": ["eef87c9"] - }, - "chart_precision/treemap": { - "refs": ["0061505"] - }, - "color_palettes/color_conti_gradient": { - "refs": ["42fb179"] - }, - "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["db55dd3"] - }, - "data_fault_and_formats/column_rectangle_more_conti": { - "refs": ["c2c2362"] - }, - "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["2d933e7"] - }, - "data_fault_and_formats/rectangle_data_cube": { - "refs": ["4b66407"] - }, - "lay_out/full_coxcomb_rectangle_2dis_1con": { - "refs": ["997f1a7"] - }, - "lay_out/full_line_negative_2dis_1con": { - "refs": ["7111815"] - }, - "lay_out/legend_plot_coxcomb_rectangle_2dis_1con": { - "refs": ["01b0b8e"] - }, - "lay_out/legend_plot_line_negative_2dis_1con": { - "refs": ["49cdf02"] - }, - "lay_out/plot_coxcomb_rectangle_2dis_1con": { - "refs": ["797b1fa"] - }, - "lay_out/plot_line_negative_2dis_1con": { - "refs": ["735c487"] - }, - "lay_out/title_plot_coxcomb_rectangle_2dis_1con": { - "refs": ["05811b7"] - }, - "lay_out/title_plot_line_negative_2dis_1con": { - "refs": ["138491d"] - }, - "operations/all_operations": { - "refs": ["4263129"] - }, - "operations/all_operations_sizeing": { - "refs": ["95d6654"] - }, - "operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate": { - "refs": ["8f3c3b6"] - }, - "operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate": { - "refs": ["a423365"] - }, - "operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble": { - "refs": ["d5dacd9"] - }, - "operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x": { - "refs": ["4ff6dbf"] - }, - "operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y": { - "refs": ["494cd94"] - }, - "operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X": { - "refs": ["3265d36"] - }, - "operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y": { - "refs": ["b14dc97"] - }, - "operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap": { - "refs": ["5bfecc2"] - }, - "operations/filter_tutorial_data/area_filter_x": { - "refs": ["25cc4ed"] - }, - "operations/filter_tutorial_data/area_filter_y": { - "refs": ["501cb83"] - }, - "operations/filter_tutorial_data/circle_filter": { - "refs": ["92a7475"] - }, - "operations/filter_tutorial_data/circle_filter_bubble": { - "refs": ["8620cfc"] - }, - "operations/filter_tutorial_data/filter_off_anim": { - "refs": ["c48435b"] - }, - "operations/filter_tutorial_data/line_filter_x": { - "refs": ["a4449ee"] - }, - "operations/filter_tutorial_data/line_filter_y": { - "refs": ["335d151"] - }, - "operations/filter_tutorial_data/rectangle_filter_treemap": { - "refs": ["7f5a115"] - }, - "operations/filter_tutorial_data/rectangle_filter_x": { - "refs": ["95625ae"] - }, - "operations/filter_tutorial_data/rectangle_filter_y": { - "refs": ["574aec3"] - }, - "operations/group_stack_tutorial_data/area_group_stack": { - "refs": ["f09dec1"] - }, - "operations/group_stack_tutorial_data/bubble_group_stack": { - "refs": ["36813ef"] - }, - "operations/group_stack_tutorial_data/line_group_stack": { - "refs": ["f0a40ec"] - }, - "operations/group_stack_tutorial_data/treemap_group_stack": { - "refs": ["fc6a0ae"] - }, - "operations/histogram_2_drilldown_negative_1dis_1con": { - "refs": ["8b3e947"] - }, - "operations/orientation_tutorial_data/area_orientation": { - "refs": ["b61766f"] - }, - "operations/orientation_tutorial_data/line_orientation": { - "refs": ["6e4f82e"] - }, - "operations/orientation_tutorial_data/rectangle_orientation": { - "refs": ["5af7144"] - }, - "operations/split_merge_tutorial_data/area_split_merge": { - "refs": ["6684e0d"] - }, - "operations/split_merge_tutorial_data/circle_split_merge": { - "refs": ["bb1ddf8"] - }, - "operations/split_merge_tutorial_data/line_split_merge": { - "refs": ["da6acc3"] - }, - "operations/split_merge_tutorial_data/rectangle_split_merge": { - "refs": ["ab5615c"] - }, - "shorthands/column_shorthands": { - "refs": ["00fe9df"] - }, - "static_chart_types/cartesian_coo_sys/area_1dis_1con": { - "refs": ["4454f52"] - }, - "static_chart_types/cartesian_coo_sys/area_negative_1dis_1con": { - "refs": ["62508e4"] - }, - "static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con": { - "refs": ["c3ab106"] - }, - "static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con": { - "refs": ["ebf168e"] - }, - "static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con": { - "refs": ["529d7da"] - }, - "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con": { - "refs": ["795ad09"] - }, - "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con": { - "refs": ["cd2b76f"] - }, - "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con": { - "refs": ["c71a56a"] - }, - "static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con": { - "refs": ["3aa634d"] - }, - "static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con": { - "refs": ["3fb1574"] - }, - "static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con": { - "refs": ["9d0d00a"] - }, - "static_chart_types/cartesian_coo_sys/line_negative_1dis_1con": { - "refs": ["2ceb802"] - }, - "static_chart_types/cartesian_coo_sys/line_negative_2dis_1con": { - "refs": ["3966d03"] - }, - "static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con": { - "refs": ["1108d45"] - }, - "static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con": { - "refs": ["2b1607f"] - }, - "static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con": { - "refs": ["8bb0676"] - }, - "static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con": { - "refs": ["fdfd809"] - }, - "static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con": { - "refs": ["93b7b2b"] - }, - "static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con": { - "refs": ["2ea83ca"] - }, - "static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con": { - "refs": ["c07818d"] - }, - "static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con": { - "refs": ["01da8f6"] - }, - "static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con": { - "refs": ["ee1c839"] - }, - "static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con": { - "refs": ["72bf791"] - }, - "static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con": { - "refs": ["19bd382"] - }, - "static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con": { - "refs": ["a4f5dec"] - }, - "static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con": { - "refs": ["d383cc0"] - }, - "static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con": { - "refs": ["67005d1"] - }, - "static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con": { - "refs": ["8ef2262"] - }, - "static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con": { - "refs": ["3948d0b"] - }, - "static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con": { - "refs": ["d7aeeb1"] - }, - "static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con": { - "refs": ["bb63562"] - }, - "static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con": { - "refs": ["c249f22"] - }, - "static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con": { - "refs": ["4d70a3c"] - }, - "static_chart_types/without_coo_sys/bubble_circle_1dis_2con": { - "refs": ["d844063"] - }, - "static_chart_types/without_coo_sys/bubble_circle_2dis_1con": { - "refs": ["2c9a31d"] - }, - "static_chart_types/without_coo_sys/bubble_circle_2dis_2con": { - "refs": ["cb16853"] - }, - "static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con": { - "refs": ["f7608b8"] - }, - "static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con": { - "refs": ["1f9bf87"] - }, - "web_content/analytical_operations/change_dimension/area_polar_stacked": { - "refs": ["def2298"] - }, - "web_content/analytical_operations/change_dimension/area_stacked": { - "refs": ["018f892"] - }, - "web_content/analytical_operations/change_dimension/column_stacked": { - "refs": ["f666c2a"] - }, - "web_content/analytical_operations/change_dimension/dotplot_1": { - "refs": ["ece5e2c"] - }, - "web_content/analytical_operations/change_dimension/dotplot_2": { - "refs": ["54fde50"] - }, - "web_content/analytical_operations/change_dimension/dotplot_polar": { - "refs": ["e0a2880"] - }, - "web_content/analytical_operations/change_dimension/line": { - "refs": ["fe5c424"] - }, - "web_content/analytical_operations/change_dimension/line_polar": { - "refs": ["9003b50"] - }, - "web_content/analytical_operations/compare/area_100percent_stacked": { - "refs": ["ae1efbc"] - }, - "web_content/analytical_operations/compare/area_polar_split": { - "refs": ["3ed985a"] - }, - "web_content/analytical_operations/compare/area_polar_stacked": { - "refs": ["b697914"] - }, - "web_content/analytical_operations/compare/area_split_stacked": { - "refs": ["f134d84"] - }, - "web_content/analytical_operations/compare/area_stacked": { - "refs": ["3264c93"] - }, - "web_content/analytical_operations/compare/column_100percent_stacked": { - "refs": ["b887eaa"] - }, - "web_content/analytical_operations/compare/column_groupped_1": { - "refs": ["1a662ea"] - }, - "web_content/analytical_operations/compare/column_groupped_2": { - "refs": ["30a2a9d"] - }, - "web_content/analytical_operations/compare/column_split_stacked_1": { - "refs": ["028b5f4"] - }, - "web_content/analytical_operations/compare/column_split_stacked_2": { - "refs": ["402a583"] - }, - "web_content/analytical_operations/compare/column_stacked_1": { - "refs": ["41b1a4e"] - }, - "web_content/analytical_operations/compare/column_stacked_2": { - "refs": ["812c194"] - }, - "web_content/analytical_operations/compare/coxcomb_1": { - "refs": ["68b44ab"] - }, - "web_content/analytical_operations/compare/coxcomb_2": { - "refs": ["7c30c03"] - }, - "web_content/analytical_operations/compare/line": { - "refs": ["8198112"] - }, - "web_content/analytical_operations/compare/line_polar": { - "refs": ["03a5cfe"] - }, - "web_content/analytical_operations/compare/stream_stacked": { - "refs": ["f7f0fde"] - }, - "web_content/analytical_operations/compare/waterfall": { - "refs": ["16a3b23"] - }, - "web_content/analytical_operations/distribute/existingmeasure_area_stacked": { - "refs": ["84be0b1"] - }, - "web_content/analytical_operations/distribute/existingmeasure_bubble": { - "refs": ["ac20402"] - }, - "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1": { - "refs": ["70bdcce"] - }, - "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2": { - "refs": ["1ce90c2"] - }, - "web_content/analytical_operations/distribute/existingmeasure_column_stacked": { - "refs": ["ab90c67"] - }, - "web_content/analytical_operations/distribute/existingmeasure_coxcomb": { - "refs": ["dee091c"] - }, - "web_content/analytical_operations/distribute/existingmeasure_dotplot": { - "refs": ["4f4bc72"] - }, - "web_content/analytical_operations/distribute/existingmeasure_scatterplot": { - "refs": ["90ef2ac"] - }, - "web_content/analytical_operations/distribute/existingmeasure_scatterplot_split": { - "refs": ["e705f72"] - }, - "web_content/analytical_operations/distribute/existingmeasure_treemap_stacked": { - "refs": ["1d75210"] - }, - "web_content/analytical_operations/distribute/newmeasure_column": { - "refs": ["2a392a8"] - }, - "web_content/analytical_operations/distribute/newmeasure_column_split_stacked": { - "refs": ["4e42333"] - }, - "web_content/analytical_operations/distribute/newmeasure_column_stacked": { - "refs": ["17b70ff"] - }, - "web_content/analytical_operations/distribute/newmeasure_dotplot_1": { - "refs": ["56f8887"] - }, - "web_content/analytical_operations/distribute/newmeasure_dotplot_2": { - "refs": ["7d277a4"] - }, - "web_content/analytical_operations/distribute/newmeasure_dotplot_3": { - "refs": ["e579936"] - }, - "web_content/analytical_operations/distribute/newmeasure_dotplot_4": { - "refs": ["6f9a654"] - }, - "web_content/analytical_operations/drilldown/area": { - "refs": ["b9a4259"] - }, - "web_content/analytical_operations/drilldown/area_polar": { - "refs": ["35b7681"] - }, - "web_content/analytical_operations/drilldown/bubble_and_distribution": { - "refs": ["17b4851"] - }, - "web_content/analytical_operations/drilldown/column_1": { - "refs": ["8b635e9"] - }, - "web_content/analytical_operations/drilldown/column_2": { - "refs": ["a088dc3"] - }, - "web_content/analytical_operations/drilldown/column_3": { - "refs": ["2c51570"] - }, - "web_content/analytical_operations/drilldown/column_4": { - "refs": ["512091a"] - }, - "web_content/analytical_operations/drilldown/column_stacked": { - "refs": ["dcadb20"] - }, - "web_content/analytical_operations/drilldown/donut": { - "refs": ["10db8a3"] - }, - "web_content/analytical_operations/drilldown/line_1": { - "refs": ["5d0b4ca"] - }, - "web_content/analytical_operations/drilldown/line_2": { - "refs": ["4bb8e34"] - }, - "web_content/analytical_operations/drilldown/line_polar_1": { - "refs": ["8d3ec8e"] - }, - "web_content/analytical_operations/drilldown/line_polar_2": { - "refs": ["26d8f0b"] - }, - "web_content/analytical_operations/drilldown/radial": { - "refs": ["bd556a5"] - }, - "web_content/analytical_operations/drilldown/scatterplot": { - "refs": ["34d1b1c"] - }, - "web_content/analytical_operations/filter/area_polar_stacked": { - "refs": ["e04af22"] - }, - "web_content/analytical_operations/filter/area_stacked": { - "refs": ["9647e35"] - }, - "web_content/analytical_operations/filter/line": { - "refs": ["4b47ba3"] - }, - "web_content/analytical_operations/filter/line_polar": { - "refs": ["669fa0b"] - }, - "web_content/analytical_operations/filter/stream_1": { - "refs": ["8d33040"] - }, - "web_content/analytical_operations/filter/stream_2": { - "refs": ["42eb797"] - }, - "web_content/analytical_operations/misc/donut_to_coxcomb": { - "refs": ["0c8aacf"] - }, - "web_content/analytical_operations/misc/orientation_marimekko": { - "refs": ["03cf1fb"] - }, - "web_content/analytical_operations/misc/pie_to_donut": { - "refs": ["f20e8be"] - }, - "web_content/analytical_operations/misc/make_space_with_polar": { - "refs": ["e1404a0"] - }, - "web_content/analytical_operations/split/area_polar_stacked": { - "refs": ["1f3406a"] - }, - "web_content/analytical_operations/split/area_stacked": { - "refs": ["fb84b42"] - }, - "web_content/analytical_operations/split/column_100percent_stacked": { - "refs": ["787bdff"] - }, - "web_content/analytical_operations/split/column_stacked": { - "refs": ["1e004a2"] - }, - "web_content/analytical_operations/split/coxcomb": { - "refs": ["fb8bcf1"] - }, - "web_content/analytical_operations/split/radial_stacked": { - "refs": ["adf92b7"] - }, - "web_content/analytical_operations/split/scatterplot_1": { - "refs": ["e05a92c"] - }, - "web_content/analytical_operations/split/scatterplot_2": { - "refs": ["12bf6f0"] - }, - "web_content/analytical_operations/stretch_to_proportion/area_stacked": { - "refs": ["c1c8d86"] - }, - "web_content/analytical_operations/stretch_to_proportion/column_groupped": { - "refs": ["96b9af3"] - }, - "web_content/analytical_operations/stretch_to_proportion/column_split_stacked": { - "refs": ["c4722ca"] - }, - "web_content/analytical_operations/stretch_to_proportion/column_stacked": { - "refs": ["3079652"] - }, - "web_content/analytical_operations/stretch_to_proportion/line": { - "refs": ["3ced485"] - }, - "web_content/analytical_operations/sum/area_100percent_stacked": { - "refs": ["4fe46e1"] - }, - "web_content/analytical_operations/sum/area_polar_split": { - "refs": ["e04e94d"] - }, - "web_content/analytical_operations/sum/area_polar_stacked": { - "refs": ["d35db18"] - }, - "web_content/analytical_operations/sum/area_split": { - "refs": ["0b319b5"] - }, - "web_content/analytical_operations/sum/area_stacked": { - "refs": ["66eb65d"] - }, - "web_content/analytical_operations/sum/bubble": { - "refs": ["1597bbf"] - }, - "web_content/analytical_operations/sum/bubble_to_column": { - "refs": ["e2bf91b"] - }, - "web_content/analytical_operations/sum/bubble_to_coxcomb": { - "refs": ["4010e8a"] - }, - "web_content/analytical_operations/sum/bubble_to_radial": { - "refs": ["adeac72"] - }, - "web_content/analytical_operations/sum/bubbleplot_1": { - "refs": ["122fa97"] - }, - "web_content/analytical_operations/sum/bubbleplot_2": { - "refs": ["fd48ec4"] - }, - "web_content/analytical_operations/sum/bubbleplot_to_radial": { - "refs": ["1547dae"] - }, - "web_content/analytical_operations/sum/column_100percent_stacked": { - "refs": ["8584e94"] - }, - "web_content/analytical_operations/sum/column_1": { - "refs": ["d8122ee"] - }, - "web_content/analytical_operations/sum/column_2": { - "refs": ["ee6e53a"] - }, - "web_content/analytical_operations/sum/column_to_bar": { - "refs": ["5cdbbca"] - }, - "web_content/analytical_operations/sum/column_to_waterfall": { - "refs": ["14f44ce"] - }, - "web_content/analytical_operations/sum/column_groupped": { - "refs": ["21e1ef1"] - }, - "web_content/analytical_operations/sum/column_split_stacked": { - "refs": ["030e269"] - }, - "web_content/analytical_operations/sum/column_stacked_1": { - "refs": ["23fb364"] - }, - "web_content/analytical_operations/sum/column_stacked_2": { - "refs": ["561a3ac"] - }, - "web_content/analytical_operations/sum/coxcomb_1": { - "refs": ["a8bea47"] - }, - "web_content/analytical_operations/sum/coxcomb_2": { - "refs": ["3ece925"] - }, - "web_content/analytical_operations/sum/coxcomb_split": { - "refs": ["dc1c419"] - }, - "web_content/analytical_operations/sum/dotplot": { - "refs": ["fc87038"] - }, - "web_content/analytical_operations/sum/line_1": { - "refs": ["685b0bd"] - }, - "web_content/analytical_operations/sum/line_2": { - "refs": ["eaa8a78"] - }, - "web_content/analytical_operations/sum/line_polar_1": { - "refs": ["f4e3003"] - }, - "web_content/analytical_operations/sum/line_polar_2": { - "refs": ["92631b9"] - }, - "web_content/analytical_operations/sum/scatterplot_polar": { - "refs": ["41b15a6"] - }, - "web_content/analytical_operations/sum/scatterplot": { - "refs": ["eda6d14"] - }, - "web_content/analytical_operations/sum/stream_stacked": { - "refs": ["28bf2a4"] - }, - "web_content/analytical_operations/sum/treemap": { - "refs": ["7f0cd74"] - }, - "web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con": { - "refs": ["bccd4e0"] - }, - "web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con": { - "refs": ["3a1a33b"] - }, - "web_content_removed/animated/composition_percentage_area_stream_3dis_1con": { - "refs": ["9e0b9a3"] - }, - "web_content_removed/animated/composition_percentage_column_3dis_1con": { - "refs": ["a1eb52f"] - }, - "web_content_removed/animated/composition_percentage_column_stream_3dis_1con": { - "refs": ["0a4f1a3"] - }, - "web_content_removed/animated/distribution_relationship_dotplot_dotplot": { - "refs": ["9bf8509"] - }, - "web_content_removed/animated/drill_aggreg_improve_line": { - "refs": ["54718c2"] - }, - "web_content_removed/animated/drilldown_aggregate_line": { - "refs": ["47693ee"] - }, - "web_content_removed/animated/merge_split_area_stream_3dis_1con": { - "refs": ["a691f16"] - }, - "web_content_removed/animated/merge_split_bar": { - "refs": ["939e0c4"] - }, - "web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con": { - "refs": ["01dae3c"] - }, - "web_content_removed/animated/orientation_circle": { - "refs": ["3b8a0c3"] - }, - "web_content_removed/animated/orientation_dot_circle": { - "refs": ["f1f3f7b"] - }, - "web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con": { - "refs": ["176fbdc"] - }, - "web_content_removed/animated/orientation_rectangle": { - "refs": ["24c160b"] - }, - "web_content_removed/animated/pie_donut2_rectangle_1dis_1con": { - "refs": ["0554a81"] - }, - "web_content_removed/animated/relationship_comparison_circle_2_bubble_plot": { - "refs": ["e76689d"] - }, - "web_content_removed/animated/relationship_total_bubble_plot_column": { - "refs": ["ae768b7"] - }, - "web_content_removed/animated/stack_group_area_line": { - "refs": ["a9baae0"] - }, - "web_content_removed/animated/stack_group_circle": { - "refs": ["c593f63"] - }, - "web_content_removed/animated/stack_group_treemap": { - "refs": ["839e607"] - }, - "web_content_removed/animated/total_element_bubble_2_bar": { - "refs": ["4f0c0dd"] - }, - "web_content_removed/animated/total_element_bubble_column": { - "refs": ["de3e165"] - }, - "web_content_removed/animated/treemap_radial": { - "refs": ["1913066"] - }, - "web_content_removed/animated/zoom_area": { - "refs": ["e7ad338"] - }, - "web_content_removed/animated/zoom_area_polar": { - "refs": ["f415237"] - }, - "web_content_removed/animated/zoom_line": { - "refs": ["7029760"] - }, - "web_content_removed/animated/zoom_line_polar": { - "refs": ["e104842"] - }, - "web_content/infinite": { - "refs": ["f9fb8da"] - }, - "web_content/presets/chart/column": { - "refs": ["6ba52a1"] - }, - "web_content/presets/chart/column_grouped": { - "refs": ["8005217"] - }, - "web_content/presets/chart/column_stacked": { - "refs": ["b60b323"] - }, - "web_content/presets/chart/column_splitted": { - "refs": ["e3d2e97"] - }, - "web_content/presets/chart/column_percentage": { - "refs": ["2a4d819"] - }, - "web_content/presets/chart/waterfall": { - "refs": ["143534a"] - }, - "web_content/presets/chart/mekko_stacked": { - "refs": ["ea834e5"] - }, - "web_content/presets/chart/marimekko": { - "refs": ["3b849f9"] - }, - "web_content/presets/chart/bar": { - "refs": ["9259b11"] - }, - "web_content/presets/chart/bar_grouped": { - "refs": ["75ecafc"] - }, - "web_content/presets/chart/bar_stacked": { - "refs": ["6b7d439"] - }, - "web_content/presets/chart/bar_splitted": { - "refs": ["f9b0c05"] - }, - "web_content/presets/chart/bar_percentage": { - "refs": ["2d8b5a1"] - }, - "web_content/presets/chart/lollipop": { - "refs": ["34fb91f"] - }, - "web_content/presets/plot/scatter": { - "refs": ["da33180"] - }, - "web_content/presets/plot/bubble": { - "refs": ["bd30c91"] - }, - "web_content/presets/chart/area": { - "refs": ["f7e4ce0"] - }, - "web_content/presets/chart/area_stacked": { - "refs": ["56d80ec"] - }, - "web_content/presets/chart/area_percentage": { - "refs": ["18ed5c6"] - }, - "web_content/presets/chart/area_splitted": { - "refs": ["379b15d"] - }, - "web_content/presets/graph/stream": { - "refs": ["615796b"] - }, - "web_content/presets/graph/stream_vertical": { - "refs": ["61c1430"] - }, - "web_content/presets/graph/violin": { - "refs": ["2931418"] - }, - "web_content/presets/graph/violin_vertical": { - "refs": ["118b2d9"] - }, - "web_content/presets/chart/line": { - "refs": ["831b02b"] - }, - "web_content/presets/chart/line_vertical": { - "refs": ["fd0d49c"] - }, - "web_content/presets/chart/pie": { - "refs": ["df9fb71"] - }, - "web_content/presets/chart/column_polar": { - "refs": ["0b9ecf8"] - }, - "web_content/presets/chart/column_polar_stacked": { - "refs": ["441ce16"] - }, - "web_content/presets/chart/pie_variable_radius": { - "refs": ["f450f9a"] - }, - "web_content/presets/chart/bar_radial": { - "refs": ["3b02c1b"] - }, - "web_content/presets/chart/bar_radial_stacked": { - "refs": ["a206518"] - }, - "web_content/presets/chart/donut": { - "refs": ["cc028a2"] - }, - "web_content/presets/chart/donut_nested": { - "refs": ["c808b6a"] - }, - "web_content/presets/plot/scatter_polar": { - "refs": ["33dcb3c"] - }, - "web_content/presets/chart/line_polar": { - "refs": ["612c32a"] - }, - "web_content/presets/treemap": { - "refs": ["bec5c68"] - }, - "web_content/presets/treemap_stacked": { - "refs": ["6ad6c69"] - }, - "web_content/presets/heatmap": { - "refs": ["3900bac"] - }, - "web_content/presets/chart/bubble": { - "refs": ["04134d0"] - }, - "web_content/presets/chart/bubble_stacked": { - "refs": ["cd1f691"] - }, - "web_content/presets_config/chart/bubble_stacked": { - "refs": ["cd1f691"] - }, - "web_content/static/chart/area": { - "refs": ["d1a82ab"] - }, - "web_content/static/chart/bar": { - "refs": ["e04d06b"] - }, - "web_content/static/chart/column": { - "refs": ["6ba52a1"] - }, - "web_content/static/chart/column_grouped": { - "refs": ["4b5078a"] - }, - "web_content/static/chart/column_single_stacked": { - "refs": ["0ddd341"] - }, - "web_content/static/chart/column_stacked": { - "refs": ["514bf91"] - }, - "web_content/static/plot/dot": { - "refs": ["13ff196"] - }, - "web_content/static/histogram": { - "refs": ["6a15362"] - }, - "web_content/static/chart/line_single": { - "refs": ["76160aa"] - }, - "web_content/static/chart/line": { - "refs": ["f191779"] - }, - "web_content/static/chart/marimekko": { - "refs": ["c4ca935"] - }, - "web_content/static/chart/mekko": { - "refs": ["1557736"] - }, - "web_content/static/plot/scatter": { - "refs": ["e3ffc41"] - }, - "web_content/static/plot/bubble": { - "refs": ["2b6b83d"] - }, - "web_content/static/chart/area_stacked": { - "refs": ["56d80ec"] - }, - "web_content/static/chart/mekko_stacked": { - "refs": ["67962d3"] - }, - "web_content/static/graph/stream_stacked": { - "refs": ["6539993"] - }, - "web_content/static/chart/waterfall": { - "refs": ["cbe8a00"] - }, - "web_content/static/chart/line_polar": { - "refs": ["1446255"] - }, - "web_content/static/chart/coxcomb": { - "refs": ["7f7dcf2"] - }, - "web_content/static/chart/donut": { - "refs": ["0483912"] - }, - "web_content/static/chart/pie": { - "refs": ["df9fb71"] - }, - "web_content/static/chart/bar_radial": { - "refs": ["9ca4172"] - }, - "web_content/static/chart/bar_stacked_radial": { - "refs": ["c065549"] - }, - "web_content/static/chart/area_polar": { - "refs": ["ab642f5"] - }, - "web_content/static/chart/line_single_polar": { - "refs": ["e5e646f"] - }, - "web_content/static/chart/bubble": { - "refs": ["04134d0"] - }, - "web_content/static/chart/bubble_stacked": { - "refs": ["ffab4dd"] - }, - "web_content/static/treemap": { - "refs": ["67aa3ab"] - }, - "web_content/static/treemap_stacked": { - "refs": ["6ad6c69"] - }, - "ww_animTiming/descartes-polar/01_d-p_r-r-r": { - "refs": ["613bd08"] - }, - "ww_animTiming/descartes-polar/02_d-p_c-r-c": { - "refs": ["4545f3a"] - }, - "ww_animTiming/descartes-polar/03_d-p_a-r-a": { - "refs": ["336378d"] - }, - "ww_animTiming/descartes-polar/04_d-p_l-r-l": { - "refs": ["25e86bc"] - }, - "ww_animTiming/descartes-polar/05_d-p_r-c-r": { - "refs": ["b65d696"] - }, - "ww_animTiming/descartes-polar/06_d-p_c-c-c": { - "refs": ["495e636"] - }, - "ww_animTiming/descartes-polar/07_d-p_a-c-a": { - "refs": ["2003df2"] - }, - "ww_animTiming/descartes-polar/08_d-p_l-c-l": { - "refs": ["d067431"] - }, - "ww_animTiming/descartes-polar/09_d-p_r-a-r": { - "refs": ["9027d67"] - }, - "ww_animTiming/descartes-polar/10_d-p_c-a-c": { - "refs": ["8ee3908"] - }, - "ww_animTiming/descartes-polar/11_d-p_a-a-a": { - "refs": ["324bf4b"] - }, - "ww_animTiming/descartes-polar/12_d-p_l-a-l": { - "refs": ["21ad937"] - }, - "ww_animTiming/descartes-polar/13_d-p_r-l-r": { - "refs": ["a491f75"] - }, - "ww_animTiming/descartes-polar/14_d-p_c-l-c": { - "refs": ["03bd776"] - }, - "ww_animTiming/descartes-polar/15_d-p_a-l-a": { - "refs": ["e0bfdbc"] - }, - "ww_animTiming/descartes-polar/16_d-p_l-l-l": { - "refs": ["6cae5be"] - }, - "ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r": { - "refs": ["a01ddc2"] - }, - "ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c": { - "refs": ["0e357e4"] - }, - "ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a": { - "refs": ["cb40a47"] - }, - "ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l": { - "refs": ["b0b1acf"] - }, - "ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r": { - "refs": ["bf1adce"] - }, - "ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c": { - "refs": ["9104d61"] - }, - "ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a": { - "refs": ["234adf8"] - }, - "ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l": { - "refs": ["19fe21a"] - }, - "ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r": { - "refs": ["490574c"] - }, - "ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c": { - "refs": ["f7abd23"] - }, - "ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a": { - "refs": ["5a28ea8"] - }, - "ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l": { - "refs": ["3692ff5"] - }, - "ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r": { - "refs": ["e81aa3f"] - }, - "ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c": { - "refs": ["8be0c6b"] - }, - "ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a": { - "refs": ["f5e6ec2"] - }, - "ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l": { - "refs": ["4ddf6f4"] - }, - "ww_animTiming/descartes/02_d-d_c-r-c": { - "refs": ["25c0583"] - }, - "ww_animTiming/descartes/03_d-d_a-r-a": { - "refs": ["880ecc2"] - }, - "ww_animTiming/descartes/04_d-d_l-r-l": { - "refs": ["e728acc"] - }, - "ww_animTiming/descartes/07_d-d_a-c-a": { - "refs": ["34d4dba"] - }, - "ww_animTiming/descartes/08_d-d_l-c-l": { - "refs": ["a735c11"] - }, - "ww_animTiming/descartes/12_d-d_l-a-l": { - "refs": ["fc111f1"] - }, - "ww_animTiming/descartes/easing_test": { - "refs": ["5695b12"] - }, - "ww_animTiming/descartes_orientation/01_d-d_o_r-r-r": { - "refs": ["a7933b3"] - }, - "ww_animTiming/descartes_orientation/02_d-d_o_c-r-c": { - "refs": ["9716305"] - }, - "ww_animTiming/descartes_orientation/03_d-d_o_a-r-a": { - "refs": ["ae14867"] - }, - "ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split": { - "refs": ["29a5549"] - }, - "ww_animTiming/descartes_orientation/04_d-d_o_l-r-l": { - "refs": ["f0011a3"] - }, - "ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked": { - "refs": ["0cd3931"] - }, - "ww_animTiming/descartes_orientation/05_d-d_o_r-c-r": { - "refs": ["e54cc3c"] - }, - "ww_animTiming/descartes_orientation/06_d-d_o_c-c-c": { - "refs": ["e61f19f"] - }, - "ww_animTiming/descartes_orientation/07_d-d_o_a-c-a": { - "refs": ["dfce038"] - }, - "ww_animTiming/descartes_orientation/08_d-d_o_l-c-l": { - "refs": ["2a406ab"] - }, - "ww_animTiming/descartes_orientation/09_d-d_o_r-a-r": { - "refs": ["1b7d7ea"] - }, - "ww_animTiming/descartes_orientation/10_d-d_o_c-a-c": { - "refs": ["a043e0e"] - }, - "ww_animTiming/descartes_orientation/11_d-d_o_a-a-a": { - "refs": ["2791f1a"] - }, - "ww_animTiming/descartes_orientation/12_d-d_o_l-a-l": { - "refs": ["5d82e8b"] - }, - "ww_animTiming/descartes_orientation/13_d-d_o_r-l-r": { - "refs": ["e5faf5b"] - }, - "ww_animTiming/descartes_orientation/14_d-d_o_c-l-c": { - "refs": ["6ceebca"] - }, - "ww_animTiming/descartes_orientation/15_d-d_o_a-l-a": { - "refs": ["e7fe673"] - }, - "ww_animTiming/descartes_orientation/16_d-d_o_l-l-l": { - "refs": ["85c78fe"] - }, - "ww_animTiming/polar/02_p-p_c-r-c": { - "refs": ["ecf9842"] - }, - "ww_animTiming/polar/03_p-p_a-r-a": { - "refs": ["e422d17"] - }, - "ww_animTiming/polar/04_p-p_l-r-l": { - "refs": ["d88b358"] - }, - "ww_animTiming/polar/07_p-p_a-c-a": { - "refs": ["e72a90b"] - }, - "ww_animTiming/polar/08_p-p_l-c-l": { - "refs": ["0a11f41"] - }, - "ww_animTiming/polar/12_p-p_l-a-l": { - "refs": ["6c796d3"] - }, - "ww_animTiming/polar_orientation/01_p-p_o_r-r-r": { - "refs": ["bdd4d8e"] - }, - "ww_animTiming/polar_orientation/02_p-p_o_c-r-c": { - "refs": ["db60d86"] - }, - "ww_animTiming/polar_orientation/03_p-p_o_a-r-a": { - "refs": ["6bff356"] - }, - "ww_animTiming/polar_orientation/04_p-p_o_l-r-l": { - "refs": ["57bc900"] - }, - "ww_animTiming/polar_orientation/05_p-p_o_r-c-r": { - "refs": ["1046707"] - }, - "ww_animTiming/polar_orientation/06_p-p_o_c-c-c": { - "refs": ["5c0fa3c"] - }, - "ww_animTiming/polar_orientation/07_p-p_o_a-c-a": { - "refs": ["e6265f9"] - }, - "ww_animTiming/polar_orientation/08_p-p_o_l-c-l": { - "refs": ["3f828ce"] - }, - "ww_animTiming/polar_orientation/09_p-p_o_r-a-r": { - "refs": ["45d8a28"] - }, - "ww_animTiming/polar_orientation/10_p-p_o_c-a-c": { - "refs": ["b76471b"] - }, - "ww_animTiming/polar_orientation/11_p-p_o_a-a-a": { - "refs": ["22cecc9"] - }, - "ww_animTiming/polar_orientation/12_p-p_o_l-a-l": { - "refs": ["d96ce7e"] - }, - "ww_animTiming/polar_orientation/13_p-p_o_r-l-r": { - "refs": ["0f41bc8"] - }, - "ww_animTiming/polar_orientation/14_p-p_o_c-l-c": { - "refs": ["4d9ac8d"] - }, - "ww_animTiming/polar_orientation/15_p-p_o_a-l-a": { - "refs": ["a7d056d"] - }, - "ww_animTiming/polar_orientation/16_p-p_o_l-l-l": { - "refs": ["c2b7355"] - }, - "ww_animTiming/without-descartes/01_w-d_r-r-r": { - "refs": ["f8e7d66"] - }, - "ww_animTiming/without-descartes/02_w-d_c-r-c": { - "refs": ["80c907f"] - }, - "ww_animTiming/without-descartes/05_w-d_r-c-r": { - "refs": ["ed99860"] - }, - "ww_animTiming/without-descartes/06_w-d_c-c-c": { - "refs": ["51d42e8"] - }, - "ww_animTiming/without-descartes/09_w-d_r-a-r": { - "refs": ["e23e83d"] - }, - "ww_animTiming/without-descartes/10_w-d_c-a-c": { - "refs": ["7696d6e"] - }, - "ww_animTiming/without-descartes/13_w-d_r-l-r": { - "refs": ["41ece34"] - }, - "ww_animTiming/without-descartes/14_w-d_c-l-c": { - "refs": ["bac592f"] - }, - "ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r": { - "refs": ["98daf3c"] - }, - "ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c": { - "refs": ["b079763"] - }, - "ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r": { - "refs": ["18674ce"] - }, - "ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c": { - "refs": ["4925408"] - }, - "ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r": { - "refs": ["dc4fa1e"] - }, - "ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c": { - "refs": ["843d652"] - }, - "ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r": { - "refs": ["2e7c3ee"] - }, - "ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c": { - "refs": ["0d330f3"] - }, - "ww_animTiming/without-polar/01_w-p_r-r-r": { - "refs": ["4debb3f"] - }, - "ww_animTiming/without-polar/02_w-p_c-r-c": { - "refs": ["778cad5"] - }, - "ww_animTiming/without-polar/05_w-p_r-c-r": { - "refs": ["55d1db9"] - }, - "ww_animTiming/without-polar/06_w-p_c-c-c": { - "refs": ["2a7649b"] - }, - "ww_animTiming/without-polar/09_w-p_r-a-r": { - "refs": ["d6bbe4f"] - }, - "ww_animTiming/without-polar/10_w-p_c-a-c": { - "refs": ["fbf20f4"] - }, - "ww_animTiming/without-polar/13_w-p_r-l-r": { - "refs": ["b22ca3f"] - }, - "ww_animTiming/without-polar/14_w-p_c-l-c": { - "refs": ["5b126f4"] - }, - "ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r": { - "refs": ["81fc9cb"] - }, - "ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c": { - "refs": ["5596473"] - }, - "ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r": { - "refs": ["ce92309"] - }, - "ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c": { - "refs": ["c4ccd0d"] - }, - "ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r": { - "refs": ["d4abbe4"] - }, - "ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c": { - "refs": ["835a78d"] - }, - "ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r": { - "refs": ["e060877"] - }, - "ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c": { - "refs": ["898c383"] - }, - "ww_animTiming/without/02_w-w_c-r-c": { - "refs": ["edce2d9"] - }, - "ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c": { - "refs": ["e4cb32d"] - }, - "ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a": { - "refs": ["bb35082"] - }, - "ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l": { - "refs": ["b4b56cf"] - }, - "ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r": { - "refs": ["bb0d6df"] - }, - "ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c": { - "refs": ["c3cb642"] - }, - "ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a": { - "refs": ["461fdec"] - }, - "ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l": { - "refs": ["fdfdfaa"] - }, - "ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r": { - "refs": ["21d4f78"] - }, - "ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c": { - "refs": ["7f4a511"] - }, - "ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a": { - "refs": ["f10b2c1"] - }, - "ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l": { - "refs": ["4d72bc6"] - }, - "ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r": { - "refs": ["38f7786"] - }, - "ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c": { - "refs": ["fbcb746"] - }, - "ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a": { - "refs": ["71bfcbb"] - }, - "ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l": { - "refs": ["91d69c9"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r": { - "refs": ["87c33d6"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c": { - "refs": ["c7981e6"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a": { - "refs": ["76d8014"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l": { - "refs": ["d4ffa05"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r": { - "refs": ["43f00a0"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c": { - "refs": ["ce69c8a"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a": { - "refs": ["2f088e8"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l": { - "refs": ["167c694"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r": { - "refs": ["8c26a23"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c": { - "refs": ["3f1ed7f"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a": { - "refs": ["3959367"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l": { - "refs": ["f1fb6a9"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r": { - "refs": ["b107554"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c": { - "refs": ["60499cc"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a": { - "refs": ["ff1f803"] - }, - "ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l": { - "refs": ["66c898c"] - }, - "ww_animTiming_TESTS/descartes/02_d-d_c-r-c": { - "refs": ["aa9e9d6"] - }, - "ww_animTiming_TESTS/descartes/03_d-d_a-r-a": { - "refs": ["2dd7f8b"] - }, - "ww_animTiming_TESTS/descartes/04_d-d_l-r-l": { - "refs": ["548adc8"] - }, - "ww_animTiming_TESTS/descartes/07_d-d_a-c-a": { - "refs": ["58c3e7b"] - }, - "ww_animTiming_TESTS/descartes/08_d-d_l-c-l": { - "refs": ["4734d8b"] - }, - "ww_animTiming_TESTS/descartes/12_d-d_l-a-l": { - "refs": ["5647e86"] - }, - "ww_animTiming_TESTS/descartes/easing_test": { - "refs": ["e4aae39"] - }, - "ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r": { - "refs": ["bbdaea8"] - }, - "ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c": { - "refs": ["8723c8e"] - }, - "ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a": { - "refs": ["5558508"] - }, - "ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split": { - "refs": ["285b038"] - }, - "ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l": { - "refs": ["3df3405"] - }, - "ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked": { - "refs": ["db3345c"] - }, - "ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r": { - "refs": ["aabbace"] - }, - "ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c": { - "refs": ["157472c"] - }, - "ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a": { - "refs": ["24fc2d2"] - }, - "ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l": { - "refs": ["b9efe87"] - }, - "ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r": { - "refs": ["bbfa964"] - }, - "ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c": { - "refs": ["106d1b5"] - }, - "ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a": { - "refs": ["ceae4ce"] - }, - "ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l": { - "refs": ["0daf2a5"] - }, - "ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r": { - "refs": ["bfd2420"] - }, - "ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c": { - "refs": ["4443f32"] - }, - "ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a": { - "refs": ["bac188f"] - }, - "ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l": { - "refs": ["1ae5f2a"] - }, - "ww_animTiming_TESTS/polar/02_p-p_c-r-c": { - "refs": ["f515353"] - }, - "ww_animTiming_TESTS/polar/03_p-p_a-r-a": { - "refs": ["549a7e7"] - }, - "ww_animTiming_TESTS/polar/04_p-p_l-r-l": { - "refs": ["624428b"] - }, - "ww_animTiming_TESTS/polar/07_p-p_a-c-a": { - "refs": ["f61c579"] - }, - "ww_animTiming_TESTS/polar/08_p-p_l-c-l": { - "refs": ["b67410e"] - }, - "ww_animTiming_TESTS/polar/12_p-p_l-a-l": { - "refs": ["888e89f"] - }, - "ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r": { - "refs": ["00e1598"] - }, - "ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c": { - "refs": ["05ae087"] - }, - "ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a": { - "refs": ["f0c7467"] - }, - "ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l": { - "refs": ["9ed9325"] - }, - "ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r": { - "refs": ["1f73c7e"] - }, - "ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c": { - "refs": ["cecccc8"] - }, - "ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a": { - "refs": ["6bbffdd"] - }, - "ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l": { - "refs": ["33697f1"] - }, - "ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r": { - "refs": ["66a2833"] - }, - "ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c": { - "refs": ["374a284"] - }, - "ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a": { - "refs": ["bc27f85"] - }, - "ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l": { - "refs": ["0e20e13"] - }, - "ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r": { - "refs": ["c57dd9d"] - }, - "ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c": { - "refs": ["8010f8a"] - }, - "ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a": { - "refs": ["b3f37f8"] - }, - "ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l": { - "refs": ["a25054f"] - }, - "ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r": { - "refs": ["ab730d0"] - }, - "ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c": { - "refs": ["6ab99fa"] - }, - "ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r": { - "refs": ["6889c08"] - }, - "ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c": { - "refs": ["2fd660a"] - }, - "ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r": { - "refs": ["124abc7"] - }, - "ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c": { - "refs": ["20dce86"] - }, - "ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r": { - "refs": ["cfbafde"] - }, - "ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c": { - "refs": ["4a736ad"] - }, - "ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r": { - "refs": ["8893e1d"] - }, - "ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c": { - "refs": ["f76d9f7"] - }, - "ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r": { - "refs": ["ed6ba58"] - }, - "ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c": { - "refs": ["b24a3b0"] - }, - "ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r": { - "refs": ["d84559e"] - }, - "ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c": { - "refs": ["4c6b493"] - }, - "ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r": { - "refs": ["14e23d9"] - }, - "ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c": { - "refs": ["5c95387"] - }, - "ww_animTiming_TESTS/without-polar/01_w-p_r-r-r": { - "refs": ["be70807"] - }, - "ww_animTiming_TESTS/without-polar/02_w-p_c-r-c": { - "refs": ["9341567"] - }, - "ww_animTiming_TESTS/without-polar/05_w-p_r-c-r": { - "refs": ["3738cab"] - }, - "ww_animTiming_TESTS/without-polar/06_w-p_c-c-c": { - "refs": ["dcb3f76"] - }, - "ww_animTiming_TESTS/without-polar/09_w-p_r-a-r": { - "refs": ["7e9fa0f"] - }, - "ww_animTiming_TESTS/without-polar/10_w-p_c-a-c": { - "refs": ["b97edbc"] - }, - "ww_animTiming_TESTS/without-polar/13_w-p_r-l-r": { - "refs": ["13d5878"] - }, - "ww_animTiming_TESTS/without-polar/14_w-p_c-l-c": { - "refs": ["2a15690"] - }, - "ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r": { - "refs": ["fd7f93b"] - }, - "ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c": { - "refs": ["7a1a8e0"] - }, - "ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r": { - "refs": ["4ea7da2"] - }, - "ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c": { - "refs": ["f610cd3"] - }, - "ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r": { - "refs": ["26fc0b8"] - }, - "ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c": { - "refs": ["b708426"] - }, - "ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r": { - "refs": ["bf16a44"] - }, - "ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c": { - "refs": ["780fd41"] - }, - "ww_animTiming_TESTS/without/02_w-w_c-r-c": { - "refs": ["df8b392"] - }, - "ww_next_steps/next_steps/02_C_R": { - "refs": ["d3200b8"] - }, - "ww_next_steps/next_steps/02_C_R_water_comparison_sum": { - "refs": ["8d0e8af"] - }, - "ww_next_steps/next_steps/03_C_R": { - "refs": ["353b20e"] - }, - "ww_next_steps/next_steps/04_C_R": { - "refs": ["23de11d"] - }, - "ww_next_steps/next_steps/05_C_R": { - "refs": ["705aa0e"] - }, - "ww_next_steps/next_steps/21_C_C_dotplot": { - "refs": ["c991435"] - }, - "ww_next_steps/next_steps/22_C_C": { - "refs": ["ec4da6c"] - }, - "ww_next_steps/next_steps/28_C_A": { - "refs": ["f396191"] - }, - "ww_next_steps/next_steps/35_C_A_violin": { - "refs": ["bdce840"] - }, - "ww_next_steps/next_steps/38_C_L_line": { - "refs": ["a08c7c4"] - }, - "ww_next_steps/next_steps_Tests/02_C_R": { - "refs": ["f13c899"] - }, - "ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum": { - "refs": ["81c6c1e"] - }, - "ww_next_steps/next_steps_Tests/03_C_R": { - "refs": ["4bbe3d5"] - }, - "ww_next_steps/next_steps_Tests/04_C_R": { - "refs": ["9ccb70a"] - }, - "ww_next_steps/next_steps_Tests/05_C_R": { - "refs": ["80c5969"] - }, - "ww_next_steps/next_steps_Tests/21_C_C_dotplot": { - "refs": ["3551f7a"] - }, - "ww_next_steps/next_steps_Tests/22_C_C": { - "refs": ["81fcf00"] - }, - "ww_next_steps/next_steps_Tests/28_C_A": { - "refs": ["f952e2d"] - }, - "ww_next_steps/next_steps_Tests/38_C_L_line": { - "refs": ["3114075"] - }, - "ww_next_steps/next_steps_Tests/axisLabel_problem": { - "refs": ["d33f180"] - }, - "ww_next_steps/next_steps_byOperations/compare/comparison_01": { - "refs": ["93acfe0"] - }, - "ww_next_steps/next_steps_byOperations/compare/comparison_02": { - "refs": ["08a0618"] - }, - "ww_next_steps/next_steps_byOperations/compare/comparison_03": { - "refs": ["08d01ca"] - }, - "ww_next_steps/next_steps_byOperations/compare/comparison_04": { - "refs": ["ff004d8"] - }, - "ww_next_steps/next_steps_byOperations/compare/comparison_05": { - "refs": ["e6258dc"] - }, - "ww_next_steps/next_steps_byOperations/compare/comparison_06": { - "refs": ["801b9e9"] - }, - "ww_next_steps/next_steps_byOperations/compare/comparison_09": { - "refs": ["455989a"] - }, - "ww_next_steps/next_steps_byOperations/compare/comparison_10": { - "refs": ["981e41c"] - }, - "ww_next_steps/next_steps_byOperations/compare/comparison_11": { - "refs": ["a6fd567"] - }, - "ww_next_steps/next_steps_byOperations/components/components_01": { - "refs": ["342d170"] - }, - "ww_next_steps/next_steps_byOperations/components/components_02": { - "refs": ["cd56f3c"] - }, - "ww_next_steps/next_steps_byOperations/components/components_03": { - "refs": ["921ed62"] - }, - "ww_next_steps/next_steps_byOperations/components/components_04": { - "refs": ["02aa8c5"] - }, - "ww_next_steps/next_steps_byOperations/components/components_05": { - "refs": ["e2fbaa1"] - }, - "ww_next_steps/next_steps_byOperations/components/components_06": { - "refs": ["13c460d"] - }, - "ww_next_steps/next_steps_byOperations/components/components_07": { - "refs": ["b1e897f"] - }, - "ww_next_steps/next_steps_byOperations/distribute/distribution_01": { - "refs": ["c62bfe5"] - }, - "ww_next_steps/next_steps_byOperations/distribute/distribution_02": { - "refs": ["c6621c5"] - }, - "ww_next_steps/next_steps_byOperations/distribute/distribution_03": { - "refs": ["05d3b8d"] - }, - "ww_next_steps/next_steps_byOperations/distribute/distribution_04": { - "refs": ["209ce4e"] - }, - "ww_next_steps/next_steps_byOperations/distribute/distribution_05": { - "refs": ["d5720b5"] - }, - "ww_next_steps/next_steps_byOperations/distribute/distribution_06": { - "refs": ["ad24e8f"] - }, - "ww_next_steps/next_steps_byOperations/distribute/distribution_07": { - "refs": ["f677f00"] - }, - "ww_next_steps/next_steps_byOperations/distribute/distribution_08": { - "refs": ["552a70d"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_01": { - "refs": ["1cd042b"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_02": { - "refs": ["ab2e262"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_03": { - "refs": ["351fa89"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_04": { - "refs": ["15bfe7c"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_05": { - "refs": ["967d152"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_06": { - "refs": ["46b31d2"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_07": { - "refs": ["a4a3c9c"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_10": { - "refs": ["84661bb"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_11": { - "refs": ["b3ae780"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_12": { - "refs": ["0b9b392"] - }, - "ww_next_steps/next_steps_byOperations/drilldown/drilldown_13": { - "refs": ["7e73c39"] - }, - "ww_next_steps/next_steps_byOperations/other/other_add_measure_01": { - "refs": ["483158f"] - }, - "ww_next_steps/next_steps_byOperations/ratio/ratio_01": { - "refs": ["0537644"] - }, - "ww_next_steps/next_steps_byOperations/ratio/ratio_02": { - "refs": ["6722052"] - }, - "ww_next_steps/next_steps_byOperations/ratio/ratio_03": { - "refs": ["935af47"] - }, - "ww_next_steps/next_steps_byOperations/ratio/ratio_04": { - "refs": ["42c1132"] - }, - "ww_next_steps/next_steps_byOperations/ratio/ratio_05": { - "refs": ["dd91874"] - }, - "ww_next_steps/next_steps_byOperations/remove/remove_01": { - "refs": ["3311ca6"] - }, - "ww_next_steps/next_steps_byOperations/remove/remove_02": { - "refs": ["005290d"] - }, - "ww_next_steps/next_steps_byOperations/remove/remove_03": { - "refs": ["0be1bdf"] - }, - "ww_next_steps/next_steps_byOperations/remove/remove_04": { - "refs": ["738524b"] - }, - "ww_next_steps/next_steps_byOperations/remove/remove_05": { - "refs": ["d283ab6"] - }, - "ww_next_steps/next_steps_byOperations/remove/remove_07": { - "refs": ["1f89123"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01": { - "refs": ["856b617"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02": { - "refs": ["8133691"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03": { - "refs": ["a7e2dad"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04": { - "refs": ["83af5bb"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05": { - "refs": ["2c9f2e4"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06": { - "refs": ["56f11ba"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07": { - "refs": ["32d2f7e"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08": { - "refs": ["816f652"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09": { - "refs": ["dd25757"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10": { - "refs": ["e13a025"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11": { - "refs": ["ddab152"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12": { - "refs": ["e3981f1"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13": { - "refs": ["5054074"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14": { - "refs": ["09bbd5c"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16": { - "refs": ["f955d94"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17": { - "refs": ["7b5dad0"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18": { - "refs": ["45eaabf"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19": { - "refs": ["ecd3bbd"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20": { - "refs": ["bc77498"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21": { - "refs": ["ce484ef"] - }, - "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22": { - "refs": ["464507f"] - }, - "ww_next_steps/next_steps_byOperations/total/total_01": { - "refs": ["6a0650c"] - }, - "ww_next_steps/next_steps_byOperations/total/total_02": { - "refs": ["d0e74b5"] - }, - "ww_next_steps/next_steps_byOperations/total/total_03": { - "refs": ["2536593"] - }, - "ww_next_steps/next_steps_byOperations/total/total_04": { - "refs": ["467e169"] - }, - "ww_next_steps/next_steps_byOperations/total/total_05": { - "refs": ["0bc214e"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con": { - "refs": ["2c4a1e2"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot": { - "refs": ["be8f8c9"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line": { - "refs": ["37df636"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con": { - "refs": ["575862f"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle": { - "refs": ["658a4b8"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con": { - "refs": ["a4fcf7c"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02": { - "refs": ["7cf90ec"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial": { - "refs": ["6f96e8b"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area": { - "refs": ["58ff641"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar": { - "refs": ["f0c3b9d"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line": { - "refs": ["0bc591f"] - }, - "ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar": { - "refs": ["40e952f"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir": { - "refs": ["b23583f"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are": { - "refs": ["54e4569"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir": { - "refs": ["28e89f3"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin": { - "refs": ["13ce7e7"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec": { - "refs": ["36d132e"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are": { - "refs": ["a8293e3"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c": { - "refs": ["650e2b1"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c": { - "refs": ["fb6acd5"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are": { - "refs": ["21bd67a"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c": { - "refs": ["23724f3"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin": { - "refs": ["892aa0e"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c": { - "refs": ["c4d93f3"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c": { - "refs": ["f84aa68"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c": { - "refs": ["aec9e33"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c": { - "refs": ["e9181e0"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c": { - "refs": ["8d48a66"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c": { - "refs": ["7174bcb"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c": { - "refs": ["d486211"] - }, - "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c": { - "refs": ["656d2cc"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are": { - "refs": ["11d5543"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are": { - "refs": ["f14caf3"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are": { - "refs": ["8500722"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are": { - "refs": ["904f6c7"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir": { - "refs": ["b07ddc1"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir": { - "refs": ["3c8c128"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir": { - "refs": ["b6a2acb"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir": { - "refs": ["d590fc1"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO": { - "refs": ["97f39bc"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir": { - "refs": ["291c62e"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir": { - "refs": ["2f6ed3b"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1": { - "refs": ["496e8d0"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2": { - "refs": ["6492fa4"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1": { - "refs": ["c089fc9"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir": { - "refs": ["6989f33"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir": { - "refs": ["0832cec"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c": { - "refs": ["8199321"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c": { - "refs": ["44bb6b5"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c": { - "refs": ["bc86182"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c": { - "refs": ["b29e84f"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c": { - "refs": ["83d4803"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c": { - "refs": ["b5e88b1"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c": { - "refs": ["3f24637"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c": { - "refs": ["40bbaf5"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c": { - "refs": ["fc91b40"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c": { - "refs": ["a18e9fd"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c": { - "refs": ["172b697"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin": { - "refs": ["1fc3475"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin": { - "refs": ["3955fa7"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin": { - "refs": ["c2e3e9a"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin": { - "refs": ["674e6e9"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin": { - "refs": ["35736c6"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin": { - "refs": ["2eb5dc2"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin": { - "refs": ["c953f4f"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin": { - "refs": ["7ad7b93"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin": { - "refs": ["1535913"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec": { - "refs": ["231442e"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec": { - "refs": ["973ed37"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec": { - "refs": ["eba06ea"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c": { - "refs": ["8653cbc"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c": { - "refs": ["174b9e0"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c": { - "refs": ["dacfe19"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c": { - "refs": ["206f7f9"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c": { - "refs": ["607ac8e"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c": { - "refs": ["a011cdc"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c": { - "refs": ["818a881"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c": { - "refs": ["fbfbaa6"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c": { - "refs": ["632859c"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c": { - "refs": ["f969fb5"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c": { - "refs": ["7b75634"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c": { - "refs": ["fdb69c0"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c": { - "refs": ["6b50d05"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are": { - "refs": ["62ba1f9"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are": { - "refs": ["9ae5217"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are": { - "refs": ["54e1549"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are": { - "refs": ["9a7d671"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are": { - "refs": ["a411d8e"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble": { - "refs": ["da57be9"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are": { - "refs": ["903ef51"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are": { - "refs": ["86995ae"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are": { - "refs": ["2410b70"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are": { - "refs": ["ed3d08f"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are": { - "refs": ["23ae80a"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter": { - "refs": ["3d8a027"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c": { - "refs": ["263279d"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir": { - "refs": ["80e9182"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c": { - "refs": ["24843bb"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c": { - "refs": ["afa8cd6"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c": { - "refs": ["6e6fe2f"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c": { - "refs": ["fcd387d"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c": { - "refs": ["ff6ffe2"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c": { - "refs": ["48b4bb0"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c": { - "refs": ["16e00c5"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c": { - "refs": ["e598bb2"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c": { - "refs": ["f422c89"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c": { - "refs": ["d22a2c5"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c": { - "refs": ["1d3e949"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin": { - "refs": ["4937e6b"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin": { - "refs": ["f1e9fc7"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin": { - "refs": ["5ee8720"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin": { - "refs": ["e52dcf5"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin": { - "refs": ["036f9a9"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin": { - "refs": ["5bb4d62"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin": { - "refs": ["cb542c7"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin": { - "refs": ["2c02a12"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin": { - "refs": ["0b378c0"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin": { - "refs": ["78a8e0e"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin": { - "refs": ["646834f"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin": { - "refs": ["3bf10bf"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin": { - "refs": ["43dfc65"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin": { - "refs": ["31b9af2"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin": { - "refs": ["069705d"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin": { - "refs": ["7d807d6"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec": { - "refs": ["668f799"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec": { - "refs": ["eda9bde"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c": { - "refs": ["7276ebf"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c": { - "refs": ["f648ce4"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c": { - "refs": ["105dac1"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c": { - "refs": ["ebc68cf"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c": { - "refs": ["12fed76"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c": { - "refs": ["3822fbe"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c": { - "refs": ["8eec77d"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c": { - "refs": ["0ee25ed"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c": { - "refs": ["d0bb047"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c": { - "refs": ["ddbf98f"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c": { - "refs": ["86520b6"] - }, - "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c": { - "refs": ["0e684b3"] - }, - "ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut": { - "refs": ["1aca6bf"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area": { - "refs": ["1ffa601"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line": { - "refs": ["c346364"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area": { - "refs": ["5cf59b1"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum": { - "refs": ["6843bbc"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation": { - "refs": ["e7bfa6b"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum": { - "refs": ["10faadd"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum": { - "refs": ["3141682"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x": { - "refs": ["c119139"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation": { - "refs": ["ad997c7"] - }, - "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test": { - "refs": ["e1e79b2"] - }, - "ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown": { - "refs": ["591692c"] - }, - "ww_noFade/wNoFade_Tests/1_des_pol/area/03_are": { - "refs": ["dc4b216"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/area/04a_are": { - "refs": ["9f961f9"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/area/04b_are": { - "refs": ["a132075"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/area/06a_are": { - "refs": ["6789f6e"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/area/06b_are": { - "refs": ["dd43b58"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1": { - "refs": ["7f9bfb9"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir": { - "refs": ["a1d9187"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir": { - "refs": ["d3fda3c"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir": { - "refs": ["417a34a"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir": { - "refs": ["8296987"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO": { - "refs": ["c28243e"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir": { - "refs": ["541f839"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir": { - "refs": ["d7d08d7"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1": { - "refs": ["54f7d00"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2": { - "refs": ["7f8caac"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1": { - "refs": ["b7bbf06"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c": { - "refs": ["9b57be3"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c": { - "refs": ["c19382f"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c": { - "refs": ["302bd37"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c": { - "refs": ["1bfc65a"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c": { - "refs": ["b5ceb59"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c": { - "refs": ["ef389c1"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c": { - "refs": ["c03351b"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c": { - "refs": ["518315a"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c": { - "refs": ["f0dbc7e"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c": { - "refs": ["e26bfb5"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c": { - "refs": ["f128aa0"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin": { - "refs": ["5dc2c76"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin": { - "refs": ["48a276e"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin": { - "refs": ["02d0e3d"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin": { - "refs": ["678d295"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin": { - "refs": ["2d43903"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin": { - "refs": ["b41917c"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c": { - "refs": ["4397bcb"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c": { - "refs": ["c988cd0"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c": { - "refs": ["27417ae"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c": { - "refs": ["af15ed7"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c": { - "refs": ["79fd1d6"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c": { - "refs": ["d26ce0c"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c": { - "refs": ["192c0b8"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c": { - "refs": ["1f1e4d8"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c": { - "refs": ["33320ff"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c": { - "refs": ["f9e6308"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c": { - "refs": ["59a77b8"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c": { - "refs": ["1af8eff"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c": { - "refs": ["ea87d05"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution": { - "refs": ["b1dc7f4"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1": { - "refs": ["181a9c4"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1": { - "refs": ["7cd05d0"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c": { - "refs": ["aa58cd6"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c": { - "refs": ["40b7f79"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c": { - "refs": ["819fdce"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c": { - "refs": ["21ba8df"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c": { - "refs": ["b20c0ec"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c": { - "refs": ["cf72829"] - }, - "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c": { - "refs": ["9a78f8b"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are": { - "refs": ["607e9b6"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are": { - "refs": ["08a208d"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are": { - "refs": ["47b0ba5"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are": { - "refs": ["4ee256f"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are": { - "refs": ["d5fdcba"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble": { - "refs": ["9b6a90e"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are": { - "refs": ["daf230f"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are": { - "refs": ["4fa386c"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are": { - "refs": ["9b80cb4"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are": { - "refs": ["496d448"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are": { - "refs": ["d74dd0c"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble": { - "refs": ["e96ccc6"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1": { - "refs": ["3b9495e"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1": { - "refs": ["8cf593f"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1": { - "refs": ["dddafa1"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1": { - "refs": ["4c8b3f4"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter": { - "refs": ["af4ef64"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c": { - "refs": ["48a6ade"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c": { - "refs": ["5c4e57a"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir": { - "refs": ["d83d897"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir": { - "refs": ["b42c296"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c": { - "refs": ["d50c59b"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c": { - "refs": ["453c987"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c": { - "refs": ["4286bc6"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c": { - "refs": ["f092ff3"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c": { - "refs": ["c7126b4"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c": { - "refs": ["5b85a6b"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c": { - "refs": ["e9acd73"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c": { - "refs": ["5e4010d"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c": { - "refs": ["223cee4"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c": { - "refs": ["60862b4"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c": { - "refs": ["a8e844a"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1": { - "refs": ["0841bd2"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c": { - "refs": ["b815a38"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c": { - "refs": ["91846f1"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c": { - "refs": ["6e9a060"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c": { - "refs": ["3414628"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c": { - "refs": ["112f33d"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c": { - "refs": ["2f6d0b9"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c": { - "refs": ["0d37de0"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c": { - "refs": ["d0f432e"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin": { - "refs": ["7c20f48"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin": { - "refs": ["c0d0d33"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin": { - "refs": ["141e639"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin": { - "refs": ["a93d332"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin": { - "refs": ["25f5e39"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin": { - "refs": ["11ef692"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin": { - "refs": ["793c69d"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin": { - "refs": ["8d80e81"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin": { - "refs": ["9f636cf"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin": { - "refs": ["abce8b4"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin": { - "refs": ["d94f479"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin": { - "refs": ["0c89816"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin": { - "refs": ["9db1f0f"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin": { - "refs": ["3d5b1da"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin": { - "refs": ["9507372"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin": { - "refs": ["77cba60"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin": { - "refs": ["b2dfc3b"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1": { - "refs": ["09b0926"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1": { - "refs": ["b0dc569"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1": { - "refs": ["88ed61e"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1": { - "refs": ["5f81c31"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1": { - "refs": ["9b1f540"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1": { - "refs": ["30019d3"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1": { - "refs": ["7e64bad"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1": { - "refs": ["0b37c3c"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec": { - "refs": ["fe19440"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec": { - "refs": ["23b1593"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c": { - "refs": ["1a54549"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c": { - "refs": ["f9dfab8"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c": { - "refs": ["bb6687e"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c": { - "refs": ["634d8ee"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c": { - "refs": ["3d20469"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c": { - "refs": ["66704be"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c": { - "refs": ["180c206"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c": { - "refs": ["d3d1667"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c": { - "refs": ["121661e"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c": { - "refs": ["04ba2f9"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c": { - "refs": ["5fbeba5"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c": { - "refs": ["bdc0ff3"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1": { - "refs": ["0e97ae5"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1": { - "refs": ["bade63b"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1": { - "refs": ["e492a5a"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1": { - "refs": ["a860d9f"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1": { - "refs": ["34badef"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1": { - "refs": ["eabfaf1"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1": { - "refs": ["a94f66c"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1": { - "refs": ["44c90e9"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c": { - "refs": ["7b2811b"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c": { - "refs": ["efcf893"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c": { - "refs": ["990dc60"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c": { - "refs": ["a685430"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c": { - "refs": ["ac1ed71"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c": { - "refs": ["deace7c"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter": { - "refs": ["4f88b89"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c": { - "refs": ["fba58e2"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c": { - "refs": ["41884bc"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c": { - "refs": ["3c6fe6f"] - }, - "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c": { - "refs": ["39b0f95"] - }, - "ww_noFade/wNoFade_wPromotion/0_01_reorder": { - "refs": ["c43fb1d"] - }, - "ww_noFade/wNoFade_wPromotion/1_06b_are": { - "refs": ["d9d6dc4"] - }, - "ww_noFade/wNoFade_wPromotion/2_05b_lin": { - "refs": ["fb50624"] - }, - "ww_noFade/wNoFade_wPromotion/3_04_cir": { - "refs": ["960e157"] - }, - "ww_noFade/wNoFade_wPromotion/4_06b_rec_1c": { - "refs": ["3170d39"] - }, - "ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c": { - "refs": ["c91bfb1"] - }, - "ww_noFade/wNoFade_wPromotion/5_04a_rec_1c": { - "refs": ["94c94e8"] - }, - "ww_noFade/wNoFade_wPromotion/6_04a_cir_1c": { - "refs": ["873d0e3"] - }, - "ww_noFade/wNoFade_wPromotion/7_05_cir_2c": { - "refs": ["4def5b2"] - }, - "ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c": { - "refs": ["4cd9302"] - }, - "ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c": { - "refs": ["f034846"] - }, - "ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c": { - "refs": ["0164dcc"] - }, - "ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram": { - "refs": ["298f298"] - }, - "ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative": { - "refs": ["f29bdbd"] - }, - "web_content/presets_config/chart/column_stacked": { - "refs": ["b60b323"] - }, - "ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart": { - "refs": ["45122e2"] - }, - "ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart": { - "refs": ["945db54"] - }, - "ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart": { - "refs": ["11199c5"] - }, - "ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall": { - "refs": ["ae2b423"] - }, - "ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart": { - "refs": ["1065865"] - }, - "ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart": { - "refs": ["7d7c580"] - }, - "ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart": { - "refs": ["c42d76b"] - }, - "ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart": { - "refs": ["508383a"] - }, - "ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart": { - "refs": ["066f42f"] - }, - "ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative": { - "refs": ["2fd66d1"] - }, - "ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative": { - "refs": ["d31dccc"] - }, - "web_content/presets_config/chart/bar_stacked": { - "refs": ["6b7d439"] - }, - "ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart": { - "refs": ["6e7e15e"] - }, - "ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart": { - "refs": ["2a52ddf"] - }, - "ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart": { - "refs": ["afdeda8"] - }, - "ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart": { - "refs": ["7f382af"] - }, - "ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart": { - "refs": ["25c68b8"] - }, - "ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart": { - "refs": ["714bb74"] - }, - "ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot": { - "refs": ["7a79697"] - }, - "ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot": { - "refs": ["9d8d76c"] - }, - "ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram": { - "refs": ["95be630"] - }, - "ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart": { - "refs": ["edba15c"] - }, - "ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative": { - "refs": ["d713566"] - }, - "ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels": { - "refs": ["e3f5df2"] - }, - "ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart": { - "refs": ["b3363f6"] - }, - "ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart": { - "refs": ["048bcc1"] - }, - "ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph": { - "refs": ["3495268"] - }, - "ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert": { - "refs": ["0146778"] - }, - "ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph": { - "refs": ["5549c4b"] - }, - "ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert": { - "refs": ["266a0d4"] - }, - "ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart": { - "refs": ["afdce6c"] - }, - "ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega": { - "refs": ["4f426e6"] - }, - "ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel": { - "refs": ["34afa08"] - }, - "ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega": { - "refs": ["34cb2a2"] - }, - "ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert": { - "refs": ["aa85e89"] - }, - "ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart": { - "refs": ["190c250"] - }, - "web_content/presets_config/chart/column_polar_stacked": { - "refs": ["441ce16"] - }, - "web_content/presets_config/chart/column_polar": { - "refs": ["0b9ecf8"] - }, - "ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange": { - "refs": ["8dc6f72"] - }, - "web_content/presets_config/chart/pie_variable_radius": { - "refs": ["f450f9a"] - }, - "ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart": { - "refs": ["a174717"] - }, - "ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart": { - "refs": ["eaa6140"] - }, - "ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart": { - "refs": ["7050780"] - }, - "web_content/presets_config/chart/bar_radial": { - "refs": ["3b02c1b"] - }, - "web_content/presets_config/chart/bar_radial_stacked": { - "refs": ["a206518"] - }, - "ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart": { - "refs": ["4c984e5"] - }, - "ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot": { - "refs": ["d7a099d"] - }, - "ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart": { - "refs": ["72b6aab"] - }, - "ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph": { - "refs": ["1eb4d01"] - }, - "ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart": { - "refs": ["e2c10b8"] - }, - "ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart": { - "refs": ["19ad791"] - }, - "web_content/presets_config/treemap": { - "refs": ["bec5c68"] - }, - "ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient": { - "refs": ["dfa1f88"] - }, - "ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3": { - "refs": ["4905e0d"] - }, - "ww_samples_for_presets/without_coo_sys/60_W_R_heatmap": { - "refs": ["4d4090e"] - }, - "www_new_analytical_operations/operations/01_drilldown/Bar_Bar": { - "refs": ["6396b85"] - }, - "www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column": { - "refs": ["160a9c3"] - }, - "www_new_analytical_operations/operations/02_sum/Area_Stacked_Area": { - "refs": ["2b22a2e"] - }, - "www_new_analytical_operations/operations/02_sum/Bubble_Bubble": { - "refs": ["f76ebc3"] - }, - "www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1": { - "refs": ["9bae423"] - }, - "www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2": { - "refs": ["38db045"] - }, - "www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar": { - "refs": ["c9b5412"] - }, - "www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1": { - "refs": ["e77a910"] - }, - "www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2": { - "refs": ["ee5acf5"] - }, - "www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut": { - "refs": ["6d24ce6"] - }, - "www_new_analytical_operations/operations/02_sum/Line_Line_3": { - "refs": ["decd6cf"] - }, - "www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area": { - "refs": ["ae0e815"] - }, - "www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line": { - "refs": ["f0cad11"] - }, - "www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area": { - "refs": ["f2b760e"] - }, - "basic_animations/markers_morph/marker_trans_polar": { - "refs": ["2c59683"] - }, - "web_content/cookbook/chart_types/exploded_pie_chart": { - "refs": ["1344b43"] - }, - "web_content/cookbook/chart_types/gant_chart": { - "refs": ["810d76a"] - }, - "web_content/cookbook/chart_types/historgram": { - "refs": ["b048452"] - }, - "web_content/cookbook/chart_types/network_graph": { - "refs": ["ae6af16"] - }, - "web_content/cookbook/chart_types/step_line_chart": { - "refs": ["42f7276"] - }, - "web_content/cookbook/chart_types/trendline": { - "refs": ["50a894d"] - }, - "web_content/cookbook/rendering/3d_chart": { - "refs": ["d48a74d"] - }, - "web_content/cookbook/rendering/custom_markers": { - "refs": ["700b80b"] - }, - "web_content/cookbook/rendering/dropshadow_on_marker": { - "refs": ["86553d8"] - }, - "web_content/cookbook/rendering/rounded_bars": { - "refs": ["5cda7e8"] - }, - "web_content/cookbook/rendering/smooth_line_chart": { - "refs": ["6723a44"] - }, - "web_content/cookbook/rendering/sparse_axis_labels": { - "refs": ["af76977"] - }, - "web_content/cookbook/style/d3_color_palette": { - "refs": ["bd104b0"] - }, - "web_content/cookbook/style/dark_theme": { - "refs": ["2d08a18"] - }, - "web_content/cookbook/style/highligh_markers": { - "refs": ["48d6207"] - }, - "web_content/cookbook/rendering/background_image": { - "refs": ["111a932"] - }, - "web_content/cookbook/rendering/custom_linetype": { - "refs": ["8fe17e9"] - }, - "web_content/cookbook/rendering/gradient_on_marker": { - "refs": ["878d4a5"] - }, - "web_content/cookbook/rendering/grid_lines": { - "refs": ["54b1945"] - }, - "web_content/cookbook/rendering/image_axis_labels": { - "refs": ["8a6930e"] - }, - "web_content/cookbook/rendering/random_gradient_pattern": { - "refs": ["60d9217"] - }, - "web_content/cookbook/data_source/paint": { - "refs": ["bcc6cdb"] - }, - "web_content/cookbook/interactive/filter_on_click": { - "refs": ["4bdf36b"] - }, - "web_content/cookbook/interactive/mouse_scroll": { - "refs": ["18a84af"] - }, - "web_content/cookbook/interactive/mouse_wheel_zoom": { - "refs": ["aacefa4"] - }, - "web_content/cookbook/interactive/window_zoom": { - "refs": ["4c082d0"] - }, - "web_content/cookbook/interactive/data_selector_combobox": { - "refs": ["da8ec16"] - }, - "web_content/cookbook/interactive/filter_slider": { - "refs": ["87b8197"] - }, - "web_content/cookbook/interactive/range_slider_zoom": { - "refs": ["34f9d9c"] - }, - "web_content/cookbook/data_source/csv_load": { - "refs": ["0be6e8c"] - }, - "web_content/cookbook/rendering/motion_blur": { - "refs": ["be67912"] - }, - "web_content/cookbook/style/colorfilter": { - "refs": ["05406ff"] - } - } + "suite": "/test/integration/test_cases", + "test": { + "basic_animations/anim_order/circle_without_2_carte_horizontal": { + "refs": ["be265b7"] + }, + "basic_animations/anim_order/circle_without_2_carte_vertical": { + "refs": ["e4972d8"] + }, + "basic_animations/anim_order/rectangle_without_2_carte_bar": { + "refs": ["77b7809"] + }, + "basic_animations/anim_order/rectangle_without_2_carte_column": { + "refs": ["33a9773"] + }, + "basic_animations/anim_order/rectangle_without_2_polar_bar": { + "refs": ["a1535ae"] + }, + "basic_animations/anim_order/rectangle_without_2_polar_column": { + "refs": ["244cc5f"] + }, + "basic_animations/coordsystems/area_carte_2_polar": { + "refs": ["7b3d87d"] + }, + "basic_animations/coordsystems/circle_without_2_carte": { + "refs": ["44524c8"] + }, + "basic_animations/coordsystems/rectangle_carte_2_polar": { + "refs": ["6109049"] + }, + "basic_animations/coordsystems/rectangle_without_2_carte": { + "refs": ["00e5959"] + }, + "basic_animations/coordsystems/rectangle_without_2_polar": { + "refs": ["5bfd4e0"] + }, + "basic_animations/labels/axis/circle_negative_2dis_3con": { + "refs": ["6d34d02"] + }, + "basic_animations/labels/marker/area_2dis_3con": { + "refs": ["39a8de7"] + }, + "basic_animations/labels/marker/circle_negative_2dis_3con": { + "refs": ["db72798"] + }, + "basic_animations/labels/marker/line_2dis_3con": { + "refs": ["a1c8ac0"] + }, + "basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con": { + "refs": ["5df3408"] + }, + "basic_animations/labels/marker/rectangle_negative_2dis_3con": { + "refs": ["1d1c034"] + }, + "basic_animations/labels/rectangle_labels_rotated_charts": { + "refs": ["6ee1ac0"] + }, + "basic_animations/legend_transitions/color_2discrete_anim": { + "refs": ["955eea3"] + }, + "basic_animations/legend_transitions/color_conti_anim": { + "refs": ["adbb6e4"] + }, + "basic_animations/legend_transitions/color_conti_changes_anim": { + "refs": ["10078ce"] + }, + "basic_animations/legend_transitions/color_conti_discrete_anim": { + "refs": ["89c4261"] + }, + "basic_animations/legend_transitions/color_discrete_anim": { + "refs": ["1b4fabb"] + }, + "basic_animations/legend_transitions/color_discrete_changes_anim": { + "refs": ["4ce6aaf"] + }, + "basic_animations/legend_transitions/color_off_on_anim": { + "refs": ["5156dd2"] + }, + "basic_animations/legend_transitions/color_off_on_series_anim": { + "refs": ["a92829f"] + }, + "basic_animations/legend_transitions/lightness_2discrete_anim": { + "refs": ["89207bf"] + }, + "basic_animations/legend_transitions/lightness_conti_anim": { + "refs": ["1d574aa"] + }, + "basic_animations/legend_transitions/lightness_conti_discrete_anim": { + "refs": ["3d1d378"] + }, + "basic_animations/legend_transitions/lightness_discrete_anim": { + "refs": ["53d1e59"] + }, + "basic_animations/legend_transitions/lightness_on_off_anim": { + "refs": ["cb29658"] + }, + "basic_animations/legend_transitions/size_2discrete_anim": { + "refs": ["9faecfd"] + }, + "basic_animations/legend_transitions/size_conti_anim": { + "refs": ["bfd8d87"] + }, + "basic_animations/legend_transitions/size_conti_discrete_anim": { + "refs": ["4f2d0d6"] + }, + "basic_animations/legend_transitions/size_discrete_anim": { + "refs": ["dc1bff3"] + }, + "basic_animations/legend_transitions/size_on_off_anim": { + "refs": ["927adbc"] + }, + "basic_animations/markers_morph/marker_trans_neg_1dis_1con": { + "refs": ["b51fba3"] + }, + "basic_animations/someOtherTests/merge_split_area_stream_2dis_1con": { + "refs": ["940d210"] + }, + "basic_animations/someOtherTests/total_time_area_bar": { + "refs": ["4503ca5"] + }, + "basic_animations/someOtherTests/total_time_area_column": { + "refs": ["1b27db5"] + }, + "basic_animations/someOtherTests/total_time_bar_line": { + "refs": ["5fe98b0"] + }, + "basic_animations/someOtherTests/total_time_column_line": { + "refs": ["3037126"] + }, + "chart_precision/area_negative_x": { + "refs": ["7b8bffc"] + }, + "chart_precision/area_negative_y": { + "refs": ["3d11d78"] + }, + "chart_precision/area_x": { + "refs": ["39d462f"] + }, + "chart_precision/area_y": { + "refs": ["66772c7"] + }, + "chart_precision/bubble": { + "refs": ["17230b5"] + }, + "chart_precision/circle": { + "refs": ["357570e"] + }, + "chart_precision/circle_negative": { + "refs": ["e4f4797"] + }, + "chart_precision/column_color_gradient": { + "refs": ["f3ce43a"] + }, + "chart_precision/column_lightness": { + "refs": ["9f4f365"] + }, + "chart_precision/line_negative_x": { + "refs": ["19a1d4d"] + }, + "chart_precision/line_negative_y": { + "refs": ["8f6c794"] + }, + "chart_precision/line_x": { + "refs": ["78fa5d0"] + }, + "chart_precision/line_y": { + "refs": ["ab1f390"] + }, + "chart_precision/rectangle_negative_x": { + "refs": ["be1c257"] + }, + "chart_precision/rectangle_negative_y": { + "refs": ["7fc8e3f"] + }, + "chart_precision/rectangle_x": { + "refs": ["b1ee211"] + }, + "chart_precision/rectangle_y": { + "refs": ["eef87c9"] + }, + "chart_precision/treemap": { + "refs": ["0061505"] + }, + "color_palettes/color_conti_gradient": { + "refs": ["42fb179"] + }, + "data_fault_and_formats/column_rectangle_less_disc": { + "refs": ["db55dd3"] + }, + "data_fault_and_formats/column_rectangle_more_conti": { + "refs": ["c2c2362"] + }, + "data_fault_and_formats/column_rectangle_more_disc": { + "refs": ["2d933e7"] + }, + "data_fault_and_formats/rectangle_data_cube": { + "refs": ["4b66407"] + }, + "lay_out/full_coxcomb_rectangle_2dis_1con": { + "refs": ["997f1a7"] + }, + "lay_out/full_line_negative_2dis_1con": { + "refs": ["7111815"] + }, + "lay_out/legend_plot_coxcomb_rectangle_2dis_1con": { + "refs": ["01b0b8e"] + }, + "lay_out/legend_plot_line_negative_2dis_1con": { + "refs": ["49cdf02"] + }, + "lay_out/plot_coxcomb_rectangle_2dis_1con": { + "refs": ["797b1fa"] + }, + "lay_out/plot_line_negative_2dis_1con": { + "refs": ["735c487"] + }, + "lay_out/title_plot_coxcomb_rectangle_2dis_1con": { + "refs": ["05811b7"] + }, + "lay_out/title_plot_line_negative_2dis_1con": { + "refs": ["138491d"] + }, + "operations/all_operations": { + "refs": ["4263129"] + }, + "operations/all_operations_sizeing": { + "refs": ["95d6654"] + }, + "operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate": { + "refs": ["8f3c3b6"] + }, + "operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate": { + "refs": ["a423365"] + }, + "operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble": { + "refs": ["d5dacd9"] + }, + "operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x": { + "refs": ["4ff6dbf"] + }, + "operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y": { + "refs": ["494cd94"] + }, + "operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X": { + "refs": ["3265d36"] + }, + "operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y": { + "refs": ["b14dc97"] + }, + "operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap": { + "refs": ["5bfecc2"] + }, + "operations/filter_tutorial_data/area_filter_x": { + "refs": ["25cc4ed"] + }, + "operations/filter_tutorial_data/area_filter_y": { + "refs": ["501cb83"] + }, + "operations/filter_tutorial_data/circle_filter": { + "refs": ["92a7475"] + }, + "operations/filter_tutorial_data/circle_filter_bubble": { + "refs": ["8620cfc"] + }, + "operations/filter_tutorial_data/filter_off_anim": { + "refs": ["c48435b"] + }, + "operations/filter_tutorial_data/line_filter_x": { + "refs": ["a4449ee"] + }, + "operations/filter_tutorial_data/line_filter_y": { + "refs": ["335d151"] + }, + "operations/filter_tutorial_data/rectangle_filter_treemap": { + "refs": ["7f5a115"] + }, + "operations/filter_tutorial_data/rectangle_filter_x": { + "refs": ["95625ae"] + }, + "operations/filter_tutorial_data/rectangle_filter_y": { + "refs": ["574aec3"] + }, + "operations/group_stack_tutorial_data/area_group_stack": { + "refs": ["f09dec1"] + }, + "operations/group_stack_tutorial_data/bubble_group_stack": { + "refs": ["36813ef"] + }, + "operations/group_stack_tutorial_data/line_group_stack": { + "refs": ["f0a40ec"] + }, + "operations/group_stack_tutorial_data/treemap_group_stack": { + "refs": ["fc6a0ae"] + }, + "operations/histogram_2_drilldown_negative_1dis_1con": { + "refs": ["8b3e947"] + }, + "operations/orientation_tutorial_data/area_orientation": { + "refs": ["b61766f"] + }, + "operations/orientation_tutorial_data/line_orientation": { + "refs": ["6e4f82e"] + }, + "operations/orientation_tutorial_data/rectangle_orientation": { + "refs": ["5af7144"] + }, + "operations/split_merge_tutorial_data/area_split_merge": { + "refs": ["6684e0d"] + }, + "operations/split_merge_tutorial_data/circle_split_merge": { + "refs": ["bb1ddf8"] + }, + "operations/split_merge_tutorial_data/line_split_merge": { + "refs": ["da6acc3"] + }, + "operations/split_merge_tutorial_data/rectangle_split_merge": { + "refs": ["ab5615c"] + }, + "shorthands/column_shorthands": { + "refs": ["00fe9df"] + }, + "static_chart_types/cartesian_coo_sys/area_1dis_1con": { + "refs": ["4454f52"] + }, + "static_chart_types/cartesian_coo_sys/area_negative_1dis_1con": { + "refs": ["62508e4"] + }, + "static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con": { + "refs": ["c3ab106"] + }, + "static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con": { + "refs": ["ebf168e"] + }, + "static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con": { + "refs": ["529d7da"] + }, + "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con": { + "refs": ["795ad09"] + }, + "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con": { + "refs": ["cd2b76f"] + }, + "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con": { + "refs": ["c71a56a"] + }, + "static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con": { + "refs": ["3aa634d"] + }, + "static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con": { + "refs": ["3fb1574"] + }, + "static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con": { + "refs": ["9d0d00a"] + }, + "static_chart_types/cartesian_coo_sys/line_negative_1dis_1con": { + "refs": ["2ceb802"] + }, + "static_chart_types/cartesian_coo_sys/line_negative_2dis_1con": { + "refs": ["3966d03"] + }, + "static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con": { + "refs": ["1108d45"] + }, + "static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con": { + "refs": ["2b1607f"] + }, + "static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con": { + "refs": ["8bb0676"] + }, + "static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con": { + "refs": ["fdfd809"] + }, + "static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con": { + "refs": ["93b7b2b"] + }, + "static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con": { + "refs": ["2ea83ca"] + }, + "static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con": { + "refs": ["c07818d"] + }, + "static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con": { + "refs": ["01da8f6"] + }, + "static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con": { + "refs": ["ee1c839"] + }, + "static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con": { + "refs": ["72bf791"] + }, + "static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con": { + "refs": ["19bd382"] + }, + "static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con": { + "refs": ["a4f5dec"] + }, + "static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con": { + "refs": ["d383cc0"] + }, + "static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con": { + "refs": ["67005d1"] + }, + "static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con": { + "refs": ["8ef2262"] + }, + "static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con": { + "refs": ["3948d0b"] + }, + "static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con": { + "refs": ["d7aeeb1"] + }, + "static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con": { + "refs": ["bb63562"] + }, + "static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con": { + "refs": ["c249f22"] + }, + "static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con": { + "refs": ["4d70a3c"] + }, + "static_chart_types/without_coo_sys/bubble_circle_1dis_2con": { + "refs": ["d844063"] + }, + "static_chart_types/without_coo_sys/bubble_circle_2dis_1con": { + "refs": ["2c9a31d"] + }, + "static_chart_types/without_coo_sys/bubble_circle_2dis_2con": { + "refs": ["cb16853"] + }, + "static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con": { + "refs": ["f7608b8"] + }, + "static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con": { + "refs": ["1f9bf87"] + }, + "web_content/analytical_operations/change_dimension/area_polar_stacked": { + "refs": ["def2298"] + }, + "web_content/analytical_operations/change_dimension/area_stacked": { + "refs": ["018f892"] + }, + "web_content/analytical_operations/change_dimension/column_stacked": { + "refs": ["f666c2a"] + }, + "web_content/analytical_operations/change_dimension/dotplot_1": { + "refs": ["ece5e2c"] + }, + "web_content/analytical_operations/change_dimension/dotplot_2": { + "refs": ["54fde50"] + }, + "web_content/analytical_operations/change_dimension/dotplot_polar": { + "refs": ["e0a2880"] + }, + "web_content/analytical_operations/change_dimension/line": { + "refs": ["fe5c424"] + }, + "web_content/analytical_operations/change_dimension/line_polar": { + "refs": ["9003b50"] + }, + "web_content/analytical_operations/compare/area_100percent_stacked": { + "refs": ["ae1efbc"] + }, + "web_content/analytical_operations/compare/area_polar_split": { + "refs": ["3ed985a"] + }, + "web_content/analytical_operations/compare/area_polar_stacked": { + "refs": ["b697914"] + }, + "web_content/analytical_operations/compare/area_split_stacked": { + "refs": ["f134d84"] + }, + "web_content/analytical_operations/compare/area_stacked": { + "refs": ["3264c93"] + }, + "web_content/analytical_operations/compare/column_100percent_stacked": { + "refs": ["b887eaa"] + }, + "web_content/analytical_operations/compare/column_groupped_1": { + "refs": ["1a662ea"] + }, + "web_content/analytical_operations/compare/column_groupped_2": { + "refs": ["30a2a9d"] + }, + "web_content/analytical_operations/compare/column_split_stacked_1": { + "refs": ["028b5f4"] + }, + "web_content/analytical_operations/compare/column_split_stacked_2": { + "refs": ["402a583"] + }, + "web_content/analytical_operations/compare/column_stacked_1": { + "refs": ["41b1a4e"] + }, + "web_content/analytical_operations/compare/column_stacked_2": { + "refs": ["812c194"] + }, + "web_content/analytical_operations/compare/coxcomb_1": { + "refs": ["68b44ab"] + }, + "web_content/analytical_operations/compare/coxcomb_2": { + "refs": ["7c30c03"] + }, + "web_content/analytical_operations/compare/line": { + "refs": ["8198112"] + }, + "web_content/analytical_operations/compare/line_polar": { + "refs": ["03a5cfe"] + }, + "web_content/analytical_operations/compare/stream_stacked": { + "refs": ["f7f0fde"] + }, + "web_content/analytical_operations/compare/waterfall": { + "refs": ["16a3b23"] + }, + "web_content/analytical_operations/distribute/existingmeasure_area_stacked": { + "refs": ["84be0b1"] + }, + "web_content/analytical_operations/distribute/existingmeasure_bubble": { + "refs": ["ac20402"] + }, + "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1": { + "refs": ["70bdcce"] + }, + "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2": { + "refs": ["1ce90c2"] + }, + "web_content/analytical_operations/distribute/existingmeasure_column_stacked": { + "refs": ["ab90c67"] + }, + "web_content/analytical_operations/distribute/existingmeasure_coxcomb": { + "refs": ["dee091c"] + }, + "web_content/analytical_operations/distribute/existingmeasure_dotplot": { + "refs": ["4f4bc72"] + }, + "web_content/analytical_operations/distribute/existingmeasure_scatterplot": { + "refs": ["90ef2ac"] + }, + "web_content/analytical_operations/distribute/existingmeasure_scatterplot_split": { + "refs": ["e705f72"] + }, + "web_content/analytical_operations/distribute/existingmeasure_treemap_stacked": { + "refs": ["1d75210"] + }, + "web_content/analytical_operations/distribute/newmeasure_column": { + "refs": ["2a392a8"] + }, + "web_content/analytical_operations/distribute/newmeasure_column_split_stacked": { + "refs": ["4e42333"] + }, + "web_content/analytical_operations/distribute/newmeasure_column_stacked": { + "refs": ["17b70ff"] + }, + "web_content/analytical_operations/distribute/newmeasure_dotplot_1": { + "refs": ["56f8887"] + }, + "web_content/analytical_operations/distribute/newmeasure_dotplot_2": { + "refs": ["7d277a4"] + }, + "web_content/analytical_operations/distribute/newmeasure_dotplot_3": { + "refs": ["e579936"] + }, + "web_content/analytical_operations/distribute/newmeasure_dotplot_4": { + "refs": ["6f9a654"] + }, + "web_content/analytical_operations/drilldown/area": { + "refs": ["b9a4259"] + }, + "web_content/analytical_operations/drilldown/area_polar": { + "refs": ["35b7681"] + }, + "web_content/analytical_operations/drilldown/bubble_and_distribution": { + "refs": ["17b4851"] + }, + "web_content/analytical_operations/drilldown/column_1": { + "refs": ["8b635e9"] + }, + "web_content/analytical_operations/drilldown/column_2": { + "refs": ["a088dc3"] + }, + "web_content/analytical_operations/drilldown/column_3": { + "refs": ["2c51570"] + }, + "web_content/analytical_operations/drilldown/column_4": { + "refs": ["512091a"] + }, + "web_content/analytical_operations/drilldown/column_stacked": { + "refs": ["dcadb20"] + }, + "web_content/analytical_operations/drilldown/donut": { + "refs": ["10db8a3"] + }, + "web_content/analytical_operations/drilldown/line_1": { + "refs": ["5d0b4ca"] + }, + "web_content/analytical_operations/drilldown/line_2": { + "refs": ["4bb8e34"] + }, + "web_content/analytical_operations/drilldown/line_polar_1": { + "refs": ["8d3ec8e"] + }, + "web_content/analytical_operations/drilldown/line_polar_2": { + "refs": ["26d8f0b"] + }, + "web_content/analytical_operations/drilldown/radial": { + "refs": ["bd556a5"] + }, + "web_content/analytical_operations/drilldown/scatterplot": { + "refs": ["34d1b1c"] + }, + "web_content/analytical_operations/filter/area_polar_stacked": { + "refs": ["e04af22"] + }, + "web_content/analytical_operations/filter/area_stacked": { + "refs": ["9647e35"] + }, + "web_content/analytical_operations/filter/line": { + "refs": ["4b47ba3"] + }, + "web_content/analytical_operations/filter/line_polar": { + "refs": ["669fa0b"] + }, + "web_content/analytical_operations/filter/stream_1": { + "refs": ["8d33040"] + }, + "web_content/analytical_operations/filter/stream_2": { + "refs": ["42eb797"] + }, + "web_content/analytical_operations/misc/donut_to_coxcomb": { + "refs": ["0c8aacf"] + }, + "web_content/analytical_operations/misc/orientation_marimekko": { + "refs": ["03cf1fb"] + }, + "web_content/analytical_operations/misc/pie_to_donut": { + "refs": ["f20e8be"] + }, + "web_content/analytical_operations/misc/make_space_with_polar": { + "refs": ["e1404a0"] + }, + "web_content/analytical_operations/split/area_polar_stacked": { + "refs": ["1f3406a"] + }, + "web_content/analytical_operations/split/area_stacked": { + "refs": ["fb84b42"] + }, + "web_content/analytical_operations/split/column_100percent_stacked": { + "refs": ["787bdff"] + }, + "web_content/analytical_operations/split/column_stacked": { + "refs": ["1e004a2"] + }, + "web_content/analytical_operations/split/coxcomb": { + "refs": ["fb8bcf1"] + }, + "web_content/analytical_operations/split/radial_stacked": { + "refs": ["adf92b7"] + }, + "web_content/analytical_operations/split/scatterplot_1": { + "refs": ["e05a92c"] + }, + "web_content/analytical_operations/split/scatterplot_2": { + "refs": ["12bf6f0"] + }, + "web_content/analytical_operations/stretch_to_proportion/area_stacked": { + "refs": ["c1c8d86"] + }, + "web_content/analytical_operations/stretch_to_proportion/column_groupped": { + "refs": ["96b9af3"] + }, + "web_content/analytical_operations/stretch_to_proportion/column_split_stacked": { + "refs": ["c4722ca"] + }, + "web_content/analytical_operations/stretch_to_proportion/column_stacked": { + "refs": ["3079652"] + }, + "web_content/analytical_operations/stretch_to_proportion/line": { + "refs": ["3ced485"] + }, + "web_content/analytical_operations/sum/area_100percent_stacked": { + "refs": ["4fe46e1"] + }, + "web_content/analytical_operations/sum/area_polar_split": { + "refs": ["e04e94d"] + }, + "web_content/analytical_operations/sum/area_polar_stacked": { + "refs": ["d35db18"] + }, + "web_content/analytical_operations/sum/area_split": { + "refs": ["0b319b5"] + }, + "web_content/analytical_operations/sum/area_stacked": { + "refs": ["66eb65d"] + }, + "web_content/analytical_operations/sum/bubble": { + "refs": ["1597bbf"] + }, + "web_content/analytical_operations/sum/bubble_to_column": { + "refs": ["e2bf91b"] + }, + "web_content/analytical_operations/sum/bubble_to_coxcomb": { + "refs": ["4010e8a"] + }, + "web_content/analytical_operations/sum/bubble_to_radial": { + "refs": ["adeac72"] + }, + "web_content/analytical_operations/sum/bubbleplot_1": { + "refs": ["122fa97"] + }, + "web_content/analytical_operations/sum/bubbleplot_2": { + "refs": ["fd48ec4"] + }, + "web_content/analytical_operations/sum/bubbleplot_to_radial": { + "refs": ["1547dae"] + }, + "web_content/analytical_operations/sum/column_100percent_stacked": { + "refs": ["8584e94"] + }, + "web_content/analytical_operations/sum/column_1": { + "refs": ["d8122ee"] + }, + "web_content/analytical_operations/sum/column_2": { + "refs": ["ee6e53a"] + }, + "web_content/analytical_operations/sum/column_to_bar": { + "refs": ["5cdbbca"] + }, + "web_content/analytical_operations/sum/column_to_waterfall": { + "refs": ["14f44ce"] + }, + "web_content/analytical_operations/sum/column_groupped": { + "refs": ["21e1ef1"] + }, + "web_content/analytical_operations/sum/column_split_stacked": { + "refs": ["030e269"] + }, + "web_content/analytical_operations/sum/column_stacked_1": { + "refs": ["23fb364"] + }, + "web_content/analytical_operations/sum/column_stacked_2": { + "refs": ["561a3ac"] + }, + "web_content/analytical_operations/sum/coxcomb_1": { + "refs": ["a8bea47"] + }, + "web_content/analytical_operations/sum/coxcomb_2": { + "refs": ["3ece925"] + }, + "web_content/analytical_operations/sum/coxcomb_split": { + "refs": ["dc1c419"] + }, + "web_content/analytical_operations/sum/dotplot": { + "refs": ["fc87038"] + }, + "web_content/analytical_operations/sum/line_1": { + "refs": ["685b0bd"] + }, + "web_content/analytical_operations/sum/line_2": { + "refs": ["eaa8a78"] + }, + "web_content/analytical_operations/sum/line_polar_1": { + "refs": ["f4e3003"] + }, + "web_content/analytical_operations/sum/line_polar_2": { + "refs": ["92631b9"] + }, + "web_content/analytical_operations/sum/scatterplot_polar": { + "refs": ["41b15a6"] + }, + "web_content/analytical_operations/sum/scatterplot": { + "refs": ["eda6d14"] + }, + "web_content/analytical_operations/sum/stream_stacked": { + "refs": ["28bf2a4"] + }, + "web_content/analytical_operations/sum/treemap": { + "refs": ["7f0cd74"] + }, + "web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con": { + "refs": ["bccd4e0"] + }, + "web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con": { + "refs": ["3a1a33b"] + }, + "web_content_removed/animated/composition_percentage_area_stream_3dis_1con": { + "refs": ["9e0b9a3"] + }, + "web_content_removed/animated/composition_percentage_column_3dis_1con": { + "refs": ["a1eb52f"] + }, + "web_content_removed/animated/composition_percentage_column_stream_3dis_1con": { + "refs": ["0a4f1a3"] + }, + "web_content_removed/animated/distribution_relationship_dotplot_dotplot": { + "refs": ["9bf8509"] + }, + "web_content_removed/animated/drill_aggreg_improve_line": { + "refs": ["54718c2"] + }, + "web_content_removed/animated/drilldown_aggregate_line": { + "refs": ["47693ee"] + }, + "web_content_removed/animated/merge_split_area_stream_3dis_1con": { + "refs": ["a691f16"] + }, + "web_content_removed/animated/merge_split_bar": { + "refs": ["939e0c4"] + }, + "web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con": { + "refs": ["01dae3c"] + }, + "web_content_removed/animated/orientation_circle": { + "refs": ["3b8a0c3"] + }, + "web_content_removed/animated/orientation_dot_circle": { + "refs": ["f1f3f7b"] + }, + "web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con": { + "refs": ["176fbdc"] + }, + "web_content_removed/animated/orientation_rectangle": { + "refs": ["24c160b"] + }, + "web_content_removed/animated/pie_donut2_rectangle_1dis_1con": { + "refs": ["0554a81"] + }, + "web_content_removed/animated/relationship_comparison_circle_2_bubble_plot": { + "refs": ["e76689d"] + }, + "web_content_removed/animated/relationship_total_bubble_plot_column": { + "refs": ["ae768b7"] + }, + "web_content_removed/animated/stack_group_area_line": { + "refs": ["a9baae0"] + }, + "web_content_removed/animated/stack_group_circle": { + "refs": ["c593f63"] + }, + "web_content_removed/animated/stack_group_treemap": { + "refs": ["839e607"] + }, + "web_content_removed/animated/total_element_bubble_2_bar": { + "refs": ["4f0c0dd"] + }, + "web_content_removed/animated/total_element_bubble_column": { + "refs": ["de3e165"] + }, + "web_content_removed/animated/treemap_radial": { + "refs": ["1913066"] + }, + "web_content_removed/animated/zoom_area": { + "refs": ["e7ad338"] + }, + "web_content_removed/animated/zoom_area_polar": { + "refs": ["f415237"] + }, + "web_content_removed/animated/zoom_line": { + "refs": ["7029760"] + }, + "web_content_removed/animated/zoom_line_polar": { + "refs": ["e104842"] + }, + "web_content/infinite": { + "refs": ["f9fb8da"] + }, + "web_content/presets/chart/column": { + "refs": ["6ba52a1"] + }, + "web_content/presets/chart/column_grouped": { + "refs": ["8005217"] + }, + "web_content/presets/chart/column_stacked": { + "refs": ["b60b323"] + }, + "web_content/presets/chart/column_splitted": { + "refs": ["e3d2e97"] + }, + "web_content/presets/chart/column_percentage": { + "refs": ["2a4d819"] + }, + "web_content/presets/chart/waterfall": { + "refs": ["143534a"] + }, + "web_content/presets/chart/mekko_stacked": { + "refs": ["ea834e5"] + }, + "web_content/presets/chart/marimekko": { + "refs": ["3b849f9"] + }, + "web_content/presets/chart/bar": { + "refs": ["9259b11"] + }, + "web_content/presets/chart/bar_grouped": { + "refs": ["75ecafc"] + }, + "web_content/presets/chart/bar_stacked": { + "refs": ["6b7d439"] + }, + "web_content/presets/chart/bar_splitted": { + "refs": ["f9b0c05"] + }, + "web_content/presets/chart/bar_percentage": { + "refs": ["2d8b5a1"] + }, + "web_content/presets/chart/lollipop": { + "refs": ["34fb91f"] + }, + "web_content/presets/plot/scatter": { + "refs": ["da33180"] + }, + "web_content/presets/plot/bubble": { + "refs": ["bd30c91"] + }, + "web_content/presets/chart/area": { + "refs": ["f7e4ce0"] + }, + "web_content/presets/chart/area_stacked": { + "refs": ["56d80ec"] + }, + "web_content/presets/chart/area_percentage": { + "refs": ["18ed5c6"] + }, + "web_content/presets/chart/area_splitted": { + "refs": ["379b15d"] + }, + "web_content/presets/graph/stream": { + "refs": ["615796b"] + }, + "web_content/presets/graph/stream_vertical": { + "refs": ["61c1430"] + }, + "web_content/presets/graph/violin": { + "refs": ["2931418"] + }, + "web_content/presets/graph/violin_vertical": { + "refs": ["118b2d9"] + }, + "web_content/presets/chart/line": { + "refs": ["831b02b"] + }, + "web_content/presets/chart/line_vertical": { + "refs": ["fd0d49c"] + }, + "web_content/presets/chart/pie": { + "refs": ["df9fb71"] + }, + "web_content/presets/chart/column_polar": { + "refs": ["0b9ecf8"] + }, + "web_content/presets/chart/column_polar_stacked": { + "refs": ["441ce16"] + }, + "web_content/presets/chart/pie_variable_radius": { + "refs": ["f450f9a"] + }, + "web_content/presets/chart/bar_radial": { + "refs": ["3b02c1b"] + }, + "web_content/presets/chart/bar_radial_stacked": { + "refs": ["a206518"] + }, + "web_content/presets/chart/donut": { + "refs": ["cc028a2"] + }, + "web_content/presets/chart/donut_nested": { + "refs": ["c808b6a"] + }, + "web_content/presets/plot/scatter_polar": { + "refs": ["33dcb3c"] + }, + "web_content/presets/chart/line_polar": { + "refs": ["612c32a"] + }, + "web_content/presets/treemap": { + "refs": ["bec5c68"] + }, + "web_content/presets/treemap_stacked": { + "refs": ["6ad6c69"] + }, + "web_content/presets/heatmap": { + "refs": ["3900bac"] + }, + "web_content/presets/chart/bubble": { + "refs": ["04134d0"] + }, + "web_content/presets/chart/bubble_stacked": { + "refs": ["cd1f691"] + }, + "web_content/presets_config/chart/bubble_stacked": { + "refs": ["cd1f691"] + }, + "web_content/static/chart/area": { + "refs": ["d1a82ab"] + }, + "web_content/static/chart/bar": { + "refs": ["e04d06b"] + }, + "web_content/static/chart/column": { + "refs": ["6ba52a1"] + }, + "web_content/static/chart/column_grouped": { + "refs": ["4b5078a"] + }, + "web_content/static/chart/column_single_stacked": { + "refs": ["0ddd341"] + }, + "web_content/static/chart/column_stacked": { + "refs": ["514bf91"] + }, + "web_content/static/plot/dot": { + "refs": ["13ff196"] + }, + "web_content/static/histogram": { + "refs": ["6a15362"] + }, + "web_content/static/chart/line_single": { + "refs": ["76160aa"] + }, + "web_content/static/chart/line": { + "refs": ["f191779"] + }, + "web_content/static/chart/marimekko": { + "refs": ["c4ca935"] + }, + "web_content/static/chart/mekko": { + "refs": ["1557736"] + }, + "web_content/static/plot/scatter": { + "refs": ["e3ffc41"] + }, + "web_content/static/plot/bubble": { + "refs": ["2b6b83d"] + }, + "web_content/static/chart/area_stacked": { + "refs": ["56d80ec"] + }, + "web_content/static/chart/mekko_stacked": { + "refs": ["67962d3"] + }, + "web_content/static/graph/stream_stacked": { + "refs": ["6539993"] + }, + "web_content/static/chart/waterfall": { + "refs": ["cbe8a00"] + }, + "web_content/static/chart/line_polar": { + "refs": ["1446255"] + }, + "web_content/static/chart/coxcomb": { + "refs": ["7f7dcf2"] + }, + "web_content/static/chart/donut": { + "refs": ["0483912"] + }, + "web_content/static/chart/pie": { + "refs": ["df9fb71"] + }, + "web_content/static/chart/bar_radial": { + "refs": ["9ca4172"] + }, + "web_content/static/chart/bar_stacked_radial": { + "refs": ["c065549"] + }, + "web_content/static/chart/area_polar": { + "refs": ["ab642f5"] + }, + "web_content/static/chart/line_single_polar": { + "refs": ["e5e646f"] + }, + "web_content/static/chart/bubble": { + "refs": ["04134d0"] + }, + "web_content/static/chart/bubble_stacked": { + "refs": ["ffab4dd"] + }, + "web_content/static/treemap": { + "refs": ["67aa3ab"] + }, + "web_content/static/treemap_stacked": { + "refs": ["6ad6c69"] + }, + "ww_animTiming/descartes-polar/01_d-p_r-r-r": { + "refs": ["613bd08"] + }, + "ww_animTiming/descartes-polar/02_d-p_c-r-c": { + "refs": ["4545f3a"] + }, + "ww_animTiming/descartes-polar/03_d-p_a-r-a": { + "refs": ["336378d"] + }, + "ww_animTiming/descartes-polar/04_d-p_l-r-l": { + "refs": ["25e86bc"] + }, + "ww_animTiming/descartes-polar/05_d-p_r-c-r": { + "refs": ["b65d696"] + }, + "ww_animTiming/descartes-polar/06_d-p_c-c-c": { + "refs": ["495e636"] + }, + "ww_animTiming/descartes-polar/07_d-p_a-c-a": { + "refs": ["2003df2"] + }, + "ww_animTiming/descartes-polar/08_d-p_l-c-l": { + "refs": ["d067431"] + }, + "ww_animTiming/descartes-polar/09_d-p_r-a-r": { + "refs": ["9027d67"] + }, + "ww_animTiming/descartes-polar/10_d-p_c-a-c": { + "refs": ["8ee3908"] + }, + "ww_animTiming/descartes-polar/11_d-p_a-a-a": { + "refs": ["324bf4b"] + }, + "ww_animTiming/descartes-polar/12_d-p_l-a-l": { + "refs": ["21ad937"] + }, + "ww_animTiming/descartes-polar/13_d-p_r-l-r": { + "refs": ["a491f75"] + }, + "ww_animTiming/descartes-polar/14_d-p_c-l-c": { + "refs": ["03bd776"] + }, + "ww_animTiming/descartes-polar/15_d-p_a-l-a": { + "refs": ["e0bfdbc"] + }, + "ww_animTiming/descartes-polar/16_d-p_l-l-l": { + "refs": ["6cae5be"] + }, + "ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r": { + "refs": ["a01ddc2"] + }, + "ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c": { + "refs": ["0e357e4"] + }, + "ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a": { + "refs": ["cb40a47"] + }, + "ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l": { + "refs": ["b0b1acf"] + }, + "ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r": { + "refs": ["bf1adce"] + }, + "ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c": { + "refs": ["9104d61"] + }, + "ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a": { + "refs": ["234adf8"] + }, + "ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l": { + "refs": ["19fe21a"] + }, + "ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r": { + "refs": ["490574c"] + }, + "ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c": { + "refs": ["f7abd23"] + }, + "ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a": { + "refs": ["5a28ea8"] + }, + "ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l": { + "refs": ["3692ff5"] + }, + "ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r": { + "refs": ["e81aa3f"] + }, + "ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c": { + "refs": ["8be0c6b"] + }, + "ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a": { + "refs": ["f5e6ec2"] + }, + "ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l": { + "refs": ["4ddf6f4"] + }, + "ww_animTiming/descartes/02_d-d_c-r-c": { + "refs": ["25c0583"] + }, + "ww_animTiming/descartes/03_d-d_a-r-a": { + "refs": ["880ecc2"] + }, + "ww_animTiming/descartes/04_d-d_l-r-l": { + "refs": ["e728acc"] + }, + "ww_animTiming/descartes/07_d-d_a-c-a": { + "refs": ["34d4dba"] + }, + "ww_animTiming/descartes/08_d-d_l-c-l": { + "refs": ["a735c11"] + }, + "ww_animTiming/descartes/12_d-d_l-a-l": { + "refs": ["fc111f1"] + }, + "ww_animTiming/descartes/easing_test": { + "refs": ["5695b12"] + }, + "ww_animTiming/descartes_orientation/01_d-d_o_r-r-r": { + "refs": ["a7933b3"] + }, + "ww_animTiming/descartes_orientation/02_d-d_o_c-r-c": { + "refs": ["9716305"] + }, + "ww_animTiming/descartes_orientation/03_d-d_o_a-r-a": { + "refs": ["ae14867"] + }, + "ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split": { + "refs": ["29a5549"] + }, + "ww_animTiming/descartes_orientation/04_d-d_o_l-r-l": { + "refs": ["f0011a3"] + }, + "ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked": { + "refs": ["0cd3931"] + }, + "ww_animTiming/descartes_orientation/05_d-d_o_r-c-r": { + "refs": ["e54cc3c"] + }, + "ww_animTiming/descartes_orientation/06_d-d_o_c-c-c": { + "refs": ["e61f19f"] + }, + "ww_animTiming/descartes_orientation/07_d-d_o_a-c-a": { + "refs": ["dfce038"] + }, + "ww_animTiming/descartes_orientation/08_d-d_o_l-c-l": { + "refs": ["2a406ab"] + }, + "ww_animTiming/descartes_orientation/09_d-d_o_r-a-r": { + "refs": ["1b7d7ea"] + }, + "ww_animTiming/descartes_orientation/10_d-d_o_c-a-c": { + "refs": ["a043e0e"] + }, + "ww_animTiming/descartes_orientation/11_d-d_o_a-a-a": { + "refs": ["2791f1a"] + }, + "ww_animTiming/descartes_orientation/12_d-d_o_l-a-l": { + "refs": ["5d82e8b"] + }, + "ww_animTiming/descartes_orientation/13_d-d_o_r-l-r": { + "refs": ["e5faf5b"] + }, + "ww_animTiming/descartes_orientation/14_d-d_o_c-l-c": { + "refs": ["6ceebca"] + }, + "ww_animTiming/descartes_orientation/15_d-d_o_a-l-a": { + "refs": ["e7fe673"] + }, + "ww_animTiming/descartes_orientation/16_d-d_o_l-l-l": { + "refs": ["85c78fe"] + }, + "ww_animTiming/polar/02_p-p_c-r-c": { + "refs": ["ecf9842"] + }, + "ww_animTiming/polar/03_p-p_a-r-a": { + "refs": ["e422d17"] + }, + "ww_animTiming/polar/04_p-p_l-r-l": { + "refs": ["d88b358"] + }, + "ww_animTiming/polar/07_p-p_a-c-a": { + "refs": ["e72a90b"] + }, + "ww_animTiming/polar/08_p-p_l-c-l": { + "refs": ["0a11f41"] + }, + "ww_animTiming/polar/12_p-p_l-a-l": { + "refs": ["6c796d3"] + }, + "ww_animTiming/polar_orientation/01_p-p_o_r-r-r": { + "refs": ["bdd4d8e"] + }, + "ww_animTiming/polar_orientation/02_p-p_o_c-r-c": { + "refs": ["db60d86"] + }, + "ww_animTiming/polar_orientation/03_p-p_o_a-r-a": { + "refs": ["6bff356"] + }, + "ww_animTiming/polar_orientation/04_p-p_o_l-r-l": { + "refs": ["57bc900"] + }, + "ww_animTiming/polar_orientation/05_p-p_o_r-c-r": { + "refs": ["1046707"] + }, + "ww_animTiming/polar_orientation/06_p-p_o_c-c-c": { + "refs": ["5c0fa3c"] + }, + "ww_animTiming/polar_orientation/07_p-p_o_a-c-a": { + "refs": ["e6265f9"] + }, + "ww_animTiming/polar_orientation/08_p-p_o_l-c-l": { + "refs": ["3f828ce"] + }, + "ww_animTiming/polar_orientation/09_p-p_o_r-a-r": { + "refs": ["45d8a28"] + }, + "ww_animTiming/polar_orientation/10_p-p_o_c-a-c": { + "refs": ["b76471b"] + }, + "ww_animTiming/polar_orientation/11_p-p_o_a-a-a": { + "refs": ["22cecc9"] + }, + "ww_animTiming/polar_orientation/12_p-p_o_l-a-l": { + "refs": ["d96ce7e"] + }, + "ww_animTiming/polar_orientation/13_p-p_o_r-l-r": { + "refs": ["0f41bc8"] + }, + "ww_animTiming/polar_orientation/14_p-p_o_c-l-c": { + "refs": ["4d9ac8d"] + }, + "ww_animTiming/polar_orientation/15_p-p_o_a-l-a": { + "refs": ["a7d056d"] + }, + "ww_animTiming/polar_orientation/16_p-p_o_l-l-l": { + "refs": ["c2b7355"] + }, + "ww_animTiming/without-descartes/01_w-d_r-r-r": { + "refs": ["f8e7d66"] + }, + "ww_animTiming/without-descartes/02_w-d_c-r-c": { + "refs": ["80c907f"] + }, + "ww_animTiming/without-descartes/05_w-d_r-c-r": { + "refs": ["ed99860"] + }, + "ww_animTiming/without-descartes/06_w-d_c-c-c": { + "refs": ["51d42e8"] + }, + "ww_animTiming/without-descartes/09_w-d_r-a-r": { + "refs": ["e23e83d"] + }, + "ww_animTiming/without-descartes/10_w-d_c-a-c": { + "refs": ["7696d6e"] + }, + "ww_animTiming/without-descartes/13_w-d_r-l-r": { + "refs": ["41ece34"] + }, + "ww_animTiming/without-descartes/14_w-d_c-l-c": { + "refs": ["bac592f"] + }, + "ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r": { + "refs": ["98daf3c"] + }, + "ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c": { + "refs": ["b079763"] + }, + "ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r": { + "refs": ["18674ce"] + }, + "ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c": { + "refs": ["4925408"] + }, + "ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r": { + "refs": ["dc4fa1e"] + }, + "ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c": { + "refs": ["843d652"] + }, + "ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r": { + "refs": ["2e7c3ee"] + }, + "ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c": { + "refs": ["0d330f3"] + }, + "ww_animTiming/without-polar/01_w-p_r-r-r": { + "refs": ["4debb3f"] + }, + "ww_animTiming/without-polar/02_w-p_c-r-c": { + "refs": ["778cad5"] + }, + "ww_animTiming/without-polar/05_w-p_r-c-r": { + "refs": ["55d1db9"] + }, + "ww_animTiming/without-polar/06_w-p_c-c-c": { + "refs": ["2a7649b"] + }, + "ww_animTiming/without-polar/09_w-p_r-a-r": { + "refs": ["d6bbe4f"] + }, + "ww_animTiming/without-polar/10_w-p_c-a-c": { + "refs": ["fbf20f4"] + }, + "ww_animTiming/without-polar/13_w-p_r-l-r": { + "refs": ["b22ca3f"] + }, + "ww_animTiming/without-polar/14_w-p_c-l-c": { + "refs": ["5b126f4"] + }, + "ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r": { + "refs": ["81fc9cb"] + }, + "ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c": { + "refs": ["5596473"] + }, + "ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r": { + "refs": ["ce92309"] + }, + "ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c": { + "refs": ["c4ccd0d"] + }, + "ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r": { + "refs": ["d4abbe4"] + }, + "ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c": { + "refs": ["835a78d"] + }, + "ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r": { + "refs": ["e060877"] + }, + "ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c": { + "refs": ["898c383"] + }, + "ww_animTiming/without/02_w-w_c-r-c": { + "refs": ["edce2d9"] + }, + "ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c": { + "refs": ["e4cb32d"] + }, + "ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a": { + "refs": ["bb35082"] + }, + "ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l": { + "refs": ["b4b56cf"] + }, + "ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r": { + "refs": ["bb0d6df"] + }, + "ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c": { + "refs": ["c3cb642"] + }, + "ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a": { + "refs": ["461fdec"] + }, + "ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l": { + "refs": ["fdfdfaa"] + }, + "ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r": { + "refs": ["21d4f78"] + }, + "ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c": { + "refs": ["7f4a511"] + }, + "ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a": { + "refs": ["f10b2c1"] + }, + "ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l": { + "refs": ["4d72bc6"] + }, + "ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r": { + "refs": ["38f7786"] + }, + "ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c": { + "refs": ["fbcb746"] + }, + "ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a": { + "refs": ["71bfcbb"] + }, + "ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l": { + "refs": ["91d69c9"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r": { + "refs": ["87c33d6"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c": { + "refs": ["c7981e6"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a": { + "refs": ["76d8014"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l": { + "refs": ["d4ffa05"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r": { + "refs": ["43f00a0"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c": { + "refs": ["ce69c8a"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a": { + "refs": ["2f088e8"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l": { + "refs": ["167c694"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r": { + "refs": ["8c26a23"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c": { + "refs": ["3f1ed7f"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a": { + "refs": ["3959367"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l": { + "refs": ["f1fb6a9"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r": { + "refs": ["b107554"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c": { + "refs": ["60499cc"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a": { + "refs": ["ff1f803"] + }, + "ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l": { + "refs": ["66c898c"] + }, + "ww_animTiming_TESTS/descartes/02_d-d_c-r-c": { + "refs": ["aa9e9d6"] + }, + "ww_animTiming_TESTS/descartes/03_d-d_a-r-a": { + "refs": ["2dd7f8b"] + }, + "ww_animTiming_TESTS/descartes/04_d-d_l-r-l": { + "refs": ["548adc8"] + }, + "ww_animTiming_TESTS/descartes/07_d-d_a-c-a": { + "refs": ["58c3e7b"] + }, + "ww_animTiming_TESTS/descartes/08_d-d_l-c-l": { + "refs": ["4734d8b"] + }, + "ww_animTiming_TESTS/descartes/12_d-d_l-a-l": { + "refs": ["5647e86"] + }, + "ww_animTiming_TESTS/descartes/easing_test": { + "refs": ["e4aae39"] + }, + "ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r": { + "refs": ["bbdaea8"] + }, + "ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c": { + "refs": ["8723c8e"] + }, + "ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a": { + "refs": ["5558508"] + }, + "ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split": { + "refs": ["285b038"] + }, + "ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l": { + "refs": ["3df3405"] + }, + "ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked": { + "refs": ["db3345c"] + }, + "ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r": { + "refs": ["aabbace"] + }, + "ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c": { + "refs": ["157472c"] + }, + "ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a": { + "refs": ["24fc2d2"] + }, + "ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l": { + "refs": ["b9efe87"] + }, + "ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r": { + "refs": ["bbfa964"] + }, + "ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c": { + "refs": ["106d1b5"] + }, + "ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a": { + "refs": ["ceae4ce"] + }, + "ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l": { + "refs": ["0daf2a5"] + }, + "ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r": { + "refs": ["bfd2420"] + }, + "ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c": { + "refs": ["4443f32"] + }, + "ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a": { + "refs": ["bac188f"] + }, + "ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l": { + "refs": ["1ae5f2a"] + }, + "ww_animTiming_TESTS/polar/02_p-p_c-r-c": { + "refs": ["f515353"] + }, + "ww_animTiming_TESTS/polar/03_p-p_a-r-a": { + "refs": ["549a7e7"] + }, + "ww_animTiming_TESTS/polar/04_p-p_l-r-l": { + "refs": ["624428b"] + }, + "ww_animTiming_TESTS/polar/07_p-p_a-c-a": { + "refs": ["f61c579"] + }, + "ww_animTiming_TESTS/polar/08_p-p_l-c-l": { + "refs": ["b67410e"] + }, + "ww_animTiming_TESTS/polar/12_p-p_l-a-l": { + "refs": ["888e89f"] + }, + "ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r": { + "refs": ["00e1598"] + }, + "ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c": { + "refs": ["05ae087"] + }, + "ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a": { + "refs": ["f0c7467"] + }, + "ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l": { + "refs": ["9ed9325"] + }, + "ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r": { + "refs": ["1f73c7e"] + }, + "ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c": { + "refs": ["cecccc8"] + }, + "ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a": { + "refs": ["6bbffdd"] + }, + "ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l": { + "refs": ["33697f1"] + }, + "ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r": { + "refs": ["66a2833"] + }, + "ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c": { + "refs": ["374a284"] + }, + "ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a": { + "refs": ["bc27f85"] + }, + "ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l": { + "refs": ["0e20e13"] + }, + "ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r": { + "refs": ["c57dd9d"] + }, + "ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c": { + "refs": ["8010f8a"] + }, + "ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a": { + "refs": ["b3f37f8"] + }, + "ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l": { + "refs": ["a25054f"] + }, + "ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r": { + "refs": ["ab730d0"] + }, + "ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c": { + "refs": ["6ab99fa"] + }, + "ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r": { + "refs": ["6889c08"] + }, + "ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c": { + "refs": ["2fd660a"] + }, + "ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r": { + "refs": ["124abc7"] + }, + "ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c": { + "refs": ["20dce86"] + }, + "ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r": { + "refs": ["cfbafde"] + }, + "ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c": { + "refs": ["4a736ad"] + }, + "ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r": { + "refs": ["8893e1d"] + }, + "ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c": { + "refs": ["f76d9f7"] + }, + "ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r": { + "refs": ["ed6ba58"] + }, + "ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c": { + "refs": ["b24a3b0"] + }, + "ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r": { + "refs": ["d84559e"] + }, + "ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c": { + "refs": ["4c6b493"] + }, + "ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r": { + "refs": ["14e23d9"] + }, + "ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c": { + "refs": ["5c95387"] + }, + "ww_animTiming_TESTS/without-polar/01_w-p_r-r-r": { + "refs": ["be70807"] + }, + "ww_animTiming_TESTS/without-polar/02_w-p_c-r-c": { + "refs": ["9341567"] + }, + "ww_animTiming_TESTS/without-polar/05_w-p_r-c-r": { + "refs": ["3738cab"] + }, + "ww_animTiming_TESTS/without-polar/06_w-p_c-c-c": { + "refs": ["dcb3f76"] + }, + "ww_animTiming_TESTS/without-polar/09_w-p_r-a-r": { + "refs": ["7e9fa0f"] + }, + "ww_animTiming_TESTS/without-polar/10_w-p_c-a-c": { + "refs": ["b97edbc"] + }, + "ww_animTiming_TESTS/without-polar/13_w-p_r-l-r": { + "refs": ["13d5878"] + }, + "ww_animTiming_TESTS/without-polar/14_w-p_c-l-c": { + "refs": ["2a15690"] + }, + "ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r": { + "refs": ["fd7f93b"] + }, + "ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c": { + "refs": ["7a1a8e0"] + }, + "ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r": { + "refs": ["4ea7da2"] + }, + "ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c": { + "refs": ["f610cd3"] + }, + "ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r": { + "refs": ["26fc0b8"] + }, + "ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c": { + "refs": ["b708426"] + }, + "ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r": { + "refs": ["bf16a44"] + }, + "ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c": { + "refs": ["780fd41"] + }, + "ww_animTiming_TESTS/without/02_w-w_c-r-c": { + "refs": ["df8b392"] + }, + "ww_next_steps/next_steps/02_C_R": { + "refs": ["d3200b8"] + }, + "ww_next_steps/next_steps/02_C_R_water_comparison_sum": { + "refs": ["8d0e8af"] + }, + "ww_next_steps/next_steps/03_C_R": { + "refs": ["353b20e"] + }, + "ww_next_steps/next_steps/04_C_R": { + "refs": ["23de11d"] + }, + "ww_next_steps/next_steps/05_C_R": { + "refs": ["705aa0e"] + }, + "ww_next_steps/next_steps/21_C_C_dotplot": { + "refs": ["c991435"] + }, + "ww_next_steps/next_steps/22_C_C": { + "refs": ["ec4da6c"] + }, + "ww_next_steps/next_steps/28_C_A": { + "refs": ["f396191"] + }, + "ww_next_steps/next_steps/35_C_A_violin": { + "refs": ["bdce840"] + }, + "ww_next_steps/next_steps/38_C_L_line": { + "refs": ["a08c7c4"] + }, + "ww_next_steps/next_steps_Tests/02_C_R": { + "refs": ["f13c899"] + }, + "ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum": { + "refs": ["81c6c1e"] + }, + "ww_next_steps/next_steps_Tests/03_C_R": { + "refs": ["4bbe3d5"] + }, + "ww_next_steps/next_steps_Tests/04_C_R": { + "refs": ["9ccb70a"] + }, + "ww_next_steps/next_steps_Tests/05_C_R": { + "refs": ["80c5969"] + }, + "ww_next_steps/next_steps_Tests/21_C_C_dotplot": { + "refs": ["3551f7a"] + }, + "ww_next_steps/next_steps_Tests/22_C_C": { + "refs": ["81fcf00"] + }, + "ww_next_steps/next_steps_Tests/28_C_A": { + "refs": ["f952e2d"] + }, + "ww_next_steps/next_steps_Tests/38_C_L_line": { + "refs": ["3114075"] + }, + "ww_next_steps/next_steps_Tests/axisLabel_problem": { + "refs": ["d33f180"] + }, + "ww_next_steps/next_steps_byOperations/compare/comparison_01": { + "refs": ["93acfe0"] + }, + "ww_next_steps/next_steps_byOperations/compare/comparison_02": { + "refs": ["08a0618"] + }, + "ww_next_steps/next_steps_byOperations/compare/comparison_03": { + "refs": ["08d01ca"] + }, + "ww_next_steps/next_steps_byOperations/compare/comparison_04": { + "refs": ["ff004d8"] + }, + "ww_next_steps/next_steps_byOperations/compare/comparison_05": { + "refs": ["e6258dc"] + }, + "ww_next_steps/next_steps_byOperations/compare/comparison_06": { + "refs": ["801b9e9"] + }, + "ww_next_steps/next_steps_byOperations/compare/comparison_09": { + "refs": ["455989a"] + }, + "ww_next_steps/next_steps_byOperations/compare/comparison_10": { + "refs": ["981e41c"] + }, + "ww_next_steps/next_steps_byOperations/compare/comparison_11": { + "refs": ["a6fd567"] + }, + "ww_next_steps/next_steps_byOperations/components/components_01": { + "refs": ["342d170"] + }, + "ww_next_steps/next_steps_byOperations/components/components_02": { + "refs": ["cd56f3c"] + }, + "ww_next_steps/next_steps_byOperations/components/components_03": { + "refs": ["921ed62"] + }, + "ww_next_steps/next_steps_byOperations/components/components_04": { + "refs": ["02aa8c5"] + }, + "ww_next_steps/next_steps_byOperations/components/components_05": { + "refs": ["e2fbaa1"] + }, + "ww_next_steps/next_steps_byOperations/components/components_06": { + "refs": ["13c460d"] + }, + "ww_next_steps/next_steps_byOperations/components/components_07": { + "refs": ["b1e897f"] + }, + "ww_next_steps/next_steps_byOperations/distribute/distribution_01": { + "refs": ["c62bfe5"] + }, + "ww_next_steps/next_steps_byOperations/distribute/distribution_02": { + "refs": ["c6621c5"] + }, + "ww_next_steps/next_steps_byOperations/distribute/distribution_03": { + "refs": ["05d3b8d"] + }, + "ww_next_steps/next_steps_byOperations/distribute/distribution_04": { + "refs": ["209ce4e"] + }, + "ww_next_steps/next_steps_byOperations/distribute/distribution_05": { + "refs": ["d5720b5"] + }, + "ww_next_steps/next_steps_byOperations/distribute/distribution_06": { + "refs": ["ad24e8f"] + }, + "ww_next_steps/next_steps_byOperations/distribute/distribution_07": { + "refs": ["f677f00"] + }, + "ww_next_steps/next_steps_byOperations/distribute/distribution_08": { + "refs": ["552a70d"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_01": { + "refs": ["1cd042b"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_02": { + "refs": ["ab2e262"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_03": { + "refs": ["351fa89"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_04": { + "refs": ["15bfe7c"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_05": { + "refs": ["967d152"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_06": { + "refs": ["46b31d2"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_07": { + "refs": ["a4a3c9c"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_10": { + "refs": ["84661bb"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_11": { + "refs": ["b3ae780"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_12": { + "refs": ["0b9b392"] + }, + "ww_next_steps/next_steps_byOperations/drilldown/drilldown_13": { + "refs": ["7e73c39"] + }, + "ww_next_steps/next_steps_byOperations/other/other_add_measure_01": { + "refs": ["483158f"] + }, + "ww_next_steps/next_steps_byOperations/ratio/ratio_01": { + "refs": ["0537644"] + }, + "ww_next_steps/next_steps_byOperations/ratio/ratio_02": { + "refs": ["6722052"] + }, + "ww_next_steps/next_steps_byOperations/ratio/ratio_03": { + "refs": ["935af47"] + }, + "ww_next_steps/next_steps_byOperations/ratio/ratio_04": { + "refs": ["42c1132"] + }, + "ww_next_steps/next_steps_byOperations/ratio/ratio_05": { + "refs": ["dd91874"] + }, + "ww_next_steps/next_steps_byOperations/remove/remove_01": { + "refs": ["3311ca6"] + }, + "ww_next_steps/next_steps_byOperations/remove/remove_02": { + "refs": ["005290d"] + }, + "ww_next_steps/next_steps_byOperations/remove/remove_03": { + "refs": ["0be1bdf"] + }, + "ww_next_steps/next_steps_byOperations/remove/remove_04": { + "refs": ["738524b"] + }, + "ww_next_steps/next_steps_byOperations/remove/remove_05": { + "refs": ["d283ab6"] + }, + "ww_next_steps/next_steps_byOperations/remove/remove_07": { + "refs": ["1f89123"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01": { + "refs": ["856b617"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02": { + "refs": ["8133691"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03": { + "refs": ["a7e2dad"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04": { + "refs": ["83af5bb"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05": { + "refs": ["2c9f2e4"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06": { + "refs": ["56f11ba"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07": { + "refs": ["32d2f7e"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08": { + "refs": ["816f652"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09": { + "refs": ["dd25757"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10": { + "refs": ["e13a025"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11": { + "refs": ["ddab152"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12": { + "refs": ["e3981f1"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13": { + "refs": ["5054074"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14": { + "refs": ["09bbd5c"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16": { + "refs": ["f955d94"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17": { + "refs": ["7b5dad0"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18": { + "refs": ["45eaabf"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19": { + "refs": ["ecd3bbd"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20": { + "refs": ["bc77498"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21": { + "refs": ["ce484ef"] + }, + "ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22": { + "refs": ["464507f"] + }, + "ww_next_steps/next_steps_byOperations/total/total_01": { + "refs": ["6a0650c"] + }, + "ww_next_steps/next_steps_byOperations/total/total_02": { + "refs": ["d0e74b5"] + }, + "ww_next_steps/next_steps_byOperations/total/total_03": { + "refs": ["2536593"] + }, + "ww_next_steps/next_steps_byOperations/total/total_04": { + "refs": ["467e169"] + }, + "ww_next_steps/next_steps_byOperations/total/total_05": { + "refs": ["0bc214e"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con": { + "refs": ["2c4a1e2"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot": { + "refs": ["be8f8c9"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line": { + "refs": ["37df636"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con": { + "refs": ["575862f"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle": { + "refs": ["658a4b8"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con": { + "refs": ["a4fcf7c"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02": { + "refs": ["7cf90ec"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial": { + "refs": ["6f96e8b"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area": { + "refs": ["58ff641"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar": { + "refs": ["f0c3b9d"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line": { + "refs": ["0bc591f"] + }, + "ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar": { + "refs": ["40e952f"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir": { + "refs": ["b23583f"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are": { + "refs": ["54e4569"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir": { + "refs": ["28e89f3"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin": { + "refs": ["13ce7e7"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec": { + "refs": ["36d132e"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are": { + "refs": ["a8293e3"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c": { + "refs": ["650e2b1"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c": { + "refs": ["fb6acd5"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are": { + "refs": ["21bd67a"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c": { + "refs": ["23724f3"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin": { + "refs": ["892aa0e"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c": { + "refs": ["c4d93f3"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c": { + "refs": ["f84aa68"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c": { + "refs": ["aec9e33"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c": { + "refs": ["e9181e0"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c": { + "refs": ["8d48a66"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c": { + "refs": ["7174bcb"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c": { + "refs": ["d486211"] + }, + "ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c": { + "refs": ["656d2cc"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are": { + "refs": ["11d5543"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are": { + "refs": ["f14caf3"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are": { + "refs": ["8500722"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are": { + "refs": ["904f6c7"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir": { + "refs": ["b07ddc1"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir": { + "refs": ["3c8c128"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir": { + "refs": ["b6a2acb"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir": { + "refs": ["d590fc1"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO": { + "refs": ["97f39bc"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir": { + "refs": ["291c62e"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir": { + "refs": ["2f6ed3b"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1": { + "refs": ["496e8d0"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2": { + "refs": ["6492fa4"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1": { + "refs": ["c089fc9"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir": { + "refs": ["6989f33"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir": { + "refs": ["0832cec"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c": { + "refs": ["8199321"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c": { + "refs": ["44bb6b5"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c": { + "refs": ["bc86182"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c": { + "refs": ["b29e84f"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c": { + "refs": ["83d4803"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c": { + "refs": ["b5e88b1"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c": { + "refs": ["3f24637"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c": { + "refs": ["40bbaf5"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c": { + "refs": ["fc91b40"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c": { + "refs": ["a18e9fd"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c": { + "refs": ["172b697"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin": { + "refs": ["1fc3475"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin": { + "refs": ["3955fa7"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin": { + "refs": ["c2e3e9a"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin": { + "refs": ["674e6e9"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin": { + "refs": ["35736c6"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin": { + "refs": ["2eb5dc2"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin": { + "refs": ["c953f4f"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin": { + "refs": ["7ad7b93"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin": { + "refs": ["1535913"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec": { + "refs": ["231442e"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec": { + "refs": ["973ed37"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec": { + "refs": ["eba06ea"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c": { + "refs": ["8653cbc"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c": { + "refs": ["174b9e0"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c": { + "refs": ["dacfe19"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c": { + "refs": ["206f7f9"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c": { + "refs": ["607ac8e"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c": { + "refs": ["a011cdc"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c": { + "refs": ["818a881"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c": { + "refs": ["fbfbaa6"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c": { + "refs": ["632859c"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c": { + "refs": ["f969fb5"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c": { + "refs": ["7b75634"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c": { + "refs": ["fdb69c0"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c": { + "refs": ["6b50d05"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are": { + "refs": ["62ba1f9"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are": { + "refs": ["9ae5217"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are": { + "refs": ["54e1549"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are": { + "refs": ["9a7d671"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are": { + "refs": ["a411d8e"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble": { + "refs": ["da57be9"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are": { + "refs": ["903ef51"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are": { + "refs": ["86995ae"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are": { + "refs": ["2410b70"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are": { + "refs": ["ed3d08f"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are": { + "refs": ["23ae80a"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter": { + "refs": ["3d8a027"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c": { + "refs": ["263279d"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir": { + "refs": ["80e9182"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c": { + "refs": ["24843bb"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c": { + "refs": ["afa8cd6"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c": { + "refs": ["6e6fe2f"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c": { + "refs": ["fcd387d"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c": { + "refs": ["ff6ffe2"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c": { + "refs": ["48b4bb0"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c": { + "refs": ["16e00c5"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c": { + "refs": ["e598bb2"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c": { + "refs": ["f422c89"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c": { + "refs": ["d22a2c5"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c": { + "refs": ["1d3e949"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin": { + "refs": ["4937e6b"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin": { + "refs": ["f1e9fc7"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin": { + "refs": ["5ee8720"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin": { + "refs": ["e52dcf5"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin": { + "refs": ["036f9a9"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin": { + "refs": ["5bb4d62"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin": { + "refs": ["cb542c7"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin": { + "refs": ["2c02a12"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin": { + "refs": ["0b378c0"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin": { + "refs": ["78a8e0e"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin": { + "refs": ["646834f"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin": { + "refs": ["3bf10bf"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin": { + "refs": ["43dfc65"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin": { + "refs": ["31b9af2"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin": { + "refs": ["069705d"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin": { + "refs": ["7d807d6"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec": { + "refs": ["668f799"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec": { + "refs": ["eda9bde"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c": { + "refs": ["7276ebf"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c": { + "refs": ["f648ce4"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c": { + "refs": ["105dac1"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c": { + "refs": ["ebc68cf"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c": { + "refs": ["12fed76"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c": { + "refs": ["3822fbe"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c": { + "refs": ["8eec77d"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c": { + "refs": ["0ee25ed"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c": { + "refs": ["d0bb047"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c": { + "refs": ["ddbf98f"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c": { + "refs": ["86520b6"] + }, + "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c": { + "refs": ["0e684b3"] + }, + "ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut": { + "refs": ["1aca6bf"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area": { + "refs": ["1ffa601"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line": { + "refs": ["c346364"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area": { + "refs": ["5cf59b1"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum": { + "refs": ["6843bbc"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation": { + "refs": ["e7bfa6b"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum": { + "refs": ["10faadd"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum": { + "refs": ["3141682"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x": { + "refs": ["c119139"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation": { + "refs": ["ad997c7"] + }, + "ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test": { + "refs": ["e1e79b2"] + }, + "ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown": { + "refs": ["591692c"] + }, + "ww_noFade/wNoFade_Tests/1_des_pol/area/03_are": { + "refs": ["dc4b216"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/area/04a_are": { + "refs": ["9f961f9"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/area/04b_are": { + "refs": ["a132075"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/area/06a_are": { + "refs": ["6789f6e"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/area/06b_are": { + "refs": ["dd43b58"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1": { + "refs": ["7f9bfb9"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir": { + "refs": ["a1d9187"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir": { + "refs": ["d3fda3c"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir": { + "refs": ["417a34a"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir": { + "refs": ["8296987"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO": { + "refs": ["c28243e"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir": { + "refs": ["541f839"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir": { + "refs": ["d7d08d7"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1": { + "refs": ["54f7d00"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2": { + "refs": ["7f8caac"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1": { + "refs": ["b7bbf06"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c": { + "refs": ["9b57be3"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c": { + "refs": ["c19382f"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c": { + "refs": ["302bd37"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c": { + "refs": ["1bfc65a"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c": { + "refs": ["b5ceb59"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c": { + "refs": ["ef389c1"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c": { + "refs": ["c03351b"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c": { + "refs": ["518315a"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c": { + "refs": ["f0dbc7e"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c": { + "refs": ["e26bfb5"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c": { + "refs": ["f128aa0"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin": { + "refs": ["5dc2c76"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin": { + "refs": ["48a276e"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin": { + "refs": ["02d0e3d"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin": { + "refs": ["678d295"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin": { + "refs": ["2d43903"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin": { + "refs": ["b41917c"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c": { + "refs": ["4397bcb"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c": { + "refs": ["c988cd0"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c": { + "refs": ["27417ae"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c": { + "refs": ["af15ed7"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c": { + "refs": ["79fd1d6"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c": { + "refs": ["d26ce0c"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c": { + "refs": ["192c0b8"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c": { + "refs": ["1f1e4d8"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c": { + "refs": ["33320ff"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c": { + "refs": ["f9e6308"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c": { + "refs": ["59a77b8"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c": { + "refs": ["1af8eff"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c": { + "refs": ["ea87d05"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution": { + "refs": ["b1dc7f4"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1": { + "refs": ["181a9c4"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1": { + "refs": ["7cd05d0"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c": { + "refs": ["aa58cd6"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c": { + "refs": ["40b7f79"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c": { + "refs": ["819fdce"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c": { + "refs": ["21ba8df"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c": { + "refs": ["b20c0ec"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c": { + "refs": ["cf72829"] + }, + "ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c": { + "refs": ["9a78f8b"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are": { + "refs": ["607e9b6"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are": { + "refs": ["08a208d"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are": { + "refs": ["47b0ba5"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are": { + "refs": ["4ee256f"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are": { + "refs": ["d5fdcba"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble": { + "refs": ["9b6a90e"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are": { + "refs": ["daf230f"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are": { + "refs": ["4fa386c"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are": { + "refs": ["9b80cb4"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are": { + "refs": ["496d448"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are": { + "refs": ["d74dd0c"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble": { + "refs": ["e96ccc6"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1": { + "refs": ["3b9495e"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1": { + "refs": ["8cf593f"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1": { + "refs": ["dddafa1"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1": { + "refs": ["4c8b3f4"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter": { + "refs": ["af4ef64"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c": { + "refs": ["48a6ade"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c": { + "refs": ["5c4e57a"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir": { + "refs": ["d83d897"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir": { + "refs": ["b42c296"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c": { + "refs": ["d50c59b"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c": { + "refs": ["453c987"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c": { + "refs": ["4286bc6"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c": { + "refs": ["f092ff3"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c": { + "refs": ["c7126b4"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c": { + "refs": ["5b85a6b"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c": { + "refs": ["e9acd73"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c": { + "refs": ["5e4010d"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c": { + "refs": ["223cee4"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c": { + "refs": ["60862b4"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c": { + "refs": ["a8e844a"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1": { + "refs": ["0841bd2"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c": { + "refs": ["b815a38"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c": { + "refs": ["91846f1"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c": { + "refs": ["6e9a060"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c": { + "refs": ["3414628"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c": { + "refs": ["112f33d"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c": { + "refs": ["2f6d0b9"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c": { + "refs": ["0d37de0"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c": { + "refs": ["d0f432e"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin": { + "refs": ["7c20f48"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin": { + "refs": ["c0d0d33"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin": { + "refs": ["141e639"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin": { + "refs": ["a93d332"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin": { + "refs": ["25f5e39"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin": { + "refs": ["11ef692"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin": { + "refs": ["793c69d"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin": { + "refs": ["8d80e81"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin": { + "refs": ["9f636cf"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin": { + "refs": ["abce8b4"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin": { + "refs": ["d94f479"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin": { + "refs": ["0c89816"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin": { + "refs": ["9db1f0f"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin": { + "refs": ["3d5b1da"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin": { + "refs": ["9507372"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin": { + "refs": ["77cba60"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin": { + "refs": ["b2dfc3b"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1": { + "refs": ["09b0926"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1": { + "refs": ["b0dc569"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1": { + "refs": ["88ed61e"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1": { + "refs": ["5f81c31"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1": { + "refs": ["9b1f540"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1": { + "refs": ["30019d3"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1": { + "refs": ["7e64bad"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1": { + "refs": ["0b37c3c"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec": { + "refs": ["fe19440"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec": { + "refs": ["23b1593"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c": { + "refs": ["1a54549"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c": { + "refs": ["f9dfab8"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c": { + "refs": ["bb6687e"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c": { + "refs": ["634d8ee"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c": { + "refs": ["3d20469"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c": { + "refs": ["66704be"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c": { + "refs": ["180c206"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c": { + "refs": ["d3d1667"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c": { + "refs": ["121661e"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c": { + "refs": ["04ba2f9"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c": { + "refs": ["5fbeba5"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c": { + "refs": ["bdc0ff3"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1": { + "refs": ["0e97ae5"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1": { + "refs": ["bade63b"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1": { + "refs": ["e492a5a"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1": { + "refs": ["a860d9f"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1": { + "refs": ["34badef"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1": { + "refs": ["eabfaf1"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1": { + "refs": ["a94f66c"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1": { + "refs": ["44c90e9"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c": { + "refs": ["7b2811b"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c": { + "refs": ["efcf893"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c": { + "refs": ["990dc60"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c": { + "refs": ["a685430"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c": { + "refs": ["ac1ed71"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c": { + "refs": ["deace7c"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter": { + "refs": ["4f88b89"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c": { + "refs": ["fba58e2"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c": { + "refs": ["41884bc"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c": { + "refs": ["3c6fe6f"] + }, + "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c": { + "refs": ["39b0f95"] + }, + "ww_noFade/wNoFade_wPromotion/0_01_reorder": { + "refs": ["c43fb1d"] + }, + "ww_noFade/wNoFade_wPromotion/1_06b_are": { + "refs": ["d9d6dc4"] + }, + "ww_noFade/wNoFade_wPromotion/2_05b_lin": { + "refs": ["fb50624"] + }, + "ww_noFade/wNoFade_wPromotion/3_04_cir": { + "refs": ["960e157"] + }, + "ww_noFade/wNoFade_wPromotion/4_06b_rec_1c": { + "refs": ["3170d39"] + }, + "ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c": { + "refs": ["c91bfb1"] + }, + "ww_noFade/wNoFade_wPromotion/5_04a_rec_1c": { + "refs": ["94c94e8"] + }, + "ww_noFade/wNoFade_wPromotion/6_04a_cir_1c": { + "refs": ["873d0e3"] + }, + "ww_noFade/wNoFade_wPromotion/7_05_cir_2c": { + "refs": ["4def5b2"] + }, + "ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c": { + "refs": ["4cd9302"] + }, + "ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c": { + "refs": ["f034846"] + }, + "ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c": { + "refs": ["0164dcc"] + }, + "ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram": { + "refs": ["298f298"] + }, + "ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative": { + "refs": ["f29bdbd"] + }, + "web_content/presets_config/chart/column_stacked": { + "refs": ["b60b323"] + }, + "ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart": { + "refs": ["45122e2"] + }, + "ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart": { + "refs": ["945db54"] + }, + "ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart": { + "refs": ["11199c5"] + }, + "ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall": { + "refs": ["ae2b423"] + }, + "ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart": { + "refs": ["1065865"] + }, + "ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart": { + "refs": ["7d7c580"] + }, + "ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart": { + "refs": ["c42d76b"] + }, + "ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart": { + "refs": ["508383a"] + }, + "ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart": { + "refs": ["066f42f"] + }, + "ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative": { + "refs": ["2fd66d1"] + }, + "ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative": { + "refs": ["d31dccc"] + }, + "web_content/presets_config/chart/bar_stacked": { + "refs": ["6b7d439"] + }, + "ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart": { + "refs": ["6e7e15e"] + }, + "ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart": { + "refs": ["2a52ddf"] + }, + "ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart": { + "refs": ["afdeda8"] + }, + "ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart": { + "refs": ["7f382af"] + }, + "ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart": { + "refs": ["25c68b8"] + }, + "ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart": { + "refs": ["714bb74"] + }, + "ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot": { + "refs": ["7a79697"] + }, + "ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot": { + "refs": ["9d8d76c"] + }, + "ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram": { + "refs": ["95be630"] + }, + "ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart": { + "refs": ["edba15c"] + }, + "ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative": { + "refs": ["d713566"] + }, + "ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels": { + "refs": ["e3f5df2"] + }, + "ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart": { + "refs": ["b3363f6"] + }, + "ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart": { + "refs": ["048bcc1"] + }, + "ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph": { + "refs": ["3495268"] + }, + "ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert": { + "refs": ["0146778"] + }, + "ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph": { + "refs": ["5549c4b"] + }, + "ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert": { + "refs": ["266a0d4"] + }, + "ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart": { + "refs": ["afdce6c"] + }, + "ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega": { + "refs": ["4f426e6"] + }, + "ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel": { + "refs": ["34afa08"] + }, + "ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega": { + "refs": ["34cb2a2"] + }, + "ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert": { + "refs": ["aa85e89"] + }, + "ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart": { + "refs": ["190c250"] + }, + "web_content/presets_config/chart/column_polar_stacked": { + "refs": ["441ce16"] + }, + "web_content/presets_config/chart/column_polar": { + "refs": ["0b9ecf8"] + }, + "ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange": { + "refs": ["8dc6f72"] + }, + "web_content/presets_config/chart/pie_variable_radius": { + "refs": ["f450f9a"] + }, + "ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart": { + "refs": ["a174717"] + }, + "ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart": { + "refs": ["eaa6140"] + }, + "ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart": { + "refs": ["7050780"] + }, + "web_content/presets_config/chart/bar_radial": { + "refs": ["3b02c1b"] + }, + "web_content/presets_config/chart/bar_radial_stacked": { + "refs": ["a206518"] + }, + "ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart": { + "refs": ["4c984e5"] + }, + "ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot": { + "refs": ["d7a099d"] + }, + "ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart": { + "refs": ["72b6aab"] + }, + "ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph": { + "refs": ["1eb4d01"] + }, + "ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart": { + "refs": ["e2c10b8"] + }, + "ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart": { + "refs": ["19ad791"] + }, + "web_content/presets_config/treemap": { + "refs": ["bec5c68"] + }, + "ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient": { + "refs": ["dfa1f88"] + }, + "ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3": { + "refs": ["4905e0d"] + }, + "ww_samples_for_presets/without_coo_sys/60_W_R_heatmap": { + "refs": ["4d4090e"] + }, + "www_new_analytical_operations/operations/01_drilldown/Bar_Bar": { + "refs": ["6396b85"] + }, + "www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column": { + "refs": ["160a9c3"] + }, + "www_new_analytical_operations/operations/02_sum/Area_Stacked_Area": { + "refs": ["2b22a2e"] + }, + "www_new_analytical_operations/operations/02_sum/Bubble_Bubble": { + "refs": ["f76ebc3"] + }, + "www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1": { + "refs": ["9bae423"] + }, + "www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2": { + "refs": ["38db045"] + }, + "www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar": { + "refs": ["c9b5412"] + }, + "www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1": { + "refs": ["e77a910"] + }, + "www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2": { + "refs": ["ee5acf5"] + }, + "www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut": { + "refs": ["6d24ce6"] + }, + "www_new_analytical_operations/operations/02_sum/Line_Line_3": { + "refs": ["decd6cf"] + }, + "www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area": { + "refs": ["ae0e815"] + }, + "www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line": { + "refs": ["f0cad11"] + }, + "www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area": { + "refs": ["f2b760e"] + }, + "basic_animations/markers_morph/marker_trans_polar": { + "refs": ["2c59683"] + }, + "web_content/cookbook/chart_types/exploded_pie_chart": { + "refs": ["1344b43"] + }, + "web_content/cookbook/chart_types/gant_chart": { + "refs": ["810d76a"] + }, + "web_content/cookbook/chart_types/historgram": { + "refs": ["b048452"] + }, + "web_content/cookbook/chart_types/network_graph": { + "refs": ["ae6af16"] + }, + "web_content/cookbook/chart_types/step_line_chart": { + "refs": ["42f7276"] + }, + "web_content/cookbook/chart_types/trendline": { + "refs": ["50a894d"] + }, + "web_content/cookbook/rendering/3d_chart": { + "refs": ["d48a74d"] + }, + "web_content/cookbook/rendering/custom_markers": { + "refs": ["700b80b"] + }, + "web_content/cookbook/rendering/dropshadow_on_marker": { + "refs": ["86553d8"] + }, + "web_content/cookbook/rendering/rounded_bars": { + "refs": ["5cda7e8"] + }, + "web_content/cookbook/rendering/smooth_line_chart": { + "refs": ["6723a44"] + }, + "web_content/cookbook/rendering/sparse_axis_labels": { + "refs": ["af76977"] + }, + "web_content/cookbook/style/d3_color_palette": { + "refs": ["bd104b0"] + }, + "web_content/cookbook/style/dark_theme": { + "refs": ["2d08a18"] + }, + "web_content/cookbook/style/highligh_markers": { + "refs": ["48d6207"] + }, + "web_content/cookbook/rendering/background_image": { + "refs": ["111a932"] + }, + "web_content/cookbook/rendering/custom_linetype": { + "refs": ["8fe17e9"] + }, + "web_content/cookbook/rendering/gradient_on_marker": { + "refs": ["878d4a5"] + }, + "web_content/cookbook/rendering/grid_lines": { + "refs": ["54b1945"] + }, + "web_content/cookbook/rendering/image_axis_labels": { + "refs": ["8a6930e"] + }, + "web_content/cookbook/rendering/random_gradient_pattern": { + "refs": ["60d9217"] + }, + "web_content/cookbook/data_source/paint": { + "refs": ["bcc6cdb"] + }, + "web_content/cookbook/interactive/filter_on_click": { + "refs": ["4bdf36b"] + }, + "web_content/cookbook/interactive/mouse_scroll": { + "refs": ["18a84af"] + }, + "web_content/cookbook/interactive/mouse_wheel_zoom": { + "refs": ["aacefa4"] + }, + "web_content/cookbook/interactive/window_zoom": { + "refs": ["4c082d0"] + }, + "web_content/cookbook/interactive/data_selector_combobox": { + "refs": ["da8ec16"] + }, + "web_content/cookbook/interactive/filter_slider": { + "refs": ["87b8197"] + }, + "web_content/cookbook/interactive/range_slider_zoom": { + "refs": ["34f9d9c"] + }, + "web_content/cookbook/data_source/csv_load": { + "refs": ["0be6e8c"] + }, + "web_content/cookbook/rendering/motion_blur": { + "refs": ["be67912"] + }, + "web_content/cookbook/style/colorfilter": { + "refs": ["05406ff"] + } + } } diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_polar_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_polar_stacked.mjs index c209da7e9..26479f8e5 100755 --- a/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_polar_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_polar_stacked.mjs @@ -4,38 +4,38 @@ const description = `- replace the Dimension and the Measure on the Y-axis with - and the Dimension on the Color channel with a new one - \\+ here is an example how you can add a color palette to the Style` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, + color: 'Country' + }, - geometry: 'area', - coordSystem: 'polar' - } - }), + geometry: 'area', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Joy factors', 'Value 3 (+)'], - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Joy factors', 'Value 3 (+)'], + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_stacked.mjs index d45f2b66b..a4b4fd3ba 100755 --- a/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_stacked.mjs @@ -4,37 +4,37 @@ const description = `- replace the Dimension and the Measure on the Y-axis with - and the Dimension on the Color channel with a new one - \\+ here is an example how you can add a color palette to the Style` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, - geometry: 'area' - } - }), + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Joy factors', 'Value 3 (+)'], - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Joy factors', 'Value 3 (+)'], + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/column_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/change_dimension/column_stacked.mjs index 6bd107145..b80b3f8c3 100755 --- a/test/integration/test_cases/web_content/analytical_operations/change_dimension/column_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/change_dimension/column_stacked.mjs @@ -2,32 +2,32 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- replace the Dimension on the X-axis with a new one` const testSteps = [ - (chart) => { - const f = data_6.filter - return chart.animate({ - data: Object.assign(data_6, { - filter: (record) => f(record) && record.Year >= 10 - }), + (chart) => { + const f = data_6.filter + return chart.animate({ + data: Object.assign(data_6, { + filter: (record) => f(record) && record.Year >= 10 + }), - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }) - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }) + }, - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors' - // label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors' + // label: 'Value 2 (+)' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_1.mjs b/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_1.mjs index 62f1f4288..e37398c5e 100755 --- a/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_1.mjs @@ -2,30 +2,30 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- replace the Dimension on the X-axis with a new one` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors' - // label: 'Country' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors' + // label: 'Country' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_2.mjs b/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_2.mjs index 55c58bbdd..a757cac1b 100755 --- a/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_2.mjs @@ -3,36 +3,36 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- replace the Dimension on the Color channel with a new one - \\+ here is an example how you can add a color palette to the Style` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_polar.mjs b/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_polar.mjs index 56e1c4524..ef2d9db86 100755 --- a/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_polar.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_polar.mjs @@ -3,37 +3,37 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- replace the Dimension on the Color channel with a new one - \\+ here is an example how you can add a color palette to the Style` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'circle', - coordSystem: 'polar' - } - }), + geometry: 'circle', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/line.mjs b/test/integration/test_cases/web_content/analytical_operations/change_dimension/line.mjs index f63b84365..b03edf932 100755 --- a/test/integration/test_cases/web_content/analytical_operations/change_dimension/line.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/change_dimension/line.mjs @@ -3,43 +3,43 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- replace the Dimension on the Color channel with a new one - \\+ here is an example how you can add a color palette to the Style` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Joy factors' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Joy factors' + }, - geometry: 'line' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + geometry: 'line' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Country' - } - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + color: 'Country' + } + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/line_polar.mjs b/test/integration/test_cases/web_content/analytical_operations/change_dimension/line_polar.mjs index 453eff8c5..48005c8a0 100755 --- a/test/integration/test_cases/web_content/analytical_operations/change_dimension/line_polar.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/change_dimension/line_polar.mjs @@ -3,44 +3,44 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- replace the Dimension on the Color channel with a new one - \\+ here is an example how you can add a color palette to the Style` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Joy factors' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Joy factors' + }, - geometry: 'line', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + geometry: 'line', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Country' - } - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + color: 'Country' + } + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_100percent_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/area_100percent_stacked.mjs index e5e7c3567..f32dc9b7d 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/area_100percent_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/area_100percent_stacked.mjs @@ -5,37 +5,37 @@ const description = `- remove the Dimension from Y-axis - set the Align parameter from 'stretch' to 'min' - switch the Geometry from Area to Line` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area', - align: 'stretch' - } - }), + geometry: 'area', + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, - geometry: 'line', - align: 'min' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'line', + align: 'min' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { title } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_split.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_split.mjs index 294339d9c..279f37aa9 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_split.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_split.mjs @@ -4,38 +4,38 @@ const description = `- remove the Dimension from Y-axis a - set the Split parameter from true to false - switch the Geometry from Area to Line` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Value 1 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 1 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area', - split: true, - coordSystem: 'polar' - } - }), + geometry: 'area', + split: true, + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 1 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 1 (+)' + }, - geometry: 'line', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'line', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_stacked.mjs index f913fe036..dc46c3875 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_stacked.mjs @@ -3,36 +3,36 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from Y-axis - switch the Geometry from Area to Line` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area', - coordSystem: 'polar' - } - }), + geometry: 'area', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, - geometry: 'line' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'line' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_split_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/area_split_stacked.mjs index 5c5921d7f..bc7f539da 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/area_split_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/area_split_stacked.mjs @@ -4,37 +4,37 @@ const description = `- remove the Dimension from Y-axis a - set the Split parameter from true to false - switch the Geometry from Area to Line` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area', - split: true - } - }), + geometry: 'area', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, - geometry: 'line', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'line', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/area_stacked.mjs index fa8c8820e..9439ef486 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/area_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/area_stacked.mjs @@ -3,35 +3,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from Y-axis - switch the Geometry from Area to Line` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area' - } - }), + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, - geometry: 'line' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'line' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_100percent_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/column_100percent_stacked.mjs index ddf195eb8..b0bae50b6 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/column_100percent_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/column_100percent_stacked.mjs @@ -4,36 +4,36 @@ const title = '100% Stacked Column' const description = `- move the Dimension from the Y-axis to the X-axis, behind the one there (group) - set the Align parameter from 'stretch' to 'min'` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, - align: 'stretch' - } - }), + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)' + }, - align: 'min' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + align: 'min' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { title } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_1.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_1.mjs index 7a18fa1a9..b41cdc30c 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_1.mjs @@ -3,46 +3,46 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const description = `- move the 2nd Dimension from X-axis to the Y-axis - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'rectangle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, + geometry: 'rectangle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_2.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_2.mjs index 8b9fe077f..d51069570 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_2.mjs @@ -4,44 +4,44 @@ const description = `- move the 2nd Dimension from X-axis to the Y-axis - add the Measure to the Label channel too - set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: ['Country', 'Year'], - y: 'Value 2 (+)', - color: 'Country' - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, + config: { + channels: { + x: ['Country', 'Year'], + y: 'Value 2 (+)', + color: 'Country' + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_1.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_1.mjs index b0902a5fe..f1c41f3d4 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_1.mjs @@ -4,48 +4,48 @@ const description = `- move the dimension from the Y-axis to the X-axis, in fron - null the Label channel - set the Split parameter to false` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - label: null - }, + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + label: null + }, - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_2.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_2.mjs index 917718ce9..b58c64568 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_2.mjs @@ -4,48 +4,48 @@ const description = `- move the dimension from the Y-axis to the X-axis, behind - null the Label channel - set the Split parameter to false` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country', 'Year'], - y: 'Value 2 (+)', - label: null - }, + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country', 'Year'], + y: 'Value 2 (+)', + label: null + }, - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_1.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_1.mjs index d7d374725..48e5d8547 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_1.mjs @@ -2,32 +2,32 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const description = `- move the Dimension from the Y-axis to the X-axis, behind the one there (group)` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_2.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_2.mjs index 762923436..55facf300 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_2.mjs @@ -3,33 +3,33 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the Y-axis - switch the Geometry from Rectangle to Line` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, - geometry: 'line' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'line' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_1.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_1.mjs index 52e469fc0..21407b877 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_1.mjs @@ -3,35 +3,35 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- move the 2nd Dimension from X-axis to the Y-axis - set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: ['Country', 'Year'], - y: { set: 'Value 2 (+)', range: { min: '-20%' } }, - color: 'Country' - }, + config: { + channels: { + x: ['Country', 'Year'], + y: { set: 'Value 2 (+)', range: { min: '-20%' } }, + color: 'Country' + }, - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'] - }, + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'] + }, - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_2.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_2.mjs index 7b13b2f78..acf5eea50 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_2.mjs @@ -2,41 +2,41 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const description = `- move the Dimension from the Y-axis to the X-axis, behind the one there (group)` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0.1em' - } - } - } - }), + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0.1em' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/line.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/line.mjs index 9caf29780..b9c09d5e6 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/line.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/line.mjs @@ -4,36 +4,36 @@ const description = `- add the Dimension which is on the Color channel to the Y- - switch the Geometry from Line to Area - set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'line' - } - }), + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Country'] - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Country'] + }, - geometry: 'area', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'area', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/line_polar.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/line_polar.mjs index b10179bc8..51bcb2bfa 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/line_polar.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/line_polar.mjs @@ -4,37 +4,37 @@ const description = `- add the Dimension which is on the Color channel to the Y- - switch the Geometry from Line to Area - set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'line', - coordSystem: 'polar' - } - }), + geometry: 'line', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } } - }, + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } } + }, - geometry: 'area', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'area', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs index 7b9cef818..24601e5de 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs @@ -10,63 +10,64 @@ const description = `This is a 2-step animation: - move the Dimension from the Y-axis to the X-axis (before the other) - set the Split parameter to false` const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!event.detail.text.includes('$') && !isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart - }, + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!event.detail.text.includes('$') && !isNaN(year) && year % 5 !== 0) + event.preventDefault() + }) + return chart + }, - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Year > 1972 - }), - config: { - channels: { - x: 'Year', - y: ['Revenue', 'Format'], - color: 'Format' - }, + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Year > 1972 + }), + config: { + channels: { + x: 'Year', + y: ['Revenue', 'Format'], + color: 'Format' + }, - geometry: 'area', - align: 'center' - }, - style: { - plot: { - yAxis: { - label: { - numberScale: 'K, M, B, T' - } - } - } - } - }), + geometry: 'area', + align: 'center' + }, + style: { + plot: { + yAxis: { + label: { + numberScale: 'K, M, B, T' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - align: 'min', - split: true - } - }), + (chart) => + chart.animate({ + config: { + align: 'min', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Format', 'Year'], - y: 'Revenue' - }, + (chart) => + chart.animate({ + config: { + channels: { + x: ['Format', 'Year'], + y: 'Revenue' + }, - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/waterfall.mjs b/test/integration/test_cases/web_content/analytical_operations/compare/waterfall.mjs index 7b7506cec..4dd22a29a 100755 --- a/test/integration/test_cases/web_content/analytical_operations/compare/waterfall.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/compare/waterfall.mjs @@ -3,54 +3,54 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the Y-axis - \\+ here is an example of how you can set a colorGradient palette in the Style` const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Country === 'Belgium' - }), - config: { - channels: { - x: 'Year', - y: ['Year', 'Value 5 (+/-)'], - color: { - set: 'Value 5 (+/-)', - range: { min: '-45', max: '45' } - }, - label: 'Value 5 (+/-)' - }, + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Country === 'Belgium' + }), + config: { + channels: { + x: 'Year', + y: ['Year', 'Value 5 (+/-)'], + color: { + set: 'Value 5 (+/-)', + range: { min: '-45', max: '45' } + }, + label: 'Value 5 (+/-)' + }, - legend: 'color' - }, - style: { - plot: { - marker: { - colorGradient: [ - '#ac1727 0', - '#e36c56 0.15', - '#f4b096 0.35', - '#d5d7d9 0.5', - '#9fbffa 0.65', - '#6389ec 0.85', - '#3d51b8 1' - ].join(), - label: { position: 'top' } - } - } - } - }), + legend: 'color' + }, + style: { + plot: { + marker: { + colorGradient: [ + '#ac1727 0', + '#e36c56 0.15', + '#f4b096 0.35', + '#d5d7d9 0.5', + '#9fbffa 0.65', + '#6389ec 0.85', + '#3d51b8 1' + ].join(), + label: { position: 'top' } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Value 5 (+/-)'] } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Value 5 (+/-)'] } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_area_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_area_stacked.mjs index 8ce1d5bb2..bc0ce4720 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_area_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_area_stacked.mjs @@ -3,35 +3,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the Y-axis - switch the Geometry from Area to Circle` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, - geometry: 'area' - } - }), + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble.mjs index d1e9df072..6db5d3738 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble.mjs @@ -2,30 +2,30 @@ import { data_14 } from '../../../../test_data/chart_types_eu.mjs' const description = `- move the Measure from the Size channel to the Y-axis` const testSteps = [ - (chart) => - chart.animate({ - data: data_14, + (chart) => + chart.animate({ + data: data_14, - config: { - channels: { - noop: ['Year', 'Country'], - size: 'Value 2 (+)' - }, + config: { + channels: { + noop: ['Year', 'Country'], + size: 'Value 2 (+)' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: ['Year', 'Country'], - y: 'Value 2 (+)', - size: null - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: ['Year', 'Country'], + y: 'Value 2 (+)', + size: null + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1.mjs index f031bdf7a..51cd05d29 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1.mjs @@ -6,46 +6,46 @@ const description = `- move the Size channel's Dimension to the X-axis - null the Label channel - switch the Geometry from Circle to Rectangle` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, + config: { + channels: { + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, - size: null, - label: null - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, + size: null, + label: null + }, - geometry: 'rectangle', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0.1em' - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'rectangle', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0.1em' + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2.mjs index b1cf41735..d7a601182 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2.mjs @@ -6,38 +6,38 @@ const description = `- move the Size channel's Dimension to the X-axis - null the Label channel - switch the Geometry from Circle to Rectangle` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, + config: { + channels: { + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - size: null, - label: null - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + size: null, + label: null + }, - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_column_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_column_stacked.mjs index 6fd707312..1456c0684 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_column_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_column_stacked.mjs @@ -3,33 +3,33 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the Y-axis - switch the Geometry from Rectangle to Circle` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_coxcomb.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_coxcomb.mjs index d3d4e1ced..f7c1aa508 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_coxcomb.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_coxcomb.mjs @@ -3,42 +3,42 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the Y-axis - switch the Geometry from Rectangle to Circle` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, + color: 'Country' + }, - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0.1em' - } - } - } - }), + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0.1em' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_dotplot.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_dotplot.mjs index f082b23aa..090415c8d 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_dotplot.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_dotplot.mjs @@ -3,37 +3,37 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- replace the Dimension on the Y-axis with the Measure from the X-axis - the other Dimension, which is on the no-operation (Noop) channel, is added to the X-axis also` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 3 (+)', - y: 'Country', - noop: 'Year', - color: 'Country' - }, + config: { + channels: { + x: 'Value 3 (+)', + y: 'Country', + noop: 'Year', + color: 'Country' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)' + }, - orientation: 'horizontal' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + orientation: 'horizontal' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot.mjs index d0bf0baed..e2c5d649b 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot.mjs @@ -10,70 +10,70 @@ const description = `This Vizzu animation has 4 simple steps (4 animates): 4th: back` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 6 (+/-)', - /* The noop channel splits the markers as all the other channels + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 6 (+/-)', + /* The noop channel splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Joy factors', - /* Lightness channel is used to assist the viewer + noop: 'Joy factors', + /* Lightness channel is used to assist the viewer in following the animation. */ - lightness: 'Year' - }, + lightness: 'Year' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year' - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year' + }, - orientation: 'horizontal' - } - }), + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 5 (+/-)' - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 5 (+/-)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Joy factors', - noop: null - }, + (chart) => + chart.animate({ + config: { + channels: { + y: 'Joy factors', + noop: null + }, - orientation: 'vertical' - } - }), + orientation: 'vertical' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 6 (+/-)', - noop: 'Joy factors' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 6 (+/-)', + noop: 'Joy factors' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot_split.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot_split.mjs index a44b25006..96fafd8c9 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot_split.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot_split.mjs @@ -3,38 +3,38 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the X-axis - set the Split parameter from true to false` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: ['Value 1 (+)', 'Country'], - y: 'Value 3 (+)', - noop: 'Year', - color: 'Country' - }, + config: { + channels: { + x: ['Value 1 (+)', 'Country'], + y: 'Value 3 (+)', + noop: 'Year', + color: 'Country' + }, - geometry: 'circle', - split: true, - orientation: 'vertical' - } - }), + geometry: 'circle', + split: true, + orientation: 'vertical' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 1 (+)' - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 1 (+)' + }, - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_treemap_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_treemap_stacked.mjs index d55aa50af..9318cbca4 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_treemap_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_treemap_stacked.mjs @@ -5,41 +5,41 @@ const description = `- move the Size channel's Dimension to the X-axis - duplicate the Dimension in the Color channel onto the Y-axis - null the Label channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Year' - } - } - }), + config: { + channels: { + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Year' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - size: null, - label: null - } - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + size: null, + label: null + } + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column.mjs index 792a9247c..4f47324f6 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column.mjs @@ -5,35 +5,35 @@ const description = `- move the Dimension from the X-axis & replace the Measure - add a new Measure to the X-axis - switch the Geometry from Rectangle (default) to Circe` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }), + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 4 (+/-)', - color: 'Country', - label: 'Country' - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 4 (+/-)', + color: 'Country', + label: 'Country' + }, - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_split_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_split_stacked.mjs index 3f081c4d4..47bade16c 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_split_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_split_stacked.mjs @@ -6,49 +6,49 @@ const description = `- move the Dimension from the X-axis & replace the Measure - switch the Geometry from Rectangle (default) to Circe - set the Split parameter from true to false` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 2 (+)', - label: 'Year' - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 2 (+)', + label: 'Year' + }, - geometry: 'circle', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'circle', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_stacked.mjs index 1ae483636..b471fe075 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_stacked.mjs @@ -5,35 +5,35 @@ const description = `- move the Dimension from the X-axis & replace the Measure - add a new Measure to the X-axis - switch the Geometry from Rectangle (default) to Circe` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 2 (+)', - label: 'Year' - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 2 (+)', + label: 'Year' + }, - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_1.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_1.mjs index 20cc3a5ce..d4f7080b8 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_1.mjs @@ -4,35 +4,35 @@ const description = `- move the Dimension from Y-axis to the no-operation (Noop) - add a Measure to the Y-axis - set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_1974_1990, - config: { - channels: { - x: 'Year', - y: { set: 'Index', range: { max: '105%' } } - }, + (chart) => + chart.animate({ + data: data_1974_1990, + config: { + channels: { + x: 'Year', + y: { set: 'Index', range: { max: '105%' } } + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'IMDb Rating', range: { max: '105%' } }, - noop: 'Index' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'IMDb Rating', range: { max: '105%' } }, + noop: 'Index' + }, - orientation: 'vertical', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + orientation: 'vertical', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_2.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_2.mjs index df5264bd1..5881d7ce7 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_2.mjs @@ -2,29 +2,29 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Measure to the X-axis` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - y: 'Value 2 (+)', - noop: 'Year', - color: 'Country' - }, + config: { + channels: { + y: 'Value 2 (+)', + noop: 'Year', + color: 'Country' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 3 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 3 (+)' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_3.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_3.mjs index 52e478889..2a10cd442 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_3.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_3.mjs @@ -2,34 +2,34 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const description = `- replace the Dimension on the Y-axis to a new Measure` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Country', - noop: ['Year'], - color: 'Country' - }, + config: { + channels: { + x: 'Value 1 (+)', + y: 'Country', + noop: ['Year'], + color: 'Country' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 3 (+)' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 3 (+)' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_4.mjs b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_4.mjs index c51b60c13..46c78148e 100755 --- a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_4.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_4.mjs @@ -3,40 +3,40 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Measure to the X-axis - move the Dimension from the no-operation (Noop) channel to the Label channel` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Joy factors', - y: 'Value 5 (+/-)', - color: 'Joy factors', - /* The noop channel (no operation) splits the markers as all the other channels + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Joy factors', + y: 'Value 5 (+/-)', + color: 'Joy factors', + /* The noop channel (no operation) splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Country_code' - }, + noop: 'Country_code' + }, - geometry: 'circle' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + geometry: 'circle' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Joy factors', 'Value 6 (+/-)'], - label: 'Country_code', - noop: null - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Joy factors', 'Value 6 (+/-)'], + label: 'Country_code', + noop: null + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/area.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/area.mjs index db74b08ae..e60bc695e 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/area.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/area.mjs @@ -2,33 +2,33 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the Y-axis and the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)' + }, - geometry: 'area' - } - }), + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Country'], - color: 'Country' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Country'], + color: 'Country' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/area_polar.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/area_polar.mjs index 0a90d6268..db0536544 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/area_polar.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/area_polar.mjs @@ -2,34 +2,34 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the Y-axis and the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)' + }, - geometry: 'area', - coordSystem: 'polar' - } - }), + geometry: 'area', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Country'], - color: 'Country' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Country'], + color: 'Country' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/bubble_and_distribution.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/bubble_and_distribution.mjs index b57b084de..000e12b2c 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/bubble_and_distribution.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/bubble_and_distribution.mjs @@ -10,48 +10,48 @@ const description = `This Vizzu animation consist of 2 steps (animates): - move the new Sub Dimension to the No-Operation (Noop) channel - null the Label channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - - config: { - channels: { - color: 'Country', - size: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - - geometry: 'circle' - } - }), - - (chart) => - chart.animate({ - config: { - channels: { - size: ['Year', 'Value 2 (+)'] - }, - - geometry: 'circle' - } - }), - - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - noop: 'Year', - size: 'Value 2 (+)', - label: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: data_8, + + config: { + channels: { + color: 'Country', + size: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + + geometry: 'circle' + } + }), + + (chart) => + chart.animate({ + config: { + channels: { + size: ['Year', 'Value 2 (+)'] + }, + + geometry: 'circle' + } + }), + + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + noop: 'Year', + size: 'Value 2 (+)', + label: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_1.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_1.mjs index c1065016e..e6d4b3ad6 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_1.mjs @@ -3,33 +3,33 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add 2 new Dimensions to the X-axis - and one of them to the Color channel too` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }), + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country', - label: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country', + label: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_2.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_2.mjs index 92ec1e457..3b9de448a 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_2.mjs @@ -3,33 +3,33 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the X-axis - and another to the Y axis and the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }), + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_3.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_3.mjs index 8f7fea970..4f27683cf 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_3.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_3.mjs @@ -2,30 +2,30 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the X-axis.` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }), + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Country' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Country' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_4.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_4.mjs index e3d6a40d4..b5310f53d 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_4.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_4.mjs @@ -2,38 +2,38 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add 2 new Dimensions to the Y-axis and the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_stacked.mjs index c4893770d..bcd5ff07a 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/column_stacked.mjs @@ -2,32 +2,32 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the X-axis` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - } - } - }), + config: { + channels: { + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - label: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + label: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/donut.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/donut.mjs index a71b3502e..08dff5bb8 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/donut.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/donut.mjs @@ -10,53 +10,53 @@ const description = `This Vizzu animation consist of 2 steps (animates): 2nd: - move the Measure from X to Y-axis` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: { range: { min: '-200%' } }, - color: 'Country', - label: 'Value 2 (+)' - }, - - coordSystem: 'polar' - } - }), - - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 2 (+)'], - y: { set: 'Country', range: { min: '-30%' } }, - label: null - } - } - }), - - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: { set: ['Country', 'Value 2 (+)'], range: { min: '-30%' } } - } - }, - style: { - plot: { - marker: { - rectangleSpacing: '0.1em' - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: data_8, + + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: { range: { min: '-200%' } }, + color: 'Country', + label: 'Value 2 (+)' + }, + + coordSystem: 'polar' + } + }), + + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 2 (+)'], + y: { set: 'Country', range: { min: '-30%' } }, + label: null + } + } + }), + + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: { set: ['Country', 'Value 2 (+)'], range: { min: '-30%' } } + } + }, + style: { + plot: { + marker: { + rectangleSpacing: '0.1em' + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_1.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/line_1.mjs index c1a678976..108520ec3 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/line_1.mjs @@ -2,32 +2,32 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)' + }, - geometry: 'line' - } - }), + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Country' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + color: 'Country' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_2.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/line_2.mjs index dd5ca2fff..097ed622a 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/line_2.mjs @@ -3,30 +3,30 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the Y-axis & the Color channel - switch the Geometry from Line to Area` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)' - }, + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)' + }, - geometry: 'line' - } - }), + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 3 (+)'], - color: 'Country' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 3 (+)'], + color: 'Country' + }, - geometry: 'area' - } - }) + geometry: 'area' + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_1.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_1.mjs index ec128f7db..91fb71b82 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_1.mjs @@ -3,31 +3,31 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the Y-axis & the Color channel - switch the Geometry from Line to Area` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)' - }, + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)' + }, - geometry: 'line', - coordSystem: 'polar' - } - }), + geometry: 'line', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 3 (+)'], - color: 'Country' - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 3 (+)'], + color: 'Country' + }, - geometry: 'area' - } - }) + geometry: 'area' + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_2.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_2.mjs index feb34138c..c397aa9b1 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_2.mjs @@ -2,33 +2,33 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)' + }, - geometry: 'line', - coordSystem: 'polar' - } - }), + geometry: 'line', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Country' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + color: 'Country' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/radial.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/radial.mjs index 4a16cad0d..f9fe0f321 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/radial.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/radial.mjs @@ -3,41 +3,41 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add 2 new Dimensions to the Y-axis and the Color channel - remove the Measure from the Label channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 2 (+)', - y: { set: 'Country', range: { min: '-30%' } }, - label: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Value 2 (+)', + y: { set: 'Country', range: { min: '-30%' } }, + label: 'Value 2 (+)' + }, - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors', - label: null - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors', + label: null + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/scatterplot.mjs b/test/integration/test_cases/web_content/analytical_operations/drilldown/scatterplot.mjs index 97baa85f4..6d03a9089 100755 --- a/test/integration/test_cases/web_content/analytical_operations/drilldown/scatterplot.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/drilldown/scatterplot.mjs @@ -2,31 +2,31 @@ import { data_14 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the no-operation (Noop) channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_14, + (chart) => + chart.animate({ + data: data_14, - config: { - channels: { - y: 'Value 4 (+/-)', - x: 'Value 2 (+)', - color: 'Country', - label: 'Country' - }, + config: { + channels: { + y: 'Value 4 (+/-)', + x: 'Value 2 (+)', + color: 'Country', + label: 'Country' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: 'Year', - label: null - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: 'Year', + label: null + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/area_polar_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/filter/area_polar_stacked.mjs index 7c5160510..35e3ebc15 100755 --- a/test/integration/test_cases/web_content/analytical_operations/filter/area_polar_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/filter/area_polar_stacked.mjs @@ -2,32 +2,32 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- filter the Diemsion data series which is on the Y-axis` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country_code'], - color: 'Country_code' - }, + (chart) => + chart.animate({ + data: data_8, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country_code'], + color: 'Country_code' + }, - geometry: 'area', - coordSystem: 'polar' - } - }), + geometry: 'area', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Country_code === 'FR' || record.Country_code === 'CY' - }, - config: {} - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: { + filter: (record) => record.Country_code === 'FR' || record.Country_code === 'CY' + }, + config: {} + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/area_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/filter/area_stacked.mjs index f3c47d0c3..2e4d506cf 100755 --- a/test/integration/test_cases/web_content/analytical_operations/filter/area_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/filter/area_stacked.mjs @@ -2,30 +2,30 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- filter the Diemsion data series which is on the Y-axis` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - config: { - channels: { - x: ['Year'], - y: ['Value 2 (+)', 'Country_code'], - color: 'Country_code' - }, + (chart) => + chart.animate({ + data: data_8, + config: { + channels: { + x: ['Year'], + y: ['Value 2 (+)', 'Country_code'], + color: 'Country_code' + }, - geometry: 'area' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Country_code === 'FR' || record.Country_code === 'CY' - }, - config: {} - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'area' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Country_code === 'FR' || record.Country_code === 'CY' + }, + config: {} + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/line.mjs b/test/integration/test_cases/web_content/analytical_operations/filter/line.mjs index 4ef35f629..8e4e14798 100755 --- a/test/integration/test_cases/web_content/analytical_operations/filter/line.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/filter/line.mjs @@ -2,35 +2,35 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- filter the Diemsion data series which is on the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)', - color: 'Country_code' - }, + (chart) => + chart.animate({ + data: data_8, + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)', + color: 'Country_code' + }, - geometry: 'line' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Country_code === 'CY' || record.Country_code === 'ES' - }, + geometry: 'line' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Country_code === 'CY' || record.Country_code === 'ES' + }, - /* { + /* { filter: record => data_6.filter(record) && record.Year < 14 && record.Year > 8 }, */ - config: {} - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: {} + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/line_polar.mjs b/test/integration/test_cases/web_content/analytical_operations/filter/line_polar.mjs index 772c9aa40..f0130037c 100755 --- a/test/integration/test_cases/web_content/analytical_operations/filter/line_polar.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/filter/line_polar.mjs @@ -2,31 +2,31 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- filter the Diemsion data series which is on the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)', - color: 'Country_code' - }, + (chart) => + chart.animate({ + data: data_8, + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)', + color: 'Country_code' + }, - geometry: 'line', - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Country_code === 'CY' || record.Country_code === 'ES' - }, - config: {} - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'line', + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Country_code === 'CY' || record.Country_code === 'ES' + }, + config: {} + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs b/test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs index ffaad69c3..208c68dda 100755 --- a/test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs @@ -2,107 +2,108 @@ import { data } from '../../../../test_data/music_industry_history_1.mjs' const description = `- filter the Diemsion data series on the Y-axis step-by-step, combined with their dominant time period on Year data series` const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Format === 'Tapes' && record.Year <= 1981 - }), - config: { - channels: { - x: ['Year'], - y: ['Revenue', 'Format'], - color: 'Format' - }, + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Format === 'Tapes' && record.Year <= 1981 + }), + config: { + channels: { + x: ['Year'], + y: ['Revenue', 'Format'], + color: 'Format' + }, - geometry: 'area', - align: 'center' - }, - style: { - plot: { - yAxis: { - label: { - numberScale: 'K, M, B, T' - } - } - } - } - }), + geometry: 'area', + align: 'center' + }, + style: { + plot: { + yAxis: { + label: { + numberScale: 'K, M, B, T' + } + } + } + } + }), - (chart) => - chart.animate({ - data: { - filter: (record) => - (record.Format === 'Tapes' || record.Format === 'Vinyl') && record.Year <= 1989 - }, - config: {} - }), + (chart) => + chart.animate({ + data: { + filter: (record) => + (record.Format === 'Tapes' || record.Format === 'Vinyl') && record.Year <= 1989 + }, + config: {} + }), - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!event.detail.text.includes('$') && !isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart - }, - (chart) => - chart.animate({ - data: { - filter: (record) => - (record.Format === 'Tapes' || - record.Format === 'Cassette' || - record.Format === 'Vinyl') && - record.Year <= 1999 - }, - config: {} - }), + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!event.detail.text.includes('$') && !isNaN(year) && year % 5 !== 0) + event.preventDefault() + }) + return chart + }, + (chart) => + chart.animate({ + data: { + filter: (record) => + (record.Format === 'Tapes' || + record.Format === 'Cassette' || + record.Format === 'Vinyl') && + record.Year <= 1999 + }, + config: {} + }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Format === 'DVD' || - record.Format === 'Other' || - record.Format === 'Tapes' || - record.Format === 'Cassette' || - record.Format === 'Vinyl' || - record.Format === 'CD' - }, - config: {} - }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Format === 'DVD' || + record.Format === 'Other' || + record.Format === 'Tapes' || + record.Format === 'Cassette' || + record.Format === 'Vinyl' || + record.Format === 'CD' + }, + config: {} + }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Format === 'DVD' || - record.Format === 'Other' || - record.Format === 'Tapes' || - record.Format === 'Download' || - record.Format === 'Cassette' || - record.Format === 'Vinyl' || - record.Format === 'CD' - }, - config: {} - }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Format === 'DVD' || - record.Format === 'Other' || - record.Format === 'Tapes' || - record.Format === 'Download' || - record.Format === 'Streaming' || - record.Format === 'Cassette' || - record.Format === 'Vinyl' || - record.Format === 'CD' - }, - config: {} - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Format === 'DVD' || + record.Format === 'Other' || + record.Format === 'Tapes' || + record.Format === 'Download' || + record.Format === 'Cassette' || + record.Format === 'Vinyl' || + record.Format === 'CD' + }, + config: {} + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Format === 'DVD' || + record.Format === 'Other' || + record.Format === 'Tapes' || + record.Format === 'Download' || + record.Format === 'Streaming' || + record.Format === 'Cassette' || + record.Format === 'Vinyl' || + record.Format === 'CD' + }, + config: {} + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs b/test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs index 7eca45a59..3fec7fa13 100755 --- a/test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs @@ -3,117 +3,120 @@ import { data } from '../../../../test_data/music_industry_history_1.mjs' const description = `- fix the X-axis-range - filter the Diemsion data series on the Y-axis step-by-step` const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!event.detail.text.includes('$') && !isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart - }, + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!event.detail.text.includes('$') && !isNaN(year) && year % 5 !== 0) + event.preventDefault() + }) + return chart + }, - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Format === 'Tapes' - }), - config: { - channels: { - x: { set: 'Year', range: { max: '48' } }, // 48 = years in this time period - y: ['Revenue', 'Format'], - color: 'Format' - }, + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Format === 'Tapes' + }), + config: { + channels: { + x: { set: 'Year', range: { max: '48' } }, // 48 = years in this time period + y: ['Revenue', 'Format'], + color: 'Format' + }, - geometry: 'area', - align: 'center' - }, - style: { - plot: { - yAxis: { - label: { - numberScale: 'K, M, B, T' - } - } - } - } - }), + geometry: 'area', + align: 'center' + }, + style: { + plot: { + yAxis: { + label: { + numberScale: 'K, M, B, T' + } + } + } + } + }), - (chart) => - chart.animate({ - data: { - filter: (record) => record.Format === 'Tapes' || record.Format === 'Vinyl' - }, - config: {} - }), + (chart) => + chart.animate({ + data: { + filter: (record) => record.Format === 'Tapes' || record.Format === 'Vinyl' + }, + config: {} + }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Format === 'Tapes' || record.Format === 'Cassette' || record.Format === 'Vinyl' - }, - config: {} - }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Format === 'Tapes' || + record.Format === 'Cassette' || + record.Format === 'Vinyl' + }, + config: {} + }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Format === 'DVD' || - record.Format === 'Tapes' || - record.Format === 'Cassette' || - record.Format === 'Vinyl' || - record.Format === 'CD' - }, - config: {} - }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Format === 'DVD' || + record.Format === 'Tapes' || + record.Format === 'Cassette' || + record.Format === 'Vinyl' || + record.Format === 'CD' + }, + config: {} + }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Format === 'DVD' || - record.Format === 'Other' || - record.Format === 'Tapes' || - record.Format === 'Cassette' || - record.Format === 'Vinyl' || - record.Format === 'CD' - }, - config: {} - }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Format === 'DVD' || + record.Format === 'Other' || + record.Format === 'Tapes' || + record.Format === 'Cassette' || + record.Format === 'Vinyl' || + record.Format === 'CD' + }, + config: {} + }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Format === 'DVD' || - record.Format === 'Other' || - record.Format === 'Tapes' || - record.Format === 'Download' || - record.Format === 'Cassette' || - record.Format === 'Vinyl' || - record.Format === 'CD' - }, - config: {} - }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record.Format === 'DVD' || - record.Format === 'Other' || - record.Format === 'Tapes' || - record.Format === 'Download' || - record.Format === 'Streaming' || - record.Format === 'Cassette' || - record.Format === 'Vinyl' || - record.Format === 'CD' - }, - config: {} - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Format === 'DVD' || + record.Format === 'Other' || + record.Format === 'Tapes' || + record.Format === 'Download' || + record.Format === 'Cassette' || + record.Format === 'Vinyl' || + record.Format === 'CD' + }, + config: {} + }), + (chart) => + chart.animate({ + data: { + filter: (record) => + record.Format === 'DVD' || + record.Format === 'Other' || + record.Format === 'Tapes' || + record.Format === 'Download' || + record.Format === 'Streaming' || + record.Format === 'Cassette' || + record.Format === 'Vinyl' || + record.Format === 'CD' + }, + config: {} + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/misc/donut_to_coxcomb.mjs b/test/integration/test_cases/web_content/analytical_operations/misc/donut_to_coxcomb.mjs index 69f5c96f6..1768032ff 100755 --- a/test/integration/test_cases/web_content/analytical_operations/misc/donut_to_coxcomb.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/misc/donut_to_coxcomb.mjs @@ -3,31 +3,31 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Measure to the Y-axis - change the range of the Y-axis to disappear empty circle from the center` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: ['Value 2 (+)', 'Country'], - y: { range: { min: '-200%' } }, - color: 'Country', - label: 'Value 2 (+)' - }, + config: { + channels: { + x: ['Value 2 (+)', 'Country'], + y: { range: { min: '-200%' } }, + color: 'Country', + label: 'Value 2 (+)' + }, - coordSystem: 'polar' - } - }), + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 2 (+)', 'Country'], - y: { set: 'Value 3 (+)', range: { min: '0' } } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 2 (+)', 'Country'], + y: { set: 'Value 3 (+)', range: { min: '0' } } + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/misc/make_space_with_polar.mjs b/test/integration/test_cases/web_content/analytical_operations/misc/make_space_with_polar.mjs index 9bd76cf40..f7a097dee 100755 --- a/test/integration/test_cases/web_content/analytical_operations/misc/make_space_with_polar.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/misc/make_space_with_polar.mjs @@ -3,42 +3,42 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- change coordinate system to 'polar' - add left padding in the Style to make space near the chart for something` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - config: { - channels: { - x: 'Value 2 (+)', - y: 'Country', - color: 'Country' - } - } - }), + (chart) => + chart.animate({ + data: data_8, + config: { + channels: { + x: 'Value 2 (+)', + y: 'Country', + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 2 (+)'], - y: { - set: 'Country', - /* Setting the radius of + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 2 (+)'], + y: { + set: 'Country', + /* Setting the radius of the empty circle in the centre. */ - range: { - min: '-30%' - } - }, - size: null - }, + range: { + min: '-30%' + } + }, + size: null + }, - coordSystem: 'polar' - }, - style: { - plot: { - paddingLeft: '25em' - } - } - }) + coordSystem: 'polar' + }, + style: { + plot: { + paddingLeft: '25em' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/misc/orientation_marimekko.mjs b/test/integration/test_cases/web_content/analytical_operations/misc/orientation_marimekko.mjs index 1abc918c8..8a824c897 100755 --- a/test/integration/test_cases/web_content/analytical_operations/misc/orientation_marimekko.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/misc/orientation_marimekko.mjs @@ -2,29 +2,29 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const description = `- change the orientation from 'horizontal' to 'vertical'` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: ['Joy factors', 'Value 3 (+)'], - color: 'Joy factors', - label: 'Country', - lightness: 'Country' - }, + (chart) => + chart.animate({ + data: data_4, + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: ['Joy factors', 'Value 3 (+)'], + color: 'Joy factors', + label: 'Country', + lightness: 'Country' + }, - align: 'stretch', - orientation: 'horizontal' - } - }), + align: 'stretch', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - orientation: 'vertical' - } - }) + (chart) => + chart.animate({ + config: { + orientation: 'vertical' + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/misc/pie_to_donut.mjs b/test/integration/test_cases/web_content/analytical_operations/misc/pie_to_donut.mjs index 9c55a6861..c99df466f 100755 --- a/test/integration/test_cases/web_content/analytical_operations/misc/pie_to_donut.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/misc/pie_to_donut.mjs @@ -2,28 +2,28 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const description = `- set the range of the Y-axis to make empty circle in the center` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, - coordSystem: 'polar' - } - }), + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { range: { min: '-200%' } } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { range: { min: '-200%' } } + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/split/area_polar_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/split/area_polar_stacked.mjs index 577e9f23c..3559b070f 100755 --- a/test/integration/test_cases/web_content/analytical_operations/split/area_polar_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/split/area_polar_stacked.mjs @@ -2,32 +2,32 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, + color: 'Country' + }, - geometry: 'area', - coordSystem: 'polar' - } - }), + geometry: 'area', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/split/area_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/split/area_stacked.mjs index c931a82af..d625ff016 100755 --- a/test/integration/test_cases/web_content/analytical_operations/split/area_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/split/area_stacked.mjs @@ -2,31 +2,31 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area' - } - }), + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/split/column_100percent_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/split/column_100percent_stacked.mjs index 0069b84a4..91ccc424a 100755 --- a/test/integration/test_cases/web_content/analytical_operations/split/column_100percent_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/split/column_100percent_stacked.mjs @@ -5,45 +5,45 @@ const description = `- add the Measure to the Label channel too - set the Align parameter from 'stretch' to 'min' - set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, - align: 'stretch' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: 'Value 2 (+)' - }, + align: 'stretch' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: 'Value 2 (+)' + }, - align: 'min', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + align: 'min', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { title } diff --git a/test/integration/test_cases/web_content/analytical_operations/split/column_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/split/column_stacked.mjs index b26aa432d..cd2fef3c0 100755 --- a/test/integration/test_cases/web_content/analytical_operations/split/column_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/split/column_stacked.mjs @@ -3,42 +3,42 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add the Measure to the Label channel too - set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: 'Value 2 (+)' + }, - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/split/coxcomb.mjs b/test/integration/test_cases/web_content/analytical_operations/split/coxcomb.mjs index 7ea3858bc..03aa86629 100755 --- a/test/integration/test_cases/web_content/analytical_operations/split/coxcomb.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/split/coxcomb.mjs @@ -2,37 +2,37 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, + color: 'Country' + }, - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0.1em' - } - } - } - }), - (chart) => - chart.animate({ - config: { - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0.1em' + } + } + } + }), + (chart) => + chart.animate({ + config: { + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/split/radial_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/split/radial_stacked.mjs index c78e425ea..75b01a79c 100755 --- a/test/integration/test_cases/web_content/analytical_operations/split/radial_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/split/radial_stacked.mjs @@ -2,33 +2,33 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set the Split parameter to true` const testSteps = [ - (chart) => { - const f = data_8.filter - return chart.animate({ - data: Object.assign(data_8, { - filter: (record) => f(record) && record.Year >= 15 - }), - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: { - set: 'Year', - range: { min: '-3' } - }, - color: 'Country' - }, + (chart) => { + const f = data_8.filter + return chart.animate({ + data: Object.assign(data_8, { + filter: (record) => f(record) && record.Year >= 15 + }), + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: { + set: 'Year', + range: { min: '-3' } + }, + color: 'Country' + }, - coordSystem: 'polar' - } - }) - }, + coordSystem: 'polar' + } + }) + }, - (chart) => - chart.animate({ - config: { - split: true - } - }) + (chart) => + chart.animate({ + config: { + split: true + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_1.mjs b/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_1.mjs index 41628d2c7..cb3e996c9 100755 --- a/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_1.mjs @@ -4,38 +4,38 @@ const description = `- add the Dimension which is on the Color channel to the X- - set the Orientation parameter to 'vertical' - set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Value 2 (+)', - y: 'Value 3 (+)', - noop: 'Year', - color: 'Country' - }, + config: { + channels: { + x: 'Value 2 (+)', + y: 'Value 3 (+)', + noop: 'Year', + color: 'Country' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 2 (+)', 'Country'] - }, + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 2 (+)', 'Country'] + }, - geometry: 'circle', - orientation: 'vertical', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'circle', + orientation: 'vertical', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_2.mjs b/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_2.mjs index efbb631ef..ab1e30b95 100755 --- a/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_2.mjs @@ -4,38 +4,38 @@ const description = `- add the Dimension which is on the Color channel to the X- - set the Orientation parameter to 'horizontal' - set the Split parameter to true` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Value 2 (+)', - y: 'Value 3 (+)', - noop: 'Year', - color: 'Country' - }, + config: { + channels: { + x: 'Value 2 (+)', + y: 'Value 3 (+)', + noop: 'Year', + color: 'Country' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 3 (+)', 'Country'] - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 3 (+)', 'Country'] + }, - geometry: 'circle', - orientation: 'horizontal', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'circle', + orientation: 'horizontal', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/area_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/area_stacked.mjs index b9733c94b..381527892 100755 --- a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/area_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/area_stacked.mjs @@ -2,31 +2,31 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set the Align parameter to 'stretch'` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area' - } - }), + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_groupped.mjs b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_groupped.mjs index a8127cb9d..b528d7982 100755 --- a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_groupped.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_groupped.mjs @@ -3,34 +3,34 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const description = `- move the 2nd dimension from the X-axis to the Y-axis - set the Align parameter to 'stretch'` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - } - } - }), + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'] - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'] + }, - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_split_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_split_stacked.mjs index ed4e0a4bd..17ec0adad 100755 --- a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_split_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_split_stacked.mjs @@ -3,47 +3,47 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set the Align parameter to 'stretch' - set the the Split parameter to false` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - label: null - }, + (chart) => + chart.animate({ + config: { + channels: { + label: null + }, - align: 'stretch', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + align: 'stretch', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_stacked.mjs index 5717b3991..3129a89f6 100755 --- a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_stacked.mjs @@ -2,29 +2,29 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set the Align parameter to 'stretch'` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/line.mjs b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/line.mjs index ad73a6445..8e34d70be 100755 --- a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/line.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/line.mjs @@ -4,36 +4,36 @@ const description = `- add the Dimension which is on the Color channel to the Y- - switch the Geometry from Line to Area - set the Align parameter to 'stretch'` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'line' - } - }), + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Country'] - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Country'] + }, - geometry: 'area', - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'area', + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_100percent_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/area_100percent_stacked.mjs index a84471f9e..b2f3f772f 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/area_100percent_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/area_100percent_stacked.mjs @@ -3,32 +3,32 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const title = '100% Stacked Area' const description = `- set Align parameter from 'stretch' to 'min'` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area', - align: 'stretch' - } - }), + geometry: 'area', + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - align: 'min' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + align: 'min' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { title } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_split.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_split.mjs index 0876731f2..27590026a 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_split.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_split.mjs @@ -2,33 +2,33 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set Split parameter from true to false` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, + color: 'Country' + }, - geometry: 'area', - split: true, - coordSystem: 'polar' - } - }), + geometry: 'area', + split: true, + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_stacked.mjs index 29e1a9699..adbad4992 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_stacked.mjs @@ -2,35 +2,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from Y-axis and the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area', - coordSystem: 'polar' - } - }), + geometry: 'area', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - color: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + color: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_split.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/area_split.mjs index 9d9761804..94b46cfc7 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/area_split.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/area_split.mjs @@ -2,32 +2,32 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set Split parameter from true to false` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area', - split: true - } - }), + geometry: 'area', + split: true + } + }), - (chart) => - chart.animate({ - config: { - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/area_stacked.mjs index c1e624922..cd5e4957a 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/area_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/area_stacked.mjs @@ -2,34 +2,34 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from Y-axis and the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, - geometry: 'area' - } - }), + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - color: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + color: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubble.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/bubble.mjs index 4a5e86342..4f6f9e7d3 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/bubble.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/bubble.mjs @@ -2,28 +2,28 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const description = `- add the Dimension whitch is on Label channel to the Size channel too (stack)` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: 'Value 2 (+)', - label: 'Country_code' - }, + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: 'Value 2 (+)', + label: 'Country_code' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: ['Country_code', 'Value 2 (+)'] - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: ['Country_code', 'Value 2 (+)'] + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_column.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_column.mjs index 5b9f73586..f7b1b4850 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_column.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_column.mjs @@ -12,49 +12,49 @@ const description = `This Vizzu animation consist of 2 steps (animates): - remove the other Dimension from the X-axis - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - label: 'Country_code', - /* With a dimension on the size channel Vizzu will stack + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + label: 'Country_code', + /* With a dimension on the size channel Vizzu will stack the elements by the categories on the other channels on charts without coordinates. Here the Country code dimension is used to stack the bubbles by the dimension on the color channel. */ - size: ['Country_code', 'Value 2 (+)'] - }, - - geometry: 'circle' - } - }), - - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors', - y: ['Country_code', 'Value 2 (+)'], - label: null, - /* The stacking is eliminated when we remove + size: ['Country_code', 'Value 2 (+)'] + }, + + geometry: 'circle' + } + }), + + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors', + y: ['Country_code', 'Value 2 (+)'], + label: null, + /* The stacking is eliminated when we remove the extra dimension from the size channel. */ - size: null - }, - - geometry: 'rectangle' - } - }), - - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + size: null + }, + + geometry: 'rectangle' + } + }), + + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_coxcomb.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_coxcomb.mjs index 6bfbbb157..577e7cacd 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_coxcomb.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_coxcomb.mjs @@ -12,57 +12,57 @@ const description = `This Vizzu animation consist of 2 steps (animates): - remove the other Dimension from the X-axis - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - label: 'Country_code', - /* With a dimension on the size channel Vizzu will stack + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + label: 'Country_code', + /* With a dimension on the size channel Vizzu will stack the elements by the categories on the other channels on charts without coordinates. Here the Country code dimension is used to stack the bubbles by the dimension on the color channel. */ - size: ['Country_code', 'Value 2 (+)'] - }, + size: ['Country_code', 'Value 2 (+)'] + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors', - y: ['Country_code', 'Value 2 (+)'], - label: null, - /* The stacking is eliminated when we remove + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors', + y: ['Country_code', 'Value 2 (+)'], + label: null, + /* The stacking is eliminated when we remove the extra dimension from the size channel. */ - size: null - }, + size: null + }, - geometry: 'rectangle', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0em' - } - } - } - }), + geometry: 'rectangle', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0em' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_radial.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_radial.mjs index c6e94b179..c0be8c37c 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_radial.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_radial.mjs @@ -13,51 +13,51 @@ const description = `This Vizzu animation consist of 2 steps (animates): - remove the other Dimension from the X-axis - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - label: 'Country_code', - /* With a dimension on the size channel Vizzu will stack + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + label: 'Country_code', + /* With a dimension on the size channel Vizzu will stack the elements by the categories on the other channels on charts without coordinates. Here the Country code dimension is used to stack the bubbles by the dimension on the color channel. */ - size: ['Country_code', 'Value 2 (+)'] - }, + size: ['Country_code', 'Value 2 (+)'] + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Joy factors', range: { min: '-30%' } }, - x: ['Country_code', 'Value 2 (+)'], - label: null, - /* The stacking is eliminated when we remove + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Joy factors', range: { min: '-30%' } }, + x: ['Country_code', 'Value 2 (+)'], + label: null, + /* The stacking is eliminated when we remove the extra dimension from the size channel. */ - size: null - }, + size: null + }, - geometry: 'rectangle', - coordSystem: 'polar', - sort: 'byValue' - } - }), + geometry: 'rectangle', + coordSystem: 'polar', + sort: 'byValue' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_1.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_1.mjs index ea01744b2..7b6b2ac88 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_1.mjs @@ -2,35 +2,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the Label channel and add the othere Dimension to it` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - size: 'Value 2 (+)', - color: 'Year', - label: 'Country_code' - }, + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + size: 'Value 2 (+)', + color: 'Year', + label: 'Country_code' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - label: 'Year' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + label: 'Year' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_2.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_2.mjs index 5a0062708..4d1b76691 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_2.mjs @@ -11,45 +11,45 @@ const description = `This Vizzu animation consist of 2 steps (animates): - remove the Dimension from the X-axis - add the remaining Measure to the Label channel` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 6 (+/-)'], - y: 'Value 5 (+/-)', - color: 'Joy factors', - size: 'Value 2 (+)', - label: 'Country_code' - }, - - geometry: 'circle' - } - }), - - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country_code', 'Value 2 (+)'], - y: 'Joy factors', - label: null - }, - - geometry: 'rectangle', - orientation: 'vertical' - } - }), - - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 6 (+/-)'], + y: 'Value 5 (+/-)', + color: 'Joy factors', + size: 'Value 2 (+)', + label: 'Country_code' + }, + + geometry: 'circle' + } + }), + + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country_code', 'Value 2 (+)'], + y: 'Joy factors', + label: null + }, + + geometry: 'rectangle', + orientation: 'vertical' + } + }), + + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_to_radial.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_to_radial.mjs index 28d95d9e3..42202e4f7 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_to_radial.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_to_radial.mjs @@ -11,53 +11,53 @@ const description = `This Vizzu animation consist of 2 steps (animates): - remove the Dimension from the X-axis - add the remaining Measure to the Label channel` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 6 (+/-)'], - y: 'Value 5 (+/-)', - color: 'Joy factors', - size: 'Value 2 (+)', - noop: 'Country_code' - }, + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 6 (+/-)'], + y: 'Value 5 (+/-)', + color: 'Joy factors', + size: 'Value 2 (+)', + noop: 'Country_code' + }, - geometry: 'circle' - }, - style: { - plot: { - marker: { - guides: { color: '#ffffff00' } - } - } - } - }), + geometry: 'circle' + }, + style: { + plot: { + marker: { + guides: { color: '#ffffff00' } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country_code', 'Value 2 (+)'], - y: { set: 'Joy factors', range: { min: '-30%' } }, - noop: null - }, + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country_code', 'Value 2 (+)'], + y: { set: 'Joy factors', range: { min: '-30%' } }, + noop: null + }, - geometry: 'rectangle', - orientation: 'vertical', - coordSystem: 'polar' - } - }), + geometry: 'rectangle', + orientation: 'vertical', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_1.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/column_1.mjs index 17784b04e..c914c96f5 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/column_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/column_1.mjs @@ -2,33 +2,33 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- move the Dimension from X-axis to the Y-axis and the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }), + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_100percent_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/column_100percent_stacked.mjs index 0d75ee66f..a4b6ed43e 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/column_100percent_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/column_100percent_stacked.mjs @@ -3,31 +3,31 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const title = '100% Stacked Column' const description = `- set Align parameter from 'stretch' to 'min'` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, - align: 'stretch' - } - }), + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - align: 'min' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + align: 'min' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { title } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_2.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/column_2.mjs index 45e07af2c..ba7c2a169 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/column_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/column_2.mjs @@ -2,31 +2,31 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the X-axis` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }), + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_groupped.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/column_groupped.mjs index d2c45d8d5..7e83d964c 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/column_groupped.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/column_groupped.mjs @@ -2,33 +2,33 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- move one Dimension from X-axis to the Y-axis (stack)` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - } - } - }), + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_split_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/column_split_stacked.mjs index 6c783cea2..270f6e5cc 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/column_split_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/column_split_stacked.mjs @@ -4,46 +4,46 @@ const description = `- set Split parameter from true to false - null Label channel - \\+ if you like set the marker-label fontSize in the Style` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - label: null - }, + (chart) => + chart.animate({ + config: { + channels: { + label: null + }, - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_1.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_1.mjs index 304546123..9e850a7ea 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_1.mjs @@ -2,33 +2,33 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from Y-axis and the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors', - label: 'Value 2 (+)' - } - } - }), + config: { + channels: { + x: 'Country', + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors', + label: 'Value 2 (+)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - color: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + color: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_2.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_2.mjs index f71097f4c..52c3f7dcf 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_2.mjs @@ -3,36 +3,36 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the X-axis and Color channel - shift the Measure from X to the Y-axis (change orientation), and add it to the Label channel` const testSteps = [ - (chart) => - chart.animate({ - data, + (chart) => + chart.animate({ + data, - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: ['Joy factors'], - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: ['Joy factors'], + label: 'Value 2 (+)' + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_to_bar.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/column_to_bar.mjs index 060727d9b..46c81b265 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/column_to_bar.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/column_to_bar.mjs @@ -4,34 +4,34 @@ const description = `- remove the Dimension from the X-axis - shift the Meassure from the Y-axis to the X-axis - set the Orientation to vertical` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }), + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: null - }, + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: null + }, - orientation: 'vertical' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + orientation: 'vertical' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_to_waterfall.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/column_to_waterfall.mjs index d381a1d0d..94a33ba34 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/column_to_waterfall.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/column_to_waterfall.mjs @@ -3,51 +3,51 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const description = `- add the existing Dimension to the Y-axis as well - \\+ here is an example of how you can set a colorGradient palette in the Style` const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Country === 'Belgium' - }), - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - color: { - set: 'Value 5 (+/-)', - range: { min: '-45', max: '45' } - }, - noop: 'Country', - label: 'Value 5 (+/-)' - }, + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Country === 'Belgium' + }), + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + color: { + set: 'Value 5 (+/-)', + range: { min: '-45', max: '45' } + }, + noop: 'Country', + label: 'Value 5 (+/-)' + }, - legend: 'color' - }, - style: { - plot: { - marker: { - colorGradient: [ - '#ac1727 0', - '#e36c56 0.15', - '#f4b096 0.35', - '#d5d7d9 0.5', - '#9fbffa 0.65', - '#6389ec 0.85', - '#3d51b8 1' - ].join(), - label: { position: 'top' } - } - } - } - }), + legend: 'color' + }, + style: { + plot: { + marker: { + colorGradient: [ + '#ac1727 0', + '#e36c56 0.15', + '#f4b096 0.35', + '#d5d7d9 0.5', + '#9fbffa 0.65', + '#6389ec 0.85', + '#3d51b8 1' + ].join(), + label: { position: 'top' } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Year', 'Value 5 (+/-)'] - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Year', 'Value 5 (+/-)'] + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_1.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_1.mjs index c92898269..e2222d7b7 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_1.mjs @@ -3,42 +3,42 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from Y-axis and the Color channel - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors' - }, + config: { + channels: { + x: 'Country', + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors' + }, - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0.1em' - } - } - } - }), + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0.1em' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - color: null, - label: 'Value 2 (+)' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + color: null, + label: 'Value 2 (+)' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_2.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_2.mjs index 0a1f336cd..4b5f4f197 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_2.mjs @@ -3,46 +3,46 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the X-axis and Color channel - shift the Measure from X to the Y-axis (change orientation), and add it to the Label channel` const testSteps = [ - (chart) => - chart.animate({ - data, + (chart) => + chart.animate({ + data, - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF', - rectangleSpacing: '0.1em' - } - } - } - }), + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF', + rectangleSpacing: '0.1em' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: { set: 'Joy factors', range: { min: '-30%' } }, - label: 'Value 2 (+)' - } - }, - style: { - plot: { - marker: { - rectangleSpacing: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: { set: 'Joy factors', range: { min: '-30%' } }, + label: 'Value 2 (+)' + } + }, + style: { + plot: { + marker: { + rectangleSpacing: null + } + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_split.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_split.mjs index bb715b0ed..b18fd521b 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_split.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_split.mjs @@ -2,39 +2,39 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- set Split parameter from true to false` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: { set: ['Country', 'Value 2 (+)'], range: { min: '-20%' } }, + color: 'Country' + }, - split: true, - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0.1em' - } - } - } - }), + split: true, + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0.1em' + } + } + } + }), - (chart) => - chart.animate({ - config: { - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/dotplot.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/dotplot.mjs index 0a807b4cc..68f5294ae 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/dotplot.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/dotplot.mjs @@ -3,35 +3,35 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add the Dimension whitch is on the Color channel to the Y-axis too - switch the Geometry from Circle to Rectangle` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 2 (+)'] - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 2 (+)'] + }, - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/line_1.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/line_1.mjs index eea3fe2ce..2dd7a5fb6 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/line_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/line_1.mjs @@ -3,35 +3,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add the Dimension whitch is on Color channel to the Y-axis too - switch the Geometry from Line to Area` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'line' - } - }), + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 2 (+)'] - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 2 (+)'] + }, - geometry: 'area' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'area' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/line_2.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/line_2.mjs index b7127dc02..4f748c128 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/line_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/line_2.mjs @@ -2,33 +2,33 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'line' - } - }), + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + color: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_1.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_1.mjs index c35c05b2f..225bc4107 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_1.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_1.mjs @@ -2,34 +2,34 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the Color channel` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'line', - coordSystem: 'polar' - } - }), + geometry: 'line', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: null - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + color: null + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_2.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_2.mjs index 6e63dc22a..37c45b51f 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_2.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_2.mjs @@ -3,36 +3,36 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add the Dimension whitch is on Color channel to the Y-axis too - switch the Geometry from Line to Area` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: { set: 'Value 2 (+)', range: { min: '-20%' } }, - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: { set: 'Value 2 (+)', range: { min: '-20%' } }, + color: 'Country' + }, - geometry: 'line', - coordSystem: 'polar' - } - }), + geometry: 'line', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 2 (+)'] - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 2 (+)'] + }, - geometry: 'area' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'area' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot.mjs index 010b4abe9..e99f0cdd6 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot.mjs @@ -2,34 +2,34 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the Label channel and add the othere Dimension to it` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - color: 'Country', - label: 'Year' - }, + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + color: 'Country', + label: 'Year' + }, - geometry: 'circle' - } - }), + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - label: 'Country' - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + label: 'Country' + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot_polar.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot_polar.mjs index c294e7a27..424797d9b 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot_polar.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot_polar.mjs @@ -3,47 +3,47 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add the Dimension whitch is on the Color channel to the Y-axis too - switch the Geometry from Circle to Rectangle` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, - geometry: 'circle', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0.1em', - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + geometry: 'circle', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0.1em', + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 2 (+)'] - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 2 (+)'] + }, - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs index 819475143..08a0a3700 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs @@ -11,66 +11,67 @@ const description = `This is a 2-step animation: - arrange the markers in reverse order - switch the Geometry from Area to Rectangle` const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!event.detail.text.includes('$') && !isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart - }, + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!event.detail.text.includes('$') && !isNaN(year) && year % 5 !== 0) + event.preventDefault() + }) + return chart + }, - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Year > 1972 - }), - config: { - channels: { - x: 'Year', - y: ['Revenue', 'Format'], - color: 'Format' - }, + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Year > 1972 + }), + config: { + channels: { + x: 'Year', + y: ['Revenue', 'Format'], + color: 'Format' + }, - geometry: 'area', - align: 'center' - }, - style: { - plot: { - yAxis: { - label: { - numberScale: 'K, M, B, T' - } - } - } - } - }), + geometry: 'area', + align: 'center' + }, + style: { + plot: { + yAxis: { + label: { + numberScale: 'K, M, B, T' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - split: true - } - }), + (chart) => + chart.animate({ + config: { + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Revenue', 'Year'], - x: ['Format'] - }, + (chart) => + chart.animate({ + config: { + channels: { + y: ['Revenue', 'Year'], + x: ['Format'] + }, - geometry: 'rectangle', - align: 'min', - split: false, - sort: 'byValue', - reverse: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + geometry: 'rectangle', + align: 'min', + split: false, + sort: 'byValue', + reverse: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/treemap.mjs b/test/integration/test_cases/web_content/analytical_operations/sum/treemap.mjs index bd2497976..3448a0c20 100755 --- a/test/integration/test_cases/web_content/analytical_operations/sum/treemap.mjs +++ b/test/integration/test_cases/web_content/analytical_operations/sum/treemap.mjs @@ -2,33 +2,33 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const description = `- add the Dimension whitch is on Label channel to the Size channel too (stack)` const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - size: 'Value 2 (+)', - /* The noop channel (no operation) splits the markers as all the other channels + (chart) => + chart.animate({ + data, + config: { + channels: { + size: 'Value 2 (+)', + /* The noop channel (no operation) splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Country_code', - color: 'Joy factors', - label: 'Country_code' - } - } - }), + noop: 'Country_code', + color: 'Joy factors', + label: 'Country_code' + } + } + }), - (chart) => - chart.animate({ - config: { - /* With a dimension on the size channel Vizzu will stack the elements + (chart) => + chart.animate({ + config: { + /* With a dimension on the size channel Vizzu will stack the elements by the categories on the other channels on charts without coordinates. Here the Country code dimension is used to stack the bubbles by the dimension on the color channel. */ - channels: { - size: ['Country_code', 'Value 2 (+)'] - } - } - }) + channels: { + size: ['Country_code', 'Value 2 (+)'] + } + } + }) ] export { description } diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/annotation_editor.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/annotation_editor.mjs index bba4aa17e..d40a04dc3 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/annotation_editor.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/annotation_editor.mjs @@ -1,29 +1,29 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - await import('https://cdn.jsdelivr.net/npm/markerjs2@2.29.0/markerjs2.min.js') + async (chart) => { + await import('https://cdn.jsdelivr.net/npm/markerjs2@2.29.0/markerjs2.min.js') - const markerArea = new markerjs2.MarkerArea(chart.feature.htmlCanvas.element) + const markerArea = new markerjs2.MarkerArea(chart.feature.htmlCanvas.element) - markerArea.show() + markerArea.show() - markerArea.addEventListener('render', (event) => { - navigator.clipboard.writeText(JSON.stringify(event.state)) - alert('Annotation JSON object copied to clipboard!') - }) + markerArea.addEventListener('render', (event) => { + navigator.clipboard.writeText(JSON.stringify(event.state)) + alert('Annotation JSON object copied to clipboard!') + }) - return chart.animate({ - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - label: 'Value 2 (+)', - title: 'Chart with Annotations' - } - }) - } + return chart.animate({ + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + label: 'Value 2 (+)', + title: 'Chart with Annotations' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/annotations.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/annotations.mjs index 845219d79..cd73514c4 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/annotations.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/annotations.mjs @@ -4,169 +4,169 @@ const xScale = 0.95 const yScale = 0.85 const testSteps = [ - async (chart) => { - await import('https://cdn.jsdelivr.net/npm/markerjs-live@1.1.0/markerjs-live.min.js') + async (chart) => { + await import('https://cdn.jsdelivr.net/npm/markerjs-live@1.1.0/markerjs-live.min.js') - const markerView = new mjslive.MarkerView(chart.feature.htmlCanvas.element) + const markerView = new mjslive.MarkerView(chart.feature.htmlCanvas.element) - // This object generated using annotation-editor example - const config = { - width: chart.feature.htmlCanvas.element.width, - height: chart.feature.htmlCanvas.element.height, - markers: [ - { - arrowType: 'end', - strokeColor: '#2563EB', - strokeWidth: 3, - strokeDasharray: '', - x1: 458 * xScale, - y1: 221 * yScale, - x2: 422 * xScale, - y2: 316 * yScale, - typeName: 'ArrowMarker', - state: 'select' - }, - { - color: '#2563EB', - fontFamily: 'Helvetica, Arial, sans-serif', - padding: 5, - text: 'This bar is annotated', - left: 434 * xScale, - top: 182 * yScale, - width: 159 * xScale, - height: 37 * yScale, - rotationAngle: 0, - visualTransformMatrix: { - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 - }, - containerTransformMatrix: { - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 - }, - typeName: 'TextMarker', - state: 'select' - }, - { - fillColor: '#10B981', - strokeColor: 'transparent', - strokeWidth: 0, - strokeDasharray: '', - opacity: 0.25, - left: 108 * xScale, - top: 99 * yScale, - width: 48 * xScale, - height: 26 * yScale, - rotationAngle: 0, - visualTransformMatrix: { - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 - }, - containerTransformMatrix: { - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 - }, - typeName: 'HighlightMarker', - state: 'select' - }, - { - color: '#2563EB', - fontFamily: 'Helvetica, Arial, sans-serif', - padding: 5, - text: 'This label is highlighted', - left: 153 * xScale, - top: 95 * yScale, - width: 164 * xScale, - height: 30 * yScale, - rotationAngle: 0, - visualTransformMatrix: { - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 - }, - containerTransformMatrix: { - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 - }, - typeName: 'TextMarker', - state: 'select' - }, - { - bgColor: '#000000', - tipPosition: { - x: 22.1, - y: 91 - }, - color: '#FFFFFF', - fontFamily: 'Helvetica, Arial, sans-serif', - padding: 5, - text: 'E!', - left: 221 * xScale, - top: 170 * yScale, - width: 48 * xScale, - height: 45 * yScale, - rotationAngle: 0, - visualTransformMatrix: { - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 - }, - containerTransformMatrix: { - a: 1, - b: 0, - c: 0, - d: 1, - e: 0, - f: 0 - }, - typeName: 'CalloutMarker', - state: 'select' - } - ] - } + // This object generated using annotation-editor example + const config = { + width: chart.feature.htmlCanvas.element.width, + height: chart.feature.htmlCanvas.element.height, + markers: [ + { + arrowType: 'end', + strokeColor: '#2563EB', + strokeWidth: 3, + strokeDasharray: '', + x1: 458 * xScale, + y1: 221 * yScale, + x2: 422 * xScale, + y2: 316 * yScale, + typeName: 'ArrowMarker', + state: 'select' + }, + { + color: '#2563EB', + fontFamily: 'Helvetica, Arial, sans-serif', + padding: 5, + text: 'This bar is annotated', + left: 434 * xScale, + top: 182 * yScale, + width: 159 * xScale, + height: 37 * yScale, + rotationAngle: 0, + visualTransformMatrix: { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }, + containerTransformMatrix: { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }, + typeName: 'TextMarker', + state: 'select' + }, + { + fillColor: '#10B981', + strokeColor: 'transparent', + strokeWidth: 0, + strokeDasharray: '', + opacity: 0.25, + left: 108 * xScale, + top: 99 * yScale, + width: 48 * xScale, + height: 26 * yScale, + rotationAngle: 0, + visualTransformMatrix: { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }, + containerTransformMatrix: { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }, + typeName: 'HighlightMarker', + state: 'select' + }, + { + color: '#2563EB', + fontFamily: 'Helvetica, Arial, sans-serif', + padding: 5, + text: 'This label is highlighted', + left: 153 * xScale, + top: 95 * yScale, + width: 164 * xScale, + height: 30 * yScale, + rotationAngle: 0, + visualTransformMatrix: { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }, + containerTransformMatrix: { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }, + typeName: 'TextMarker', + state: 'select' + }, + { + bgColor: '#000000', + tipPosition: { + x: 22.1, + y: 91 + }, + color: '#FFFFFF', + fontFamily: 'Helvetica, Arial, sans-serif', + padding: 5, + text: 'E!', + left: 221 * xScale, + top: 170 * yScale, + width: 48 * xScale, + height: 45 * yScale, + rotationAngle: 0, + visualTransformMatrix: { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }, + containerTransformMatrix: { + a: 1, + b: 0, + c: 0, + d: 1, + e: 0, + f: 0 + }, + typeName: 'CalloutMarker', + state: 'select' + } + ] + } - return chart - .animate({ - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - label: 'Value 2 (+)', - title: 'Chart with Annotations' - } - }) - .then((chart) => { - markerView.show(config) - return chart - }) - } + return chart + .animate({ + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + label: 'Value 2 (+)', + title: 'Chart with Annotations' + } + }) + .then((chart) => { + markerView.show(config) + return chart + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/exploded_pie_chart.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/exploded_pie_chart.mjs index d51d3b26e..4d9312ead 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/exploded_pie_chart.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/exploded_pie_chart.mjs @@ -1,78 +1,78 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - return chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Pie Chart', - coordSystem: 'polar' - } - }) - }, - (chart) => { - class Shifter { - constructor() { - this.shifts = [] - } + (chart) => { + return chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Pie Chart', + coordSystem: 'polar' + } + }) + }, + (chart) => { + class Shifter { + constructor() { + this.shifts = [] + } - permanent(context, dx, dy) { - context.translate(dx, dy) - this.shifts.push([dx, dy]) - } + permanent(context, dx, dy) { + context.translate(dx, dy) + this.shifts.push([dx, dy]) + } - temporal(context) { - let shift = this.shifts.shift() - if (!shift) shift = [0, 0] - context.translate(...shift) - } - } + temporal(context) { + let shift = this.shifts.shift() + if (!shift) shift = [0, 0] + context.translate(...shift) + } + } - let d = 0 - const dMax = 10 - let shifter + let d = 0 + const dMax = 10 + let shifter - chart.on('update', (event) => { - const p = event.detail.progress - d = Math.pow(p, 0.4) * dMax // easing - shifter = new Shifter() - }) + chart.on('update', (event) => { + const p = event.detail.progress + d = Math.pow(p, 0.4) * dMax // easing + shifter = new Shifter() + }) - chart.on('plot-marker-label-draw', (event) => { - const ctx = event.renderingContext - shifter.temporal(ctx) - }) + chart.on('plot-marker-label-draw', (event) => { + const ctx = event.renderingContext + shifter.temporal(ctx) + }) - chart.on('plot-marker-draw', (event) => { - const ctx = event.renderingContext - const rect = event.detail.rect - const angle = (rect.pos.x + rect.size.x / 2) * 2 * 3.14 - const dAngle = rect.size.x * 2 * 3.14 - const offset = d / 2 / Math.sin(dAngle / 2) - const dx = +offset * Math.sin(angle) - const dy = -offset * Math.cos(angle) - shifter.permanent(ctx, dx, dy) - }) + chart.on('plot-marker-draw', (event) => { + const ctx = event.renderingContext + const rect = event.detail.rect + const angle = (rect.pos.x + rect.size.x / 2) * 2 * 3.14 + const dAngle = rect.size.x * 2 * 3.14 + const offset = d / 2 / Math.sin(dAngle / 2) + const dx = +offset * Math.sin(angle) + const dy = -offset * Math.cos(angle) + shifter.permanent(ctx, dx, dy) + }) - return chart.animate({ - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Exploded Pie Chart' - }, - style: { - plot: { overflow: 'visible' } - } - }) - } + return chart.animate({ + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Exploded Pie Chart' + }, + style: { + plot: { overflow: 'visible' } + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/gant_chart.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/gant_chart.mjs index a32b5ddef..78ef53397 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/gant_chart.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/gant_chart.mjs @@ -1,40 +1,40 @@ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Task', type: 'dimension' }, - { name: 'Helper', type: 'dimension' }, - { name: 'Days', type: 'measure' } - ], - records: [ - ['Task 1', 'start', 0], - ['Task 1', 'length', 1], - ['Task 2', 'start', 1], - ['Task 2', 'length', 2], - ['Task 3', 'start', 3], - ['Task 3', 'length', 3], - ['Task 4', 'start', 3], - ['Task 4', 'length', 7], - ['Task 5', 'start', 6], - ['Task 5', 'length', 5] - ] - } + (chart) => { + const data = { + series: [ + { name: 'Task', type: 'dimension' }, + { name: 'Helper', type: 'dimension' }, + { name: 'Days', type: 'measure' } + ], + records: [ + ['Task 1', 'start', 0], + ['Task 1', 'length', 1], + ['Task 2', 'start', 1], + ['Task 2', 'length', 2], + ['Task 3', 'start', 3], + ['Task 3', 'length', 3], + ['Task 4', 'start', 3], + ['Task 4', 'length', 7], + ['Task 5', 'start', 6], + ['Task 5', 'length', 5] + ] + } - return chart.animate({ - data, - config: { - x: ['Days', 'Helper'], - y: 'Task', - color: 'Helper', - title: 'Gant Chart', - legend: null, - reverse: true - }, - style: { - 'plot.marker.colorPalette': '#ffffff00 #01abf6ff' - } - }) - } + return chart.animate({ + data, + config: { + x: ['Days', 'Helper'], + y: 'Task', + color: 'Helper', + title: 'Gant Chart', + legend: null, + reverse: true + }, + style: { + 'plot.marker.colorPalette': '#ffffff00 #01abf6ff' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/historgram.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/historgram.mjs index e56fd286c..eeb56737b 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/historgram.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/historgram.mjs @@ -1,31 +1,31 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' class Binner { - constructor(min, max, count) { - this.min = min - this.max = max - this.count = count - } + constructor(min, max, count) { + this.min = min + this.max = max + this.count = count + } - getBin(x) { - let bin = Math.floor(((x - this.min) / (this.max - this.min)) * this.count) - if (bin < 0) bin = 0 - if (bin >= this.count) bin = this.count - 1 - return bin - } + getBin(x) { + let bin = Math.floor(((x - this.min) / (this.max - this.min)) * this.count) + if (bin < 0) bin = 0 + if (bin >= this.count) bin = this.count - 1 + return bin + } - getBinStr(x) { - const bin = this.getBin(x) - const binWidth = (this.max - this.min) / this.count - const binStart = this.min + bin * binWidth - const binEnd = binStart + binWidth - return `${binStart.toFixed(2)} - ${binEnd.toFixed(2)}` - } + getBinStr(x) { + const bin = this.getBin(x) + const binWidth = (this.max - this.min) / this.count + const binStart = this.min + bin * binWidth + const binEnd = binStart + binWidth + return `${binStart.toFixed(2)} - ${binEnd.toFixed(2)}` + } - getBinSeries(measure, name = 'bin') { - const bins = measure.values.map((v) => this.getBinStr(v)) - return { name, type: 'dimension', values: bins } - } + getBinSeries(measure, name = 'bin') { + const bins = measure.values.map((v) => this.getBinStr(v)) + return { name, type: 'dimension', values: bins } + } } const continous = 'Value 1 (+)' @@ -43,36 +43,36 @@ measure.values.sort() } */ const testSteps = [ - (chart) => { - const binner = new Binner(0, 1, 12) - data.series.push(binner.getBinSeries(measure)) + (chart) => { + const binner = new Binner(0, 1, 12) + data.series.push(binner.getBinSeries(measure)) - return chart.animate({ - data: Object.assign( - { - series: [binner.getBinSeries(measure)] - }, - data - ), - config: { - channels: { - x: 'bin', - y: 'count()', - label: 'count()', - noop: null - }, - title: 'Histogram of Value 1', - geometry: 'rectangle' - }, - style: { - plot: { - marker: { - rectangleSpacing: 0 - } - } - } - }) - } + return chart.animate({ + data: Object.assign( + { + series: [binner.getBinSeries(measure)] + }, + data + ), + config: { + channels: { + x: 'bin', + y: 'count()', + label: 'count()', + noop: null + }, + title: 'Histogram of Value 1', + geometry: 'rectangle' + }, + style: { + plot: { + marker: { + rectangleSpacing: 0 + } + } + } + }) + } ] /* for (let i = 0; i < 10; i++) { diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/map.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/map.mjs index 5edbb206f..1f8627bff 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/map.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/map.mjs @@ -1,62 +1,62 @@ import { data } from '../../../../test_data/capitals.mjs' const testSteps = [ - async (chart) => { - function urlToImage(url) { - return new Promise((resolve, reject) => { - const image = new Image() - image.addEventListener('load', () => { - resolve(image) - }) - image.addEventListener('error', () => { - reject(new Error('Failed to load image: ' + url)) - }) - image.src = url - }) - } + async (chart) => { + function urlToImage(url) { + return new Promise((resolve, reject) => { + const image = new Image() + image.addEventListener('load', () => { + resolve(image) + }) + image.addEventListener('error', () => { + reject(new Error('Failed to load image: ' + url)) + }) + image.src = url + }) + } - const map = await urlToImage( - 'https://upload.wikimedia.org/wikipedia/commons/5/51/BlankMap-Equirectangular.svg' - ) + const map = await urlToImage( + 'https://upload.wikimedia.org/wikipedia/commons/5/51/BlankMap-Equirectangular.svg' + ) - chart.on('plot-area-draw', (event) => { - const coordSystem = chart.feature.coordSystem - const p0 = coordSystem.toCanvas({ x: 0, y: 0 }) - const p1 = coordSystem.toCanvas({ x: 1, y: 1 }) - event.renderingContext.globalAlpha = 0.25 // the map image is too dark - event.renderingContext.drawImage(map, p0.x, p0.y, p1.x - p0.x, p1.y - p0.y) - event.renderingContext.globalAlpha = 1 - event.preventDefault() - }) + chart.on('plot-area-draw', (event) => { + const coordSystem = chart.feature.coordSystem + const p0 = coordSystem.toCanvas({ x: 0, y: 0 }) + const p1 = coordSystem.toCanvas({ x: 1, y: 1 }) + event.renderingContext.globalAlpha = 0.25 // the map image is too dark + event.renderingContext.drawImage(map, p0.x, p0.y, p1.x - p0.x, p1.y - p0.y) + event.renderingContext.globalAlpha = 1 + event.preventDefault() + }) - chart.feature('tooltip', true) + chart.feature('tooltip', true) - return chart.animate({ - data, - config: { - title: 'Population of Capitals', - x: { - set: 'Longitude', - range: { min: -180, max: +180 }, - axis: false, - interlacing: false, - markerGuides: false, - title: null - }, - y: { - set: 'Latitude', - range: { min: -90, max: +90 }, - axis: false, - interlacing: false, - markerGuides: false, - title: null - }, - noop: 'Capital', - size: 'Population', - geometry: 'circle' - } - }) - } + return chart.animate({ + data, + config: { + title: 'Population of Capitals', + x: { + set: 'Longitude', + range: { min: -180, max: +180 }, + axis: false, + interlacing: false, + markerGuides: false, + title: null + }, + y: { + set: 'Latitude', + range: { min: -90, max: +90 }, + axis: false, + interlacing: false, + markerGuides: false, + title: null + }, + noop: 'Capital', + size: 'Population', + geometry: 'circle' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/multilayer.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/multilayer.mjs index bbf56619a..45722cf69 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/multilayer.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/multilayer.mjs @@ -1,55 +1,55 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - const container = chart.feature.htmlCanvas.element - const container2 = document.createElement('canvas') + async (chart) => { + const container = chart.feature.htmlCanvas.element + const container2 = document.createElement('canvas') - container2.style = ` + container2.style = ` width: ${container.width}px; height: ${container.height}px; position: absolute; top: ${container.offsetTop}px; left: ${container.offsetLeft}px; ` - container.parentElement.appendChild(container2) + container.parentElement.appendChild(container2) - const chart2 = await new chart.constructor(container2).initializing + const chart2 = await new chart.constructor(container2).initializing - return Promise.all([ - chart2.animate({ - data, - config: { - x: { - set: 'Joy factors', - markerGuides: true, - labels: false, - axis: false - }, - y: { set: 'Value 1 (+)', interlacing: false, title: null }, - label: 'Value 1 (+)', - geometry: 'line', - title: ' ' - }, - style: { - backgroundColor: '#ffffff00', - plot: { - marker: { - colorPalette: '#FFA000' - } - } - } - }), - chart.animate({ - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - title: 'Multi layer chart' - } - }) - ]) - } + return Promise.all([ + chart2.animate({ + data, + config: { + x: { + set: 'Joy factors', + markerGuides: true, + labels: false, + axis: false + }, + y: { set: 'Value 1 (+)', interlacing: false, title: null }, + label: 'Value 1 (+)', + geometry: 'line', + title: ' ' + }, + style: { + backgroundColor: '#ffffff00', + plot: { + marker: { + colorPalette: '#FFA000' + } + } + } + }), + chart.animate({ + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + title: 'Multi layer chart' + } + }) + ]) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/network_graph.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/network_graph.mjs index f0eaa5970..c6f66746c 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/network_graph.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/network_graph.mjs @@ -1,46 +1,48 @@ function axisOptions(on) { - return { - axis: on, - labels: on, - markerGuides: false, - interlacing: on, - title: on ? 'auto' : null - } + return { + axis: on, + labels: on, + markerGuides: false, + interlacing: on, + title: on ? 'auto' : null + } } const testSteps = [ - async (chart) => { - const Viz = (await import('https://cdn.jsdelivr.net/npm/@aduh95/viz.js@3.7.0/+esm')).default + async (chart) => { + const Viz = (await import('https://cdn.jsdelivr.net/npm/@aduh95/viz.js@3.7.0/+esm')).default - const locateFile = (fileName) => - 'https://cdn.jsdelivr.net/npm/@aduh95/viz.js@3.7.0/dist/' + fileName - const onmessage = async function (event) { - if (this.messageHandler === undefined) { - const { default: init, onmessage } = await import(Module.locateFile('render.browser.js')) - removeEventListener('message', onmessage) - await init(Module) - this.messageHandler = onmessage - } - return this.messageHandler(event) - } - const vizOptions = { - workerURL: URL.createObjectURL( - new Blob( - [ - 'const Module = { locateFile:', - locateFile.toString(), - '};', - 'onmessage=', - onmessage.toString() - ], - { type: 'application/javascript' } - ) - ) - } + const locateFile = (fileName) => + 'https://cdn.jsdelivr.net/npm/@aduh95/viz.js@3.7.0/dist/' + fileName + const onmessage = async function (event) { + if (this.messageHandler === undefined) { + const { default: init, onmessage } = await import( + Module.locateFile('render.browser.js') + ) + removeEventListener('message', onmessage) + await init(Module) + this.messageHandler = onmessage + } + return this.messageHandler(event) + } + const vizOptions = { + workerURL: URL.createObjectURL( + new Blob( + [ + 'const Module = { locateFile:', + locateFile.toString(), + '};', + 'onmessage=', + onmessage.toString() + ], + { type: 'application/javascript' } + ) + ) + } - const viz = new Viz(vizOptions) + const viz = new Viz(vizOptions) - const dot = ` + const dot = ` graph G { run -- intr; intr -- runbl; @@ -58,78 +60,78 @@ const testSteps = [ } ` - const graph = await viz.renderJSONObject(dot, { engine: 'neato' }) + const graph = await viz.renderJSONObject(dot, { engine: 'neato' }) - const data = { - series: [ - { name: 'edge', type: 'dimension' }, - { name: 'part', type: 'dimension' }, - { name: 'node', type: 'dimension' }, - { name: 'x', type: 'measure' }, - { name: 'y', type: 'measure' }, - { name: 'data', type: 'measure' } - ], - records: [] - } + const data = { + series: [ + { name: 'edge', type: 'dimension' }, + { name: 'part', type: 'dimension' }, + { name: 'node', type: 'dimension' }, + { name: 'x', type: 'measure' }, + { name: 'y', type: 'measure' }, + { name: 'data', type: 'measure' } + ], + records: [] + } - for (let i = 0; i < graph.edges.length; i++) { - const edge = graph.edges[i] - const head = graph.objects[edge.head] - const tail = graph.objects[edge.tail] - const headPos = head.pos.split(',') - const tailPos = tail.pos.split(',') - const headName = head.name - const tailName = tail.name - data.records.push([i, 'head', headName, headPos[1], headPos[0], i]) - data.records.push([i, 'tail', tailName, tailPos[1], tailPos[0], i]) - } + for (let i = 0; i < graph.edges.length; i++) { + const edge = graph.edges[i] + const head = graph.objects[edge.head] + const tail = graph.objects[edge.tail] + const headPos = head.pos.split(',') + const tailPos = tail.pos.split(',') + const headName = head.name + const tailName = tail.name + data.records.push([i, 'head', headName, headPos[1], headPos[0], i]) + data.records.push([i, 'tail', tailName, tailPos[1], tailPos[0], i]) + } - function rectCenter(rect) { - return { - x: rect.pos.x + rect.size.x / 2, - y: rect.pos.y + rect.size.y / 2 - } - } + function rectCenter(rect) { + return { + x: rect.pos.x + rect.size.x / 2, + y: rect.pos.y + rect.size.y / 2 + } + } - let lastPos = null - chart.on('plot-marker-draw', (event) => { - const pos = rectCenter(event.detail.rect) - if (lastPos === null) { - lastPos = pos - } else { - const ctx = event.renderingContext - ctx.beginPath() - const coordSystem = chart.feature.coordSystem - const p0 = coordSystem.toCanvas(lastPos) - const p1 = coordSystem.toCanvas(pos) - ctx.moveTo(p0.x, p0.y) - ctx.lineTo(p1.x, p1.y) - ctx.stroke() - lastPos = null - } - }) + let lastPos = null + chart.on('plot-marker-draw', (event) => { + const pos = rectCenter(event.detail.rect) + if (lastPos === null) { + lastPos = pos + } else { + const ctx = event.renderingContext + ctx.beginPath() + const coordSystem = chart.feature.coordSystem + const p0 = coordSystem.toCanvas(lastPos) + const p1 = coordSystem.toCanvas(pos) + ctx.moveTo(p0.x, p0.y) + ctx.lineTo(p1.x, p1.y) + ctx.stroke() + lastPos = null + } + }) - return chart.animate({ - data, - config: { - x: Object.assign({ set: 'x' }, axisOptions(false)), - y: Object.assign({ set: 'y' }, axisOptions(false)), - label: 'node', - noop: ['edge', 'part'], - geometry: 'circle', - title: 'Network graph' - } - }) - }, + return chart.animate({ + data, + config: { + x: Object.assign({ set: 'x' }, axisOptions(false)), + y: Object.assign({ set: 'y' }, axisOptions(false)), + label: 'node', + noop: ['edge', 'part'], + geometry: 'circle', + title: 'Network graph' + } + }) + }, - (chart) => - chart.animate({ - x: Object.assign({ set: 'node' }, axisOptions(true)), - y: Object.assign({ set: ['edge', 'part', 'data'] }, axisOptions(true)), - label: null, - noop: null, - geometry: 'rectangle' - }) + (chart) => + chart.animate({ + x: Object.assign({ set: 'node' }, axisOptions(true)), + y: Object.assign({ set: ['edge', 'part', 'data'] }, axisOptions(true)), + label: null, + noop: null, + geometry: 'rectangle' + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/step_line_chart.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/step_line_chart.mjs index 2e5a583be..b3de0c996 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/step_line_chart.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/step_line_chart.mjs @@ -1,28 +1,28 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - chart.on('plot-marker-draw', (event) => { - const ctx = event.renderingContext - const line = event.detail.line - ctx.beginPath() - ctx.moveTo(line.begin.x, line.begin.y) - ctx.lineTo(line.end.x, line.begin.y) - ctx.lineTo(line.end.x, line.end.y) - ctx.stroke() - event.preventDefault() - }) + (chart) => { + chart.on('plot-marker-draw', (event) => { + const ctx = event.renderingContext + const line = event.detail.line + ctx.beginPath() + ctx.moveTo(line.begin.x, line.begin.y) + ctx.lineTo(line.end.x, line.begin.y) + ctx.lineTo(line.end.x, line.end.y) + ctx.stroke() + event.preventDefault() + }) - return chart.animate({ - data, - config: { - x: { set: ['Year'] }, - y: { set: ['Value 5 (+/-)'] }, - title: 'Step Line Chart', - geometry: 'line' - } - }) - } + return chart.animate({ + data, + config: { + x: { set: ['Year'] }, + y: { set: ['Value 5 (+/-)'] }, + title: 'Step Line Chart', + geometry: 'line' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/trendline.mjs b/test/integration/test_cases/web_content/cookbook/chart_types/trendline.mjs index 4533447a1..a0a03cdc6 100644 --- a/test/integration/test_cases/web_content/cookbook/chart_types/trendline.mjs +++ b/test/integration/test_cases/web_content/cookbook/chart_types/trendline.mjs @@ -1,89 +1,89 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - class LinearRegression { - constructor() { - this.reset() - } + (chart) => { + class LinearRegression { + constructor() { + this.reset() + } - reset() { - this.xSum = 0 - this.ySum = 0 - this.xxSum = 0 - this.xySum = 0 - this.count = 0 - this.slope = null - this.intercept = null - } + reset() { + this.xSum = 0 + this.ySum = 0 + this.xxSum = 0 + this.xySum = 0 + this.count = 0 + this.slope = null + this.intercept = null + } - add(point) { - this.xSum += point.x - this.ySum += point.y - this.xxSum += point.x * point.x - this.xySum += point.x * point.y - this.count++ - } + add(point) { + this.xSum += point.x + this.ySum += point.y + this.xxSum += point.x * point.x + this.xySum += point.x * point.y + this.count++ + } - calc() { - this.slope = - (this.count * this.xySum - this.xSum * this.ySum) / - (this.count * this.xxSum - this.xSum * this.xSum) - this.intercept = this.ySum / this.count - (this.slope * this.xSum) / this.count - } + calc() { + this.slope = + (this.count * this.xySum - this.xSum * this.ySum) / + (this.count * this.xxSum - this.xSum * this.xSum) + this.intercept = this.ySum / this.count - (this.slope * this.xSum) / this.count + } - at(x) { - if (this.slope === null) this.calc() - return x * this.slope + this.intercept - } - } + at(x) { + if (this.slope === null) this.calc() + return x * this.slope + this.intercept + } + } - const regression = new LinearRegression() + const regression = new LinearRegression() - function rectCenter(rect) { - return { - x: rect.pos.x + rect.size.x / 2, - y: rect.pos.y + rect.size.y / 2 - } - } + function rectCenter(rect) { + return { + x: rect.pos.x + rect.size.x / 2, + y: rect.pos.y + rect.size.y / 2 + } + } - chart.on('draw-begin', (event) => { - regression.reset() - }) + chart.on('draw-begin', (event) => { + regression.reset() + }) - chart.on('plot-marker-draw', (event) => { - regression.add(rectCenter(event.detail.rect)) - }) + chart.on('plot-marker-draw', (event) => { + regression.add(rectCenter(event.detail.rect)) + }) - chart.on('draw-complete', (event) => { - const ctx = event.renderingContext - ctx.strokeStyle = '#a0b0f0' - ctx.beginPath() - ctx.lineWidth = 2 - const coordSystem = chart.feature.coordSystem - const p0 = coordSystem.toCanvas({ x: 0, y: regression.at(0) }) - const p1 = coordSystem.toCanvas({ x: 1, y: regression.at(1) }) - ctx.moveTo(p0.x, p0.y) - ctx.lineTo(p1.x, p1.y) - ctx.stroke() - }) + chart.on('draw-complete', (event) => { + const ctx = event.renderingContext + ctx.strokeStyle = '#a0b0f0' + ctx.beginPath() + ctx.lineWidth = 2 + const coordSystem = chart.feature.coordSystem + const p0 = coordSystem.toCanvas({ x: 0, y: regression.at(0) }) + const p1 = coordSystem.toCanvas({ x: 1, y: regression.at(1) }) + ctx.moveTo(p0.x, p0.y) + ctx.lineTo(p1.x, p1.y) + ctx.stroke() + }) - return chart.animate({ - data, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - noop: 'Year', - label: 'Year' - }, - title: 'Scatterplot with (-) Nums', - geometry: 'circle', - coordSystem: 'cartesian', - orientation: 'horizontal' - } - }) - } + return chart.animate({ + data, + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + noop: 'Year', + label: 'Year' + }, + title: 'Scatterplot with (-) Nums', + geometry: 'circle', + coordSystem: 'cartesian', + orientation: 'horizontal' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/data_source/csv_load.mjs b/test/integration/test_cases/web_content/cookbook/data_source/csv_load.mjs index faef8aa9b..16d4ce128 100644 --- a/test/integration/test_cases/web_content/cookbook/data_source/csv_load.mjs +++ b/test/integration/test_cases/web_content/cookbook/data_source/csv_load.mjs @@ -1,35 +1,36 @@ const testSteps = [ - async (chart) => { - await import('https://d3js.org/d3.v7.min.js') + async (chart) => { + await import('https://d3js.org/d3.v7.min.js') - const data = { series: [], records: [] } + const data = { series: [], records: [] } - data.records = await d3.csv( - 'https://raw.githubusercontent.com/vizzuhq/vizzu-lib-doc/3dac11c1ff8076f5bf2801aa13e56b01120a3c61/docs/datasets/population_total_long.csv' - ) + data.records = await d3.csv( + 'https://raw.githubusercontent.com/vizzuhq/vizzu-lib-doc/3dac11c1ff8076f5bf2801aa13e56b01120a3c61/docs/datasets/population_total_long.csv' + ) - data.series = Object.keys(data.records[0]).map((name) => ({ - name, - type: name === 'Count' ? 'measure' : 'dimension' - })) + data.series = Object.keys(data.records[0]).map((name) => ({ + name, + type: name === 'Count' ? 'measure' : 'dimension' + })) - for (let i = 0; i < data.records.length; i++) data.records[i] = Object.values(data.records[i]) + for (let i = 0; i < data.records.length; i++) + data.records[i] = Object.values(data.records[i]) - return chart.animate({ data }) - }, - (chart) => - chart.animate({ - config: { - x: 'Year', - y: 'Count', - geometry: 'line' - }, - style: { - 'plot.xAxis.label': { - angle: '-45deg' - } - } - }) + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + config: { + x: 'Year', + y: 'Count', + geometry: 'line' + }, + style: { + 'plot.xAxis.label': { + angle: '-45deg' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/data_source/data_from_model.mjs b/test/integration/test_cases/web_content/cookbook/data_source/data_from_model.mjs index 280eb3ce7..19b41e147 100644 --- a/test/integration/test_cases/web_content/cookbook/data_source/data_from_model.mjs +++ b/test/integration/test_cases/web_content/cookbook/data_source/data_from_model.mjs @@ -1,142 +1,142 @@ const testSteps = [ - async (chart) => { - function Rand(a) { - return function () { - let t = (a += 0x6d2b79f5) - t = Math.imul(t ^ (t >>> 15), t | 1) - t ^= t + Math.imul(t ^ (t >>> 7), t | 61) - return ((t ^ (t >>> 14)) >>> 0) / 4294967296 - } - } - - const rand = Rand(32) - - class Vector { - constructor(x, y) { - this.x = x - this.y = y - } - - static Random() { - return new Vector(rand(), rand()) - } - - mul(multiplier) { - return new Vector( - this.x * (multiplier?.x || multiplier), - this.y * (multiplier?.y || multiplier) - ) - } - - add(other) { - return new Vector(this.x + other.x, this.y + other.y) - } - } - - class BouncingBall { - static lastIndex = 0 - - constructor(massToSize) { - this.index = BouncingBall.lastIndex++ - this.position = Vector.Random() - this.speed = Vector.Random().mul(new Vector(3, 5)) - this.mass = rand() - this.radius = Math.sqrt(this.mass) * massToSize - } - - update(timeStep) { - const g = 9.81 - const friction = 0.5 - const acceleration = this.speed.mul(-friction * this.mass).add(new Vector(0, -g)) - this.speed = this.speed.add(acceleration.mul(timeStep)) - this.position = this.position.add(this.speed.mul(timeStep)) - this.collision('y', (v) => v) - this.collision('x', (v) => v) - this.collision('x', (v) => 1 - v) - } - - collision(coordinate, conversion) { - const collisionDumping = 0.6 - const side = conversion(this.position[coordinate]) - this.radius - if (side < 0) { - this.position[coordinate] = conversion(-side + this.radius) - this.speed[coordinate] *= -collisionDumping - } - } - } - - class Model { - constructor(massToSize, ballCount = 150) { - this.time = 0 - this.balls = [] - for (let i = 0; i < ballCount; i++) this.balls.push(new BouncingBall(massToSize)) - } - - update(timeStep) { - for (const ball of this.balls) ball.update(timeStep) - this.time += timeStep - } - } - - function getDataFromModel(model) { - return { - series: [ - { - name: 'index', - type: 'dimension', - values: model.balls.map((ball) => `${ball.index}`) - }, - { - name: 'x', - type: 'measure', - values: model.balls.map((ball) => ball.position.x) - }, - { - name: 'y', - type: 'measure', - values: model.balls.map((ball) => ball.position.y) - }, - { - name: 'size', - type: 'measure', - values: model.balls.map((ball) => ball.mass) - } - ] - } - } - - function getChartConfig() { - return { - title: 'Bouncing balls realtime simulation', - x: { set: 'x', range: { min: 0, max: 1 } }, - y: { set: 'y', range: { min: 0, max: 1 } }, - color: 'index', - size: 'size', - geometry: 'circle', - legend: null - } - } - - function update(model, chart) { - const timeStep = 0.01 - model.update(timeStep) - if (model.time < 3) - return chart - .animate( - { - data: getDataFromModel(model), - config: getChartConfig() - }, - timeStep - ) - .then((chart) => update(model, chart)) - } - - const circleMaxRadius = chart.getComputedStyle().plot.marker.circleMaxRadius - const model = new Model(circleMaxRadius) - - return update(model, chart) - } + async (chart) => { + function Rand(a) { + return function () { + let t = (a += 0x6d2b79f5) + t = Math.imul(t ^ (t >>> 15), t | 1) + t ^= t + Math.imul(t ^ (t >>> 7), t | 61) + return ((t ^ (t >>> 14)) >>> 0) / 4294967296 + } + } + + const rand = Rand(32) + + class Vector { + constructor(x, y) { + this.x = x + this.y = y + } + + static Random() { + return new Vector(rand(), rand()) + } + + mul(multiplier) { + return new Vector( + this.x * (multiplier?.x || multiplier), + this.y * (multiplier?.y || multiplier) + ) + } + + add(other) { + return new Vector(this.x + other.x, this.y + other.y) + } + } + + class BouncingBall { + static lastIndex = 0 + + constructor(massToSize) { + this.index = BouncingBall.lastIndex++ + this.position = Vector.Random() + this.speed = Vector.Random().mul(new Vector(3, 5)) + this.mass = rand() + this.radius = Math.sqrt(this.mass) * massToSize + } + + update(timeStep) { + const g = 9.81 + const friction = 0.5 + const acceleration = this.speed.mul(-friction * this.mass).add(new Vector(0, -g)) + this.speed = this.speed.add(acceleration.mul(timeStep)) + this.position = this.position.add(this.speed.mul(timeStep)) + this.collision('y', (v) => v) + this.collision('x', (v) => v) + this.collision('x', (v) => 1 - v) + } + + collision(coordinate, conversion) { + const collisionDumping = 0.6 + const side = conversion(this.position[coordinate]) - this.radius + if (side < 0) { + this.position[coordinate] = conversion(-side + this.radius) + this.speed[coordinate] *= -collisionDumping + } + } + } + + class Model { + constructor(massToSize, ballCount = 150) { + this.time = 0 + this.balls = [] + for (let i = 0; i < ballCount; i++) this.balls.push(new BouncingBall(massToSize)) + } + + update(timeStep) { + for (const ball of this.balls) ball.update(timeStep) + this.time += timeStep + } + } + + function getDataFromModel(model) { + return { + series: [ + { + name: 'index', + type: 'dimension', + values: model.balls.map((ball) => `${ball.index}`) + }, + { + name: 'x', + type: 'measure', + values: model.balls.map((ball) => ball.position.x) + }, + { + name: 'y', + type: 'measure', + values: model.balls.map((ball) => ball.position.y) + }, + { + name: 'size', + type: 'measure', + values: model.balls.map((ball) => ball.mass) + } + ] + } + } + + function getChartConfig() { + return { + title: 'Bouncing balls realtime simulation', + x: { set: 'x', range: { min: 0, max: 1 } }, + y: { set: 'y', range: { min: 0, max: 1 } }, + color: 'index', + size: 'size', + geometry: 'circle', + legend: null + } + } + + function update(model, chart) { + const timeStep = 0.01 + model.update(timeStep) + if (model.time < 3) + return chart + .animate( + { + data: getDataFromModel(model), + config: getChartConfig() + }, + timeStep + ) + .then((chart) => update(model, chart)) + } + + const circleMaxRadius = chart.getComputedStyle().plot.marker.circleMaxRadius + const model = new Model(circleMaxRadius) + + return update(model, chart) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/data_source/data_from_model2.mjs b/test/integration/test_cases/web_content/cookbook/data_source/data_from_model2.mjs index 252c130f5..604384de7 100644 --- a/test/integration/test_cases/web_content/cookbook/data_source/data_from_model2.mjs +++ b/test/integration/test_cases/web_content/cookbook/data_source/data_from_model2.mjs @@ -1,114 +1,130 @@ const testSteps = [ - async (chart) => { - const data = { - series: [ - { - name: 'category', - type: 'dimension', - values: ['5', '12', '3', '14', '9', '10', '0', '1', '13', '7', '2', '4', '6', '8', '11'] - }, - { - name: 'value', - type: 'measure', - values: [5, 12, 3, 14, 9, 10, 0, 1, 13, 7, 2, 4, 6, 8, 11] - }, - { - name: 'index', - type: 'measure', - values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] - } - ] - } + async (chart) => { + const data = { + series: [ + { + name: 'category', + type: 'dimension', + values: [ + '5', + '12', + '3', + '14', + '9', + '10', + '0', + '1', + '13', + '7', + '2', + '4', + '6', + '8', + '11' + ] + }, + { + name: 'value', + type: 'measure', + values: [5, 12, 3, 14, 9, 10, 0, 1, 13, 7, 2, 4, 6, 8, 11] + }, + { + name: 'index', + type: 'measure', + values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] + } + ] + } - let i = 0 - let j = 0 + let i = 0 + let j = 0 - function lessAt(i) { - const index = data.series[2].values - const i0 = index.indexOf(i) - const i1 = index.indexOf(i + 1) - const values = data.series[1].values - return values[i1] < values[i0] - } + function lessAt(i) { + const index = data.series[2].values + const i0 = index.indexOf(i) + const i1 = index.indexOf(i + 1) + const values = data.series[1].values + return values[i1] < values[i0] + } - function swapAt(i) { - const index = data.series[2].values - const i0 = index.indexOf(i) - const i1 = index.indexOf(i + 1) - const tmp = index[i0] - index[i0] = index[i1] - index[i1] = tmp - return true - } + function swapAt(i) { + const index = data.series[2].values + const i0 = index.indexOf(i) + const i1 = index.indexOf(i + 1) + const tmp = index[i0] + index[i0] = index[i1] + index[i1] = tmp + return true + } - function bubbleSortStep() { - const length = data.series[1].values.length - if (j >= length - i - 1) { - i++ - j = 0 - } - if (i >= length) return false - if (lessAt(j)) return swapAt(j) - else { - j++ - return bubbleSortStep() - } - } + function bubbleSortStep() { + const length = data.series[1].values.length + if (j >= length - i - 1) { + i++ + j = 0 + } + if (i >= length) return false + if (lessAt(j)) return swapAt(j) + else { + j++ + return bubbleSortStep() + } + } - function update(chart) { - const swapped = bubbleSortStep() - if (swapped) return chart.animate({ data }, '50ms').then((chart) => update(chart)) - else { - return chart - } - } + function update(chart) { + const swapped = bubbleSortStep() + if (swapped) return chart.animate({ data }, '50ms').then((chart) => update(chart)) + else { + return chart + } + } - return chart - .animate( - { - data, - config: { - title: 'How Bubble Sort Algorithm Works', - x: { - set: 'index', - labels: false, - ticks: false, - markerGuides: true, - range: { - min: -0.5, - max: 14.5 - } - }, - y: { - set: 'value', - markerGuides: false, - interlacing: false, - axis: false, - labels: false, - title: null - }, - color: 'value', - label: 'category', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - circleMinRadius: 0.02, - guides: { - color: '#cccccc', - lineWidth: 12 - } - }, - overflow: 'visible' - } - } - }, - 0 - ) - .then((chart) => update(chart)) - } + return chart + .animate( + { + data, + config: { + title: 'How Bubble Sort Algorithm Works', + x: { + set: 'index', + labels: false, + ticks: false, + markerGuides: true, + range: { + min: -0.5, + max: 14.5 + } + }, + y: { + set: 'value', + markerGuides: false, + interlacing: false, + axis: false, + labels: false, + title: null + }, + color: 'value', + label: 'category', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + circleMinRadius: 0.02, + guides: { + color: '#cccccc', + lineWidth: 12 + } + }, + overflow: 'visible' + } + } + }, + 0 + ) + .then((chart) => update(chart)) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/data_source/paint.mjs b/test/integration/test_cases/web_content/cookbook/data_source/paint.mjs index 3a9cccbdc..64d9a77f4 100644 --- a/test/integration/test_cases/web_content/cookbook/data_source/paint.mjs +++ b/test/integration/test_cases/web_content/cookbook/data_source/paint.mjs @@ -1,47 +1,47 @@ import { Mouse } from '../../../../utils/mouse.mjs' const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'index', type: 'dimension' }, - { name: 'x', type: 'measure' }, - { name: 'y', type: 'measure' } - ] - } + (chart) => { + const data = { + series: [ + { name: 'index', type: 'dimension' }, + { name: 'x', type: 'measure' }, + { name: 'y', type: 'measure' } + ] + } - let index = 0 + let index = 0 - chart.on('click', (event) => { - const coordSystem = chart.feature.coordSystem - const rel = coordSystem.toRelative(event.detail.position) - chart.animate( - { - data: { - records: [[index++, rel.x, rel.y]] - } - }, - 0.1 - ) - }) + chart.on('click', (event) => { + const coordSystem = chart.feature.coordSystem + const rel = coordSystem.toRelative(event.detail.position) + chart.animate( + { + data: { + records: [[index++, rel.x, rel.y]] + } + }, + 0.1 + ) + }) - return chart.animate({ - data, - config: { - x: { set: 'x', range: { min: 0, max: 1 } }, - y: { set: 'y', range: { min: 0, max: 1 } }, - geometry: 'circle', - noop: 'index', - title: 'Click the chart to put in data points!' - } - }) - }, - (chart) => { - return new Mouse(chart).click(200, 200).expectedAnimation() - }, - (chart) => { - return new Mouse(chart).click(300, 200).expectedAnimation() - } + return chart.animate({ + data, + config: { + x: { set: 'x', range: { min: 0, max: 1 } }, + y: { set: 'y', range: { min: 0, max: 1 } }, + geometry: 'circle', + noop: 'index', + title: 'Click the chart to put in data points!' + } + }) + }, + (chart) => { + return new Mouse(chart).click(200, 200).expectedAnimation() + }, + (chart) => { + return new Mouse(chart).click(300, 200).expectedAnimation() + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/data_source/realtime_data.mjs b/test/integration/test_cases/web_content/cookbook/data_source/realtime_data.mjs index 920e74174..2548af535 100644 --- a/test/integration/test_cases/web_content/cookbook/data_source/realtime_data.mjs +++ b/test/integration/test_cases/web_content/cookbook/data_source/realtime_data.mjs @@ -1,36 +1,36 @@ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Database', type: 'dimension' }, - { name: 'New page', type: 'measure' } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Database', type: 'dimension' }, + { name: 'New page', type: 'measure' } + ] + } - const url = 'https://stream.wikimedia.org/v2/stream/page-create' - const eventSource = new EventSource(url) + const url = 'https://stream.wikimedia.org/v2/stream/page-create' + const eventSource = new EventSource(url) - eventSource.onmessage = (event) => { - const data = JSON.parse(event.data) - chart.animate( - { - data: { - records: [[data.database, 1]] - } - }, - 0.1 - ) - } + eventSource.onmessage = (event) => { + const data = JSON.parse(event.data) + chart.animate( + { + data: { + records: [[data.database, 1]] + } + }, + 0.1 + ) + } - return chart.animate({ - data, - config: { - y: 'Database', - x: 'New page', - title: 'Realtime Wikimedia Data' - } - }) - } + return chart.animate({ + data, + config: { + y: 'Database', + x: 'New page', + title: 'Realtime Wikimedia Data' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/exports/animated_gif_export.mjs b/test/integration/test_cases/web_content/cookbook/exports/animated_gif_export.mjs index 2fc914b2c..722081d73 100644 --- a/test/integration/test_cases/web_content/cookbook/exports/animated_gif_export.mjs +++ b/test/integration/test_cases/web_content/cookbook/exports/animated_gif_export.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - const baseUrl = 'https://cdn.jsdelivr.net/npm/gif.js@0.2.0/dist' - - await import(baseUrl + '/gif.min.js') - - const workerBlob = await fetch(baseUrl + '/gif.worker.js').then((response) => { - if (!response.ok) { - throw new Error('Network response was not OK') - } - return response.blob() - }) - - const gif = new GIF({ - workers: 4, - workerScript: URL.createObjectURL(workerBlob), - quality: 10, - width: chart.feature.htmlCanvas.element.width, - height: chart.feature.htmlCanvas.element.height - }) - - chart.on('draw-complete', (event) => { - gif.addFrame(event.renderingContext, { copy: true, delay: 25 }) - }) - - gif.on('finished', function (blob) { - window.open(URL.createObjectURL(blob)) - }) - - return chart - .animate({ - data, - config: { - x: 'Year', - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors', - title: 'Anim GIF Export' - } - }) - .then((chart) => { - gif.render() - return chart - }) - } + async (chart) => { + const baseUrl = 'https://cdn.jsdelivr.net/npm/gif.js@0.2.0/dist' + + await import(baseUrl + '/gif.min.js') + + const workerBlob = await fetch(baseUrl + '/gif.worker.js').then((response) => { + if (!response.ok) { + throw new Error('Network response was not OK') + } + return response.blob() + }) + + const gif = new GIF({ + workers: 4, + workerScript: URL.createObjectURL(workerBlob), + quality: 10, + width: chart.feature.htmlCanvas.element.width, + height: chart.feature.htmlCanvas.element.height + }) + + chart.on('draw-complete', (event) => { + gif.addFrame(event.renderingContext, { copy: true, delay: 25 }) + }) + + gif.on('finished', function (blob) { + window.open(URL.createObjectURL(blob)) + }) + + return chart + .animate({ + data, + config: { + x: 'Year', + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors', + title: 'Anim GIF Export' + } + }) + .then((chart) => { + gif.render() + return chart + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/exports/pptx-export.mjs b/test/integration/test_cases/web_content/cookbook/exports/pptx-export.mjs index b4465c49d..9a4293208 100644 --- a/test/integration/test_cases/web_content/cookbook/exports/pptx-export.mjs +++ b/test/integration/test_cases/web_content/cookbook/exports/pptx-export.mjs @@ -3,39 +3,41 @@ import VideoCapture from '../../../../utils/vizzu-videocapture.mjs' import PPTXGen from '../../../../utils/vizzu-pptxgen.mjs' const testSteps = [ - async (chart) => { - window.PptxGenJS = (await import('https://cdn.jsdelivr.net/npm/pptxgenjs@3.12.0/+esm')).default - return chart - }, + async (chart) => { + window.PptxGenJS = ( + await import('https://cdn.jsdelivr.net/npm/pptxgenjs@3.12.0/+esm') + ).default + return chart + }, - async (chart) => { - chart.feature(new VideoCapture(/* PPTXGen.videoCaptureOptions // fails on test.cjs */)) - chart.feature(new PPTXGen()) + async (chart) => { + chart.feature(new VideoCapture(/* PPTXGen.videoCaptureOptions // fails on test.cjs */)) + chart.feature(new PPTXGen()) - await chart.animate({ - data, - config: { - x: 'Year', - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors', - title: 'Slide 1' - } - }) + await chart.animate({ + data, + config: { + x: 'Year', + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors', + title: 'Slide 1' + } + }) - await chart.animate({ - data, - config: { - x: 'Year', - y: 'Joy factors', - color: 'Value 2 (+)', - title: 'Slide 2' - } - }) + await chart.animate({ + data, + config: { + x: 'Year', + y: 'Joy factors', + color: 'Value 2 (+)', + title: 'Slide 2' + } + }) - await chart.feature.pptxGen.save('Sample-Vizzu-Presentation.pptx') + await chart.feature.pptxGen.save('Sample-Vizzu-Presentation.pptx') - return chart - } + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/exports/video_export.mjs b/test/integration/test_cases/web_content/cookbook/exports/video_export.mjs index 9fdd83425..caf8f4d59 100644 --- a/test/integration/test_cases/web_content/cookbook/exports/video_export.mjs +++ b/test/integration/test_cases/web_content/cookbook/exports/video_export.mjs @@ -2,30 +2,30 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' import VideoCapture from '../../../../utils/vizzu-videocapture.mjs' const testSteps = [ - (chart) => { - chart.feature(new VideoCapture()) + (chart) => { + chart.feature(new VideoCapture()) - const anim = chart.animate({ - data, - config: { - x: 'Year', - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors', - title: 'Video Export' - } - }) + const anim = chart.animate({ + data, + config: { + x: 'Year', + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors', + title: 'Video Export' + } + }) - anim.activated.then(() => { - chart.feature.videoCapture.start() - }) + anim.activated.then(() => { + chart.feature.videoCapture.start() + }) - anim.then(async (chart) => { - const output = await chart.feature.videoCapture.stop() - window.open(output.getObjectURL()) - }) + anim.then(async (chart) => { + const output = await chart.feature.videoCapture.stop() + window.open(output.getObjectURL()) + }) - return anim - } + return anim + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/data_selector_combobox.mjs b/test/integration/test_cases/web_content/cookbook/interactive/data_selector_combobox.mjs index 2c088ab84..296976185 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/data_selector_combobox.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/data_selector_combobox.mjs @@ -2,49 +2,49 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' import { LastAnimation } from '../../../../utils/lastanimation.mjs' const testSteps = [ - (chart) => { - chart.feature(new LastAnimation()) - const select = document.createElement('select') - select.style = 'position: absolute; top: 40px; left: 300px;' - chart.feature.htmlCanvas.element.parentElement.appendChild(select) + (chart) => { + chart.feature(new LastAnimation()) + const select = document.createElement('select') + select.style = 'position: absolute; top: 40px; left: 300px;' + chart.feature.htmlCanvas.element.parentElement.appendChild(select) - const options = ['Value 2 (+)', 'Value 3 (+)', 'Value 1 (+)'] - for (let i = 0; i < options.length; i++) { - const option = document.createElement('option') - option.value = options[i] - option.text = options[i] - select.appendChild(option) - } + const options = ['Value 2 (+)', 'Value 3 (+)', 'Value 1 (+)'] + for (let i = 0; i < options.length; i++) { + const option = document.createElement('option') + option.value = options[i] + option.text = options[i] + select.appendChild(option) + } - select.addEventListener('change', (event) => { - chart.animate({ - data, - config: { - y: event.target.value, - label: event.target.value - } - }) - }) + select.addEventListener('change', (event) => { + chart.animate({ + data, + config: { + y: event.target.value, + label: event.target.value + } + }) + }) - return chart.animate( - { - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - label: 'Value 2 (+)' - } - }, - 0 - ) - }, - (chart) => { - document.querySelector('select').value = 'Value 3 (+)' - const event = new Event('change') - document.querySelector('select').dispatchEvent(event) - return chart.feature.lastAnimation.last() - } + return chart.animate( + { + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + label: 'Value 2 (+)' + } + }, + 0 + ) + }, + (chart) => { + document.querySelector('select').value = 'Value 3 (+)' + const event = new Event('change') + document.querySelector('select').dispatchEvent(event) + return chart.feature.lastAnimation.last() + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/filter_on_click.mjs b/test/integration/test_cases/web_content/cookbook/interactive/filter_on_click.mjs index 486f89e38..071462a10 100755 --- a/test/integration/test_cases/web_content/cookbook/interactive/filter_on_click.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/filter_on_click.mjs @@ -2,36 +2,36 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' import { Mouse } from '../../../../utils/mouse.mjs' const testSteps = [ - (chart) => { - const clickHandler = (event) => { - const filter = - event.target && event.target.tagName === 'plot-marker' - ? (record) => record.Year === event.target.categories.Year - : null + (chart) => { + const clickHandler = (event) => { + const filter = + event.target && event.target.tagName === 'plot-marker' + ? (record) => record.Year === event.target.categories.Year + : null - chart.animate({ data: { filter } }) + chart.animate({ data: { filter } }) - event.preventDefault() - } + event.preventDefault() + } - chart.on('click', clickHandler) + chart.on('click', clickHandler) - return chart.animate({ - data, - config: { - x: 'Year', - y: 'Value 2 (+)', - label: 'Value 2 (+)', - title: 'Filter on click' - } - }) - }, - (chart) => { - return new Mouse(chart).click(142, 168).expectedAnimation() - }, - (chart) => { - return new Mouse(chart).click(100, 100).expectedAnimation() - } + return chart.animate({ + data, + config: { + x: 'Year', + y: 'Value 2 (+)', + label: 'Value 2 (+)', + title: 'Filter on click' + } + }) + }, + (chart) => { + return new Mouse(chart).click(142, 168).expectedAnimation() + }, + (chart) => { + return new Mouse(chart).click(100, 100).expectedAnimation() + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/filter_slider.mjs b/test/integration/test_cases/web_content/cookbook/interactive/filter_slider.mjs index ed81f895e..7550c7cac 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/filter_slider.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/filter_slider.mjs @@ -2,48 +2,48 @@ import { data } from '../../../../test_data/music_industry_history_1.mjs' import { LastAnimation } from '../../../../utils/lastanimation.mjs' const testSteps = [ - (chart) => { - chart.feature(new LastAnimation()) + (chart) => { + chart.feature(new LastAnimation()) - const input = document.createElement('input') - input.id = 'slider' - input.type = 'range' - input.min = 1973 - input.max = 2020 - input.value = 2020 - input.style = 'width: 500px; position: absolute; top: 540px; left: 30px;' - chart.feature.htmlCanvas.element.parentElement.appendChild(input) + const input = document.createElement('input') + input.id = 'slider' + input.type = 'range' + input.min = 1973 + input.max = 2020 + input.value = 2020 + input.style = 'width: 500px; position: absolute; top: 540px; left: 30px;' + chart.feature.htmlCanvas.element.parentElement.appendChild(input) - input.oninput = (e) => { - chart.animate( - { - data: { filter: (record) => record.Year === e.target.value } - }, - { duration: '200ms' } - ) - } + input.oninput = (e) => { + chart.animate( + { + data: { filter: (record) => record.Year === e.target.value } + }, + { duration: '200ms' } + ) + } - data.filter = (record) => record.Year === '2020' + data.filter = (record) => record.Year === '2020' - return chart.animate({ - data, - config: { - x: 'Revenue', - y: 'Format', - color: 'Format', - label: 'Revenue', - sort: 'byValue', - title: 'Filter with slider' - } - }) - }, - (chart) => { - const input = document.getElementById('slider') - input.value = '2000' - const event = new Event('input') - input.dispatchEvent(event) - return chart.feature.lastAnimation.last() - } + return chart.animate({ + data, + config: { + x: 'Revenue', + y: 'Format', + color: 'Format', + label: 'Revenue', + sort: 'byValue', + title: 'Filter with slider' + } + }) + }, + (chart) => { + const input = document.getElementById('slider') + input.value = '2000' + const event = new Event('input') + input.dispatchEvent(event) + return chart.feature.lastAnimation.last() + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/fullscreen.mjs b/test/integration/test_cases/web_content/cookbook/interactive/fullscreen.mjs index bbbe4cac3..a24dea6a7 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/fullscreen.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/fullscreen.mjs @@ -1,9 +1,9 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - const btnStyle = document.createElement('style') - btnStyle.innerHTML = ` + (chart) => { + const btnStyle = document.createElement('style') + btnStyle.innerHTML = ` ` - chart.feature.htmlCanvas.element.parentElement.appendChild(btnStyle) + chart.feature.htmlCanvas.element.parentElement.appendChild(btnStyle) - const button = document.createElement('button') - button.style.background = 'transparent' - button.style.padding = 0 - button.style.margin = 0 - button.style.border = 'none' - button.style.cursor = 'pointer' - button.style.minWidth = '25px' - button.style.height = '22px' - button.style.position = 'absolute' - button.style.top = '30px' - button.style.left = chart.feature.htmlCanvas.element.width - 30 + 'px' + const button = document.createElement('button') + button.style.background = 'transparent' + button.style.padding = 0 + button.style.margin = 0 + button.style.border = 'none' + button.style.cursor = 'pointer' + button.style.minWidth = '25px' + button.style.height = '22px' + button.style.position = 'absolute' + button.style.top = '30px' + button.style.left = chart.feature.htmlCanvas.element.width - 30 + 'px' - button.classList.add('vizzu-button') - button.innerHTML = ` + button.classList.add('vizzu-button') + button.innerHTML = ` ` - chart.feature.htmlCanvas.element.parentElement.appendChild(button) + chart.feature.htmlCanvas.element.parentElement.appendChild(button) - button.addEventListener('click', (event) => { - if (document.fullscreenElement) document.exitFullscreen() - else { - const controlledElement = chart.feature.htmlCanvas.element - const requestMethod = - controlledElement.requestFullScreen || - controlledElement.webkitRequestFullScreen || - controlledElement.mozRequestFullScreen || - controlledElement.msRequestFullScreen + button.addEventListener('click', (event) => { + if (document.fullscreenElement) document.exitFullscreen() + else { + const controlledElement = chart.feature.htmlCanvas.element + const requestMethod = + controlledElement.requestFullScreen || + controlledElement.webkitRequestFullScreen || + controlledElement.mozRequestFullScreen || + controlledElement.msRequestFullScreen - try { - if (requestMethod) requestMethod.call(controlledElement) - } catch (error) { - alert(`Error attempting to enable full-screen mode: ${error.message} (${error.name})`) - } - } - }) + try { + if (requestMethod) requestMethod.call(controlledElement) + } catch (error) { + alert( + `Error attempting to enable full-screen mode: ${error.message} (${error.name})` + ) + } + } + }) - return chart.animate({ - data: data_6, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - label: 'Value 2 (+)' - } - }) - } + return chart.animate({ + data: data_6, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + label: 'Value 2 (+)' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/marker_label_on_mouseon.mjs b/test/integration/test_cases/web_content/cookbook/interactive/marker_label_on_mouseon.mjs index 70e7abddf..6e34b3083 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/marker_label_on_mouseon.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/marker_label_on_mouseon.mjs @@ -2,38 +2,39 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' import { Mouse } from '../../../../utils/mouse.mjs' const testSteps = [ - (chart) => { - const labelToShow = { value: '' } + (chart) => { + const labelToShow = { value: '' } - chart.on('pointermove', (event) => { - if (event.target?.tagName === 'plot-marker') { - labelToShow.value = event.target.values['Value 5 (+/-)'] - chart.feature.rendering.update() - } else { - labelToShow.value = '' - chart.feature.rendering.update() - } - }) + chart.on('pointermove', (event) => { + if (event.target?.tagName === 'plot-marker') { + labelToShow.value = event.target.values['Value 5 (+/-)'] + chart.feature.rendering.update() + } else { + labelToShow.value = '' + chart.feature.rendering.update() + } + }) - chart.on('plot-marker-label-draw', (event) => { - if (event.target.parent.values['Value 5 (+/-)'] !== labelToShow.value) event.preventDefault() - }) + chart.on('plot-marker-label-draw', (event) => { + if (event.target.parent.values['Value 5 (+/-)'] !== labelToShow.value) + event.preventDefault() + }) - return chart.animate({ - data, - config: { - x: 'Year', - y: 'Value 5 (+/-)', - label: 'Value 5 (+/-)', - title: 'Label shown on mouse-on' - } - }) - }, + return chart.animate({ + data, + config: { + x: 'Year', + y: 'Value 5 (+/-)', + label: 'Value 5 (+/-)', + title: 'Label shown on mouse-on' + } + }) + }, - (chart) => { - new Mouse(chart).move(477, 178) - return chart.animate({}, 1) - } + (chart) => { + new Mouse(chart).move(477, 178) + return chart.animate({}, 1) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/mouse_scroll.mjs b/test/integration/test_cases/web_content/cookbook/interactive/mouse_scroll.mjs index 887bd953c..0b8fd4f7a 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/mouse_scroll.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/mouse_scroll.mjs @@ -2,118 +2,118 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' import { Mouse } from '../../../../utils/mouse.mjs' const testSteps = [ - (chart) => { - class Scroller { - constructor(min, max) { - this.min = min - this.max = max - this.window = max - min - this.pos = null - } + (chart) => { + class Scroller { + constructor(min, max) { + this.min = min + this.max = max + this.window = max - min + this.pos = null + } - drag(pos) { - this.pos = pos - } + drag(pos) { + this.pos = pos + } - release() { - this.pos = null - } + release() { + this.pos = null + } - track(pos) { - if (this.pos) { - const delta = (this.pos - pos) * this.window - this.min += delta - this.max += delta - this.pos = pos - } - } - } + track(pos) { + if (this.pos) { + const delta = (this.pos - pos) * this.window + this.min += delta + this.max += delta + this.pos = pos + } + } + } - const scroller = new Scroller(0.5, 5.5) + const scroller = new Scroller(0.5, 5.5) - class Throttle { - constructor() { - this.finished = true - this.next = null - } + class Throttle { + constructor() { + this.finished = true + this.next = null + } - call(func) { - if (!this.finished) { - this.next = func - } else { - this.finished = false - func().then(() => { - this.finished = true - if (this.next !== null) { - const f = this.next - this.next = null - this.call(f) - } - }) - } - } - } + call(func) { + if (!this.finished) { + this.next = func + } else { + this.finished = false + func().then(() => { + this.finished = true + if (this.next !== null) { + const f = this.next + this.next = null + this.call(f) + } + }) + } + } + } - const throttle = new Throttle() + const throttle = new Throttle() - chart.on('click', (event) => { - event.preventDefault() - }) + chart.on('click', (event) => { + event.preventDefault() + }) - chart.on('pointerdown', (event) => { - const coordSystem = chart.feature.coordSystem - const rel = coordSystem.toRelative(event.detail.position) - scroller.drag(rel.x) - event.preventDefault() - }) + chart.on('pointerdown', (event) => { + const coordSystem = chart.feature.coordSystem + const rel = coordSystem.toRelative(event.detail.position) + scroller.drag(rel.x) + event.preventDefault() + }) - chart.on('pointerup', (event) => { - scroller.release() - event.preventDefault() - }) + chart.on('pointerup', (event) => { + scroller.release() + event.preventDefault() + }) - chart.on('pointermove', (event) => { - const coordSystem = chart.feature.coordSystem - const rel = coordSystem.toRelative(event.detail.position) - scroller.track(rel.x) - throttle.call(() => - chart.animate( - { - x: { - range: { - min: scroller.min, - max: scroller.max - } - } - }, - { duration: '50ms', easing: 'linear' } - ) - ) - event.preventDefault() - }) + chart.on('pointermove', (event) => { + const coordSystem = chart.feature.coordSystem + const rel = coordSystem.toRelative(event.detail.position) + scroller.track(rel.x) + throttle.call(() => + chart.animate( + { + x: { + range: { + min: scroller.min, + max: scroller.max + } + } + }, + { duration: '50ms', easing: 'linear' } + ) + ) + event.preventDefault() + }) - return chart.animate( - { - data, - config: { - x: { - set: 'Year', - range: { - min: scroller.min, - max: scroller.max - } - }, - y: 'Value 5 (+/-)', - title: 'Mouse Scroll', - geometry: 'line' - } - }, - 0 - ) - }, - (chart) => { - return new Mouse(chart).down(250, 150).move(150, 150).up(150, 150).expectedAnimation() - } + return chart.animate( + { + data, + config: { + x: { + set: 'Year', + range: { + min: scroller.min, + max: scroller.max + } + }, + y: 'Value 5 (+/-)', + title: 'Mouse Scroll', + geometry: 'line' + } + }, + 0 + ) + }, + (chart) => { + return new Mouse(chart).down(250, 150).move(150, 150).up(150, 150).expectedAnimation() + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/mouse_wheel_zoom.mjs b/test/integration/test_cases/web_content/cookbook/interactive/mouse_wheel_zoom.mjs index b153b791f..610ebdc3b 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/mouse_wheel_zoom.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/mouse_wheel_zoom.mjs @@ -2,105 +2,105 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' import { Mouse } from '../../../../utils/mouse.mjs' const testSteps = [ - (chart) => { - class Zoomer { - constructor(min, max) { - this.min = min - this.max = max - this.finalMin = min - this.finalMax = max - this.pos = null - } + (chart) => { + class Zoomer { + constructor(min, max) { + this.min = min + this.max = max + this.finalMin = min + this.finalMax = max + this.pos = null + } - trackPos(pos) { - this.pos = pos - } + trackPos(pos) { + this.pos = pos + } - zoom(factor) { - const ref = this.min + this.pos * (this.max - this.min) - this.min = ref - (1 + factor) * (ref - this.min) - this.max = ref + (1 + factor) * (this.max - ref) - if (this.min < this.finalMin) this.min = this.finalMin - if (this.max > this.finalMax) this.max = this.finalMax - } - } + zoom(factor) { + const ref = this.min + this.pos * (this.max - this.min) + this.min = ref - (1 + factor) * (ref - this.min) + this.max = ref + (1 + factor) * (this.max - ref) + if (this.min < this.finalMin) this.min = this.finalMin + if (this.max > this.finalMax) this.max = this.finalMax + } + } - const zoomer = new Zoomer(0.5, 20.5) + const zoomer = new Zoomer(0.5, 20.5) - class Throttle { - constructor() { - this.finished = true - this.next = null - } + class Throttle { + constructor() { + this.finished = true + this.next = null + } - call(func) { - if (!this.finished) { - this.next = func - } else { - this.finished = false - func().then(() => { - this.finished = true - if (this.next !== null) { - const f = this.next - this.next = null - this.call(f) - } - }) - } - } - } + call(func) { + if (!this.finished) { + this.next = func + } else { + this.finished = false + func().then(() => { + this.finished = true + if (this.next !== null) { + const f = this.next + this.next = null + this.call(f) + } + }) + } + } + } - const throttle = new Throttle() + const throttle = new Throttle() - chart.feature.htmlCanvas.element.addEventListener('wheel', (event) => { - event.preventDefault() - }) + chart.feature.htmlCanvas.element.addEventListener('wheel', (event) => { + event.preventDefault() + }) - chart.on('wheel', (event) => { - zoomer.zoom(-event.detail.delta / 200) - throttle.call(() => - chart.animate( - { - x: { - range: { - min: zoomer.min, - max: zoomer.max - } - } - }, - { duration: '50ms', easing: 'linear' } - ) - ) - }) + chart.on('wheel', (event) => { + zoomer.zoom(-event.detail.delta / 200) + throttle.call(() => + chart.animate( + { + x: { + range: { + min: zoomer.min, + max: zoomer.max + } + } + }, + { duration: '50ms', easing: 'linear' } + ) + ) + }) - chart.on('pointermove', (event) => { - const coordSystem = chart.feature.coordSystem - const rel = coordSystem.toRelative(event.detail.position) - zoomer.trackPos(rel.x) - }) + chart.on('pointermove', (event) => { + const coordSystem = chart.feature.coordSystem + const rel = coordSystem.toRelative(event.detail.position) + zoomer.trackPos(rel.x) + }) - return chart.animate( - { - data, - config: { - x: { - set: 'Year', - range: { - min: zoomer.min, - max: zoomer.max - } - }, - y: 'Value 5 (+/-)', - title: 'Mouse Wheel Zoom', - geometry: 'line' - } - }, - 0 - ) - }, - (chart) => { - return new Mouse(chart).move(250, 150).wheel(50).expectedAnimation() - } + return chart.animate( + { + data, + config: { + x: { + set: 'Year', + range: { + min: zoomer.min, + max: zoomer.max + } + }, + y: 'Value 5 (+/-)', + title: 'Mouse Wheel Zoom', + geometry: 'line' + } + }, + 0 + ) + }, + (chart) => { + return new Mouse(chart).move(250, 150).wheel(50).expectedAnimation() + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/range_slider_zoom.mjs b/test/integration/test_cases/web_content/cookbook/interactive/range_slider_zoom.mjs index 6ad42bea0..7e4bff97a 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/range_slider_zoom.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/range_slider_zoom.mjs @@ -2,78 +2,78 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' import { LastAnimation } from '../../../../utils/lastanimation.mjs' const testSteps = [ - (chart) => { - chart.feature(new LastAnimation()) + (chart) => { + chart.feature(new LastAnimation()) - const rangeMax = 21 - const rangeMin = 2 - let range = rangeMax - let finished = true + const rangeMax = 21 + const rangeMin = 2 + let range = rangeMax + let finished = true - const range2Value = (x) => (1 - (x - rangeMin) / (rangeMax - rangeMin)) * 100 - const value2Range = (v) => rangeMin + (1 - v / 100) * (rangeMax - rangeMin) + const range2Value = (x) => (1 - (x - rangeMin) / (rangeMax - rangeMin)) * 100 + const value2Range = (v) => rangeMin + (1 - v / 100) * (rangeMax - rangeMin) - const input = document.createElement('input') - input.id = 'slider' - input.type = 'range' - input.value = range2Value(range) - input.style = 'width: 200px; position: absolute; top: 540px; left: 30px;' - chart.feature.htmlCanvas.element.parentElement.appendChild(input) + const input = document.createElement('input') + input.id = 'slider' + input.type = 'range' + input.value = range2Value(range) + input.style = 'width: 200px; position: absolute; top: 540px; left: 30px;' + chart.feature.htmlCanvas.element.parentElement.appendChild(input) - function update() { - if (!finished) return - finished = false - const rangeTarget = range - chart - .animate( - { - x: { - range: { - min: rangeMax - rangeTarget + 0.5, - max: rangeMax - 0.5 - } - } - }, - { duration: '50ms', easing: 'linear' } - ) - .then((chart) => { - finished = true - if (rangeTarget !== range) update() - return chart - }) - } + function update() { + if (!finished) return + finished = false + const rangeTarget = range + chart + .animate( + { + x: { + range: { + min: rangeMax - rangeTarget + 0.5, + max: rangeMax - 0.5 + } + } + }, + { duration: '50ms', easing: 'linear' } + ) + .then((chart) => { + finished = true + if (rangeTarget !== range) update() + return chart + }) + } - input.oninput = (e) => { - range = value2Range(e.target.value) - update() - } + input.oninput = (e) => { + range = value2Range(e.target.value) + update() + } - return chart.animate( - { - data, - config: { - x: { - set: 'Year', - range: { - min: 0.5, - max: rangeMax - 0.5 - } - }, - y: 'Value 5 (+/-)', - title: 'Slider Zoom', - geometry: 'line' - } - }, - 0 - ) - }, - (chart) => { - const input = document.getElementById('slider') - input.value = '20' - const event = new Event('input') - input.dispatchEvent(event) - return chart.feature.lastAnimation.last() - } + return chart.animate( + { + data, + config: { + x: { + set: 'Year', + range: { + min: 0.5, + max: rangeMax - 0.5 + } + }, + y: 'Value 5 (+/-)', + title: 'Slider Zoom', + geometry: 'line' + } + }, + 0 + ) + }, + (chart) => { + const input = document.getElementById('slider') + input.value = '20' + const event = new Event('input') + input.dispatchEvent(event) + return chart.feature.lastAnimation.last() + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/seeker_slider.mjs b/test/integration/test_cases/web_content/cookbook/interactive/seeker_slider.mjs index 860a7174d..805ff8aa5 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/seeker_slider.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/seeker_slider.mjs @@ -1,45 +1,45 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - label: 'Value 2 (+)' - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + label: 'Value 2 (+)' + } + }), - (chart) => { - const input = document.createElement('input') - input.type = 'range' - input.min = 0 - input.max = 1000 - input.style = 'width: 500px; position: absolute; top: 540px; left: 30px;' - chart.feature.htmlCanvas.element.parentElement.appendChild(input) + (chart) => { + const input = document.createElement('input') + input.type = 'range' + input.min = 0 + input.max = 1000 + input.style = 'width: 500px; position: absolute; top: 540px; left: 30px;' + chart.feature.htmlCanvas.element.parentElement.appendChild(input) - const animation = chart.animate({ - x: 'Country', - y: 'Value 2 (+)', - color: 'Country', - label: 'Value 2 (+)' - }) + const animation = chart.animate({ + x: 'Country', + y: 'Value 2 (+)', + color: 'Country', + label: 'Value 2 (+)' + }) - input.oninput = (e) => { - animation.activated.then((control) => { - control.pause() - control.seek((100 * e.target.value) / 1000 + '%') - }) - } + input.oninput = (e) => { + animation.activated.then((control) => { + control.pause() + control.seek((100 * e.target.value) / 1000 + '%') + }) + } - chart.on('update', (ev) => { - input.value = ev.detail.progress * 1000 - }) + chart.on('update', (ev) => { + input.value = ev.detail.progress * 1000 + }) - return animation - } + return animation + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs b/test/integration/test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs index a4f365c43..173e02220 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs @@ -1,68 +1,69 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate( - { - data: data_6, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - label: 'Value 2 (+)' - } - }, - 0 - ), + (chart) => + chart.animate( + { + data: data_6, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + label: 'Value 2 (+)' + } + }, + 0 + ), - (chart) => { - let lastPointerX = null - let progress = null + (chart) => { + let lastPointerX = null + let progress = null - const animation = chart.animate({ - x: 'Country', - y: 'Value 2 (+)', - color: 'Country', - label: 'Value 2 (+)' - }) + const animation = chart.animate({ + x: 'Country', + y: 'Value 2 (+)', + color: 'Country', + label: 'Value 2 (+)' + }) - const seek = (percent) => { - animation.activated.then((control) => { - control.pause() - control.seek(percent + '%') - }) - } + const seek = (percent) => { + animation.activated.then((control) => { + control.pause() + control.seek(percent + '%') + }) + } - chart.on('update', (ev) => { - progress = ev.detail.progress - }) + chart.on('update', (ev) => { + progress = ev.detail.progress + }) - chart.on('click', (event) => { - event.preventDefault() - }) + chart.on('click', (event) => { + event.preventDefault() + }) - chart.on('pointerdown', (event) => { - lastPointerX = event.detail.position.x - event.preventDefault() - }) + chart.on('pointerdown', (event) => { + lastPointerX = event.detail.position.x + event.preventDefault() + }) - chart.on('pointerup', (event) => { - lastPointerX = null - event.preventDefault() - }) + chart.on('pointerup', (event) => { + lastPointerX = null + event.preventDefault() + }) - chart.on('pointermove', (event) => { - if (lastPointerX) { - const pointerX = event.detail.position.x - const diff = (2 * (pointerX - lastPointerX)) / chart.feature.htmlCanvas.element.width - seek((progress + diff) * 100) - lastPointerX = pointerX - } - event.preventDefault() - }) + chart.on('pointermove', (event) => { + if (lastPointerX) { + const pointerX = event.detail.position.x + const diff = + (2 * (pointerX - lastPointerX)) / chart.feature.htmlCanvas.element.width + seek((progress + diff) * 100) + lastPointerX = pointerX + } + event.preventDefault() + }) - return animation - } + return animation + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/interactive/window_zoom.mjs b/test/integration/test_cases/web_content/cookbook/interactive/window_zoom.mjs index 7eab8ba3b..e71eeabae 100644 --- a/test/integration/test_cases/web_content/cookbook/interactive/window_zoom.mjs +++ b/test/integration/test_cases/web_content/cookbook/interactive/window_zoom.mjs @@ -2,148 +2,148 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' import { Mouse } from '../../../../utils/mouse.mjs' const testSteps = [ - (chart) => { - class Throttle { - constructor() { - this.finished = true - this.next = null - } - - call(func) { - if (!this.finished) { - this.next = func - } else { - this.finished = false - func().then(() => { - this.finished = true - if (this.next !== null) { - const f = this.next - this.next = null - this.call(f) - } - }) - } - } - } - - class Window { - constructor(chart, xmin, xmax, ymin, ymax) { - this.chart = chart - - this.chart.on('pointerdown', (event) => { - this.down(event.detail) - }) - this.chart.on('pointerup', (event) => { - this.up(event.detail) - }) - this.chart.on('pointermove', (event) => { - this.move(event.detail) - }) - this.chart.on('draw-complete', (event) => { - this.render(event.renderingContext) - }) - - this.x = { min: xmin, max: xmax } - this.y = { min: ymin, max: ymax } - this.xInit = { ...this.x } - this.yInit = { ...this.y } - this.throttle = new Throttle() - - this.reset() - } - - zoomOut() { - this.x = { ...this.xInit } - this.y = { ...this.yInit } - this.update() - this.reset() - } - - reset() { - this.data0 = null - this.data1 = null - } - - isActive() { - return this.data1 !== null - } - - down(data) { - this.data0 = data - } - - move(data) { - if (this.data0 !== null) this.data1 = data - } - - up() { - if (!this.isActive()) this.zoomOut() - else this.applyZoom() - this.reset() - } - - posAt(range, factor) { - return range.min + factor * (range.max - range.min) - } - - applyZoomOnAxis(range, p0, p1) { - const r = { ...range } - range.min = this.posAt(r, Math.min(p0, p1)) - range.max = this.posAt(r, Math.max(p0, p1)) - } - - applyZoom() { - const coordSystem = chart.feature.coordSystem - const coords0 = coordSystem.toRelative(this.data0.position) - const coords1 = coordSystem.toRelative(this.data1.position) - this.applyZoomOnAxis(this.x, coords0.x, coords1.x) - this.applyZoomOnAxis(this.y, coords0.y, coords1.y) - this.update() - } - - update() { - this.throttle.call(() => - this.chart.animate( - { x: { range: this.x }, y: { range: this.y } }, - { duration: '200ms', easing: 'linear' } - ) - ) - } - - render(ctx) { - if (this.isActive()) { - ctx.lineWidth = 1 - ctx.strokeStyle = '#888888' - ctx.beginPath() - ctx.rect( - this.data0.position.x, - this.data0.position.y, - this.data1.position.x - this.data0.position.x, - this.data1.position.y - this.data0.position.y - ) - ctx.stroke() - } - } - } - - const win = new Window(chart, 0.5, 20.5, -500, 500) - - return chart.animate( - { - data, - config: { - x: { set: 'Year', range: win.x }, - y: { set: 'Value 5 (+/-)', range: win.y }, - title: 'Window Zoom', - geometry: 'line' - } - }, - 0 - ) - }, - (chart) => { - return new Mouse(chart).down(100, 100).move(300, 250).up(300, 250).expectedAnimation() - } + (chart) => { + class Throttle { + constructor() { + this.finished = true + this.next = null + } + + call(func) { + if (!this.finished) { + this.next = func + } else { + this.finished = false + func().then(() => { + this.finished = true + if (this.next !== null) { + const f = this.next + this.next = null + this.call(f) + } + }) + } + } + } + + class Window { + constructor(chart, xmin, xmax, ymin, ymax) { + this.chart = chart + + this.chart.on('pointerdown', (event) => { + this.down(event.detail) + }) + this.chart.on('pointerup', (event) => { + this.up(event.detail) + }) + this.chart.on('pointermove', (event) => { + this.move(event.detail) + }) + this.chart.on('draw-complete', (event) => { + this.render(event.renderingContext) + }) + + this.x = { min: xmin, max: xmax } + this.y = { min: ymin, max: ymax } + this.xInit = { ...this.x } + this.yInit = { ...this.y } + this.throttle = new Throttle() + + this.reset() + } + + zoomOut() { + this.x = { ...this.xInit } + this.y = { ...this.yInit } + this.update() + this.reset() + } + + reset() { + this.data0 = null + this.data1 = null + } + + isActive() { + return this.data1 !== null + } + + down(data) { + this.data0 = data + } + + move(data) { + if (this.data0 !== null) this.data1 = data + } + + up() { + if (!this.isActive()) this.zoomOut() + else this.applyZoom() + this.reset() + } + + posAt(range, factor) { + return range.min + factor * (range.max - range.min) + } + + applyZoomOnAxis(range, p0, p1) { + const r = { ...range } + range.min = this.posAt(r, Math.min(p0, p1)) + range.max = this.posAt(r, Math.max(p0, p1)) + } + + applyZoom() { + const coordSystem = chart.feature.coordSystem + const coords0 = coordSystem.toRelative(this.data0.position) + const coords1 = coordSystem.toRelative(this.data1.position) + this.applyZoomOnAxis(this.x, coords0.x, coords1.x) + this.applyZoomOnAxis(this.y, coords0.y, coords1.y) + this.update() + } + + update() { + this.throttle.call(() => + this.chart.animate( + { x: { range: this.x }, y: { range: this.y } }, + { duration: '200ms', easing: 'linear' } + ) + ) + } + + render(ctx) { + if (this.isActive()) { + ctx.lineWidth = 1 + ctx.strokeStyle = '#888888' + ctx.beginPath() + ctx.rect( + this.data0.position.x, + this.data0.position.y, + this.data1.position.x - this.data0.position.x, + this.data1.position.y - this.data0.position.y + ) + ctx.stroke() + } + } + } + + const win = new Window(chart, 0.5, 20.5, -500, 500) + + return chart.animate( + { + data, + config: { + x: { set: 'Year', range: win.x }, + y: { set: 'Value 5 (+/-)', range: win.y }, + title: 'Window Zoom', + geometry: 'line' + } + }, + 0 + ) + }, + (chart) => { + return new Mouse(chart).down(100, 100).move(300, 250).up(300, 250).expectedAnimation() + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/3d_chart.mjs b/test/integration/test_cases/web_content/cookbook/rendering/3d_chart.mjs index f85a8246c..a0d5822a7 100644 --- a/test/integration/test_cases/web_content/cookbook/rendering/3d_chart.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/3d_chart.mjs @@ -1,113 +1,113 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') - const THREE = await import('https://unpkg.com/three/build/three.module.js') + async (chart) => { + await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') + const THREE = await import('https://unpkg.com/three/build/three.module.js') - const toCanvasRect = (rect) => { - const coordSystem = chart.feature.coordSystem - const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) - const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) - return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } - } + const toCanvasRect = (rect) => { + const coordSystem = chart.feature.coordSystem + const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) + const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) + return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } + } - const renderer = new THREE.WebGLRenderer({ - antialias: true - }) - renderer.shadowMap.enabled = true - renderer.setClearColor(0xffffff, 1) - let scene = new THREE.Scene() + const renderer = new THREE.WebGLRenderer({ + antialias: true + }) + renderer.shadowMap.enabled = true + renderer.setClearColor(0xffffff, 1) + let scene = new THREE.Scene() - const width = chart.feature.htmlCanvas.element.width - const height = chart.feature.htmlCanvas.element.height + const width = chart.feature.htmlCanvas.element.width + const height = chart.feature.htmlCanvas.element.height - renderer.setSize(width, height) - renderer.domElement.style = ` + renderer.setSize(width, height) + renderer.domElement.style = ` position: absolute; top: ${chart.feature.htmlCanvas.element.offsetTop}px; left: ${chart.feature.htmlCanvas.element.offsetLeft}px; visibility: hidden; ` - document.body.appendChild(renderer.domElement) + document.body.appendChild(renderer.domElement) - const camera = new THREE.PerspectiveCamera(40, width / height, 0.1, 1000) - camera.position.set(0.8, 1.2, 1.5) - camera.lookAt(new THREE.Vector3(0.5, 0.5, 0)) + const camera = new THREE.PerspectiveCamera(40, width / height, 0.1, 1000) + camera.position.set(0.8, 1.2, 1.5) + camera.lookAt(new THREE.Vector3(0.5, 0.5, 0)) - const light0 = new THREE.AmbientLight(0x999999) - const light = new THREE.PointLight(0xffffff, 5, 100) - light.position.set(1.1, 1.1, 1.1) - light.castShadow = true + const light0 = new THREE.AmbientLight(0x999999) + const light = new THREE.PointLight(0xffffff, 5, 100) + light.position.set(1.1, 1.1, 1.1) + light.castShadow = true - chart.on('draw-begin', (event) => { - scene = new THREE.Scene() - scene.add(light0) - scene.add(light) + chart.on('draw-begin', (event) => { + scene = new THREE.Scene() + scene.add(light0) + scene.add(light) - const geometry = new THREE.BoxGeometry(1, 0.01, 0.3) - geometry.translate(0.5, 0, -0.1) - const material = new THREE.MeshLambertMaterial({ color: '#e0e0f0' }) - const cube = new THREE.Mesh(geometry, material) - cube.receiveShadow = true - scene.add(cube) - }) + const geometry = new THREE.BoxGeometry(1, 0.01, 0.3) + geometry.translate(0.5, 0, -0.1) + const material = new THREE.MeshLambertMaterial({ color: '#e0e0f0' }) + const cube = new THREE.Mesh(geometry, material) + cube.receiveShadow = true + scene.add(cube) + }) - chart.on('plot-marker-draw', (event) => { - const ctx = event.renderingContext - const rect = toCanvasRect(event.detail.rect) - const color = tinycolor(ctx.fillStyle) - const opacity = color.getAlpha() - color.setAlpha(1) - const geometry = new THREE.BoxGeometry(rect.size.x / width, rect.size.y / height, 0.1) - geometry.translate( - (rect.pos.x + rect.size.x / 2) / width, - 1 - (rect.size.y / 2 + rect.pos.y) / height, - -0.05 - ) - const material = new THREE.MeshPhongMaterial({ - color: color.toRgbString() - }) - material.transparent = true - material.opacity = opacity - const cube = new THREE.Mesh(geometry, material) - cube.castShadow = true - scene.add(cube) - }) + chart.on('plot-marker-draw', (event) => { + const ctx = event.renderingContext + const rect = toCanvasRect(event.detail.rect) + const color = tinycolor(ctx.fillStyle) + const opacity = color.getAlpha() + color.setAlpha(1) + const geometry = new THREE.BoxGeometry(rect.size.x / width, rect.size.y / height, 0.1) + geometry.translate( + (rect.pos.x + rect.size.x / 2) / width, + 1 - (rect.size.y / 2 + rect.pos.y) / height, + -0.05 + ) + const material = new THREE.MeshPhongMaterial({ + color: color.toRgbString() + }) + material.transparent = true + material.opacity = opacity + const cube = new THREE.Mesh(geometry, material) + cube.castShadow = true + scene.add(cube) + }) - chart.on('draw-complete', (event) => { - renderer.render(scene, camera) - event.renderingContext.drawImage(renderer.domElement, 0, 0) - }) + chart.on('draw-complete', (event) => { + renderer.render(scene, camera) + event.renderingContext.drawImage(renderer.domElement, 0, 0) + }) - return chart.animate( - { - data: data_6, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - legend: null, - title: null - }, - style: { - plot: { - paddingTop: 0, - paddingLeft: 0, - paddingBottom: 0, - paddingRight: 0 - } - } - }, - 0 - ) - }, + return chart.animate( + { + data: data_6, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + legend: null, + title: null + }, + style: { + plot: { + paddingTop: 0, + paddingLeft: 0, + paddingBottom: 0, + paddingRight: 0 + } + } + }, + 0 + ) + }, - (chart) => - chart.animate({ - x: 'Country', - color: 'Country' - }) + (chart) => + chart.animate({ + x: 'Country', + color: 'Country' + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/background_image.mjs b/test/integration/test_cases/web_content/cookbook/rendering/background_image.mjs index 9f71bc487..1653ee947 100644 --- a/test/integration/test_cases/web_content/cookbook/rendering/background_image.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/background_image.mjs @@ -1,44 +1,44 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - function urlToImage(url) { - return new Promise((resolve) => { - const image = new Image() - image.addEventListener('load', () => { - resolve(image) - }) - image.src = url - }) - } + async (chart) => { + function urlToImage(url) { + return new Promise((resolve) => { + const image = new Image() + image.addEventListener('load', () => { + resolve(image) + }) + image.src = url + }) + } - const bgImage = await urlToImage( - 'data:image/gif;base64,R0lGODlhAwACAPIAAJLf6q/i7M/r8un0+PT6+/n8/QAAAAAAACH5BAQAAAAALAAAAAADAAIAAAMEWBMkkAA7' - ) + const bgImage = await urlToImage( + 'data:image/gif;base64,R0lGODlhAwACAPIAAJLf6q/i7M/r8un0+PT6+/n8/QAAAAAAACH5BAQAAAAALAAAAAADAAIAAAMEWBMkkAA7' + ) - chart.on('background-draw', (event) => { - event.renderingContext.drawImage( - bgImage, - 0, - 0, - event.detail.rect.size.x, - event.detail.rect.size.y - ) - event.preventDefault() - }) + chart.on('background-draw', (event) => { + event.renderingContext.drawImage( + bgImage, + 0, + 0, + event.detail.rect.size.x, + event.detail.rect.size.y + ) + event.preventDefault() + }) - return chart - }, - (chart) => { - return chart.animate({ - data, - config: { - x: 'Joy factors', - y: { set: 'Value 2 (+)', interlacing: false }, - title: 'Background image' - } - }) - } + return chart + }, + (chart) => { + return chart.animate({ + data, + config: { + x: 'Joy factors', + y: { set: 'Value 2 (+)', interlacing: false }, + title: 'Background image' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/custom_linetype.mjs b/test/integration/test_cases/web_content/cookbook/rendering/custom_linetype.mjs index 215abd065..97086f9bf 100644 --- a/test/integration/test_cases/web_content/cookbook/rendering/custom_linetype.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/custom_linetype.mjs @@ -1,74 +1,74 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') - return chart - }, - (chart) => { - function setDash(ctx) { - const dashes = [ - [3, 17], - [6, 14], - [9, 11], - [12, 8], - [15, 5] - ] - - const color = ctx.fillStyle - if (!tinycolor(color).isValid()) return - - const series = tinycolor(color).getBrightness() - - ctx.setLineDash(dashes[series]) - - ctx.strokeStyle = '#666666' - } - - chart.on('legend-marker-draw', (event) => { - const ctx = event.renderingContext - - setDash(ctx) - - const rect = event.data.rect - - ctx.beginPath() - ctx.moveTo(rect.pos.x, rect.pos.y + rect.size.y / 2) - ctx.lineTo(rect.pos.x + rect.size.x, rect.pos.y + rect.size.y / 2) - ctx.stroke() - - event.preventDefault() - }) - - chart.on('plot-marker-draw', (event) => { - const ctx = event.renderingContext - - setDash(ctx) - - const line = event.data.line - - ctx.beginPath() - ctx.moveTo(line.begin.x, line.begin.y) - ctx.lineTo(line.end.x, line.end.y) - ctx.stroke() - - event.preventDefault() - }) - - return chart.animate({ - data: data_4, - config: { - x: 'Year', - y: 'Value 5 (+/-)', - color: 'Country', - geometry: 'line', - title: 'Custom line types' - }, - style: { - 'plot.marker.colorPalette': '#000000 #010101 #020202 #030303 #040404' - } - }) - } + async (chart) => { + await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') + return chart + }, + (chart) => { + function setDash(ctx) { + const dashes = [ + [3, 17], + [6, 14], + [9, 11], + [12, 8], + [15, 5] + ] + + const color = ctx.fillStyle + if (!tinycolor(color).isValid()) return + + const series = tinycolor(color).getBrightness() + + ctx.setLineDash(dashes[series]) + + ctx.strokeStyle = '#666666' + } + + chart.on('legend-marker-draw', (event) => { + const ctx = event.renderingContext + + setDash(ctx) + + const rect = event.data.rect + + ctx.beginPath() + ctx.moveTo(rect.pos.x, rect.pos.y + rect.size.y / 2) + ctx.lineTo(rect.pos.x + rect.size.x, rect.pos.y + rect.size.y / 2) + ctx.stroke() + + event.preventDefault() + }) + + chart.on('plot-marker-draw', (event) => { + const ctx = event.renderingContext + + setDash(ctx) + + const line = event.data.line + + ctx.beginPath() + ctx.moveTo(line.begin.x, line.begin.y) + ctx.lineTo(line.end.x, line.end.y) + ctx.stroke() + + event.preventDefault() + }) + + return chart.animate({ + data: data_4, + config: { + x: 'Year', + y: 'Value 5 (+/-)', + color: 'Country', + geometry: 'line', + title: 'Custom line types' + }, + style: { + 'plot.marker.colorPalette': '#000000 #010101 #020202 #030303 #040404' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/custom_markers.mjs b/test/integration/test_cases/web_content/cookbook/rendering/custom_markers.mjs index df5c62d40..26973698e 100644 --- a/test/integration/test_cases/web_content/cookbook/rendering/custom_markers.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/custom_markers.mjs @@ -1,45 +1,45 @@ import { data_14 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - function hearth(ctx, x, y, w, h) { - ctx.save() - ctx.translate(x, y) - ctx.scale(w / 69, h / 69) - ctx.beginPath() - ctx.moveTo(31, 17) - ctx.bezierCurveTo(52, 0, 69, 35, 34, 62) - ctx.bezierCurveTo(0, 46, 8, 2, 31, 17) - ctx.fill() - ctx.restore() - } + (chart) => { + function hearth(ctx, x, y, w, h) { + ctx.save() + ctx.translate(x, y) + ctx.scale(w / 69, h / 69) + ctx.beginPath() + ctx.moveTo(31, 17) + ctx.bezierCurveTo(52, 0, 69, 35, 34, 62) + ctx.bezierCurveTo(0, 46, 8, 2, 31, 17) + ctx.fill() + ctx.restore() + } - const toCanvasRect = (rect) => { - const coordSystem = chart.feature.coordSystem - const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) - const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) - return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } - } + const toCanvasRect = (rect) => { + const coordSystem = chart.feature.coordSystem + const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) + const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) + return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } + } - chart.on('plot-marker-draw', (event) => { - const ctx = event.renderingContext - const rect = toCanvasRect(event.detail.rect) - hearth(ctx, rect.pos.x, rect.pos.y, rect.size.x, rect.size.y) - event.preventDefault() - }) + chart.on('plot-marker-draw', (event) => { + const ctx = event.renderingContext + const rect = toCanvasRect(event.detail.rect) + hearth(ctx, rect.pos.x, rect.pos.y, rect.size.x, rect.size.y) + event.preventDefault() + }) - return chart.animate({ - data: data_14, - config: { - x: 'Value 6 (+/-)', - y: 'Value 5 (+/-)', - color: 'Country', - size: 'Value 4 (+/-)', - geometry: 'circle', - title: 'Custom markers' - } - }) - } + return chart.animate({ + data: data_14, + config: { + x: 'Value 6 (+/-)', + y: 'Value 5 (+/-)', + color: 'Country', + size: 'Value 4 (+/-)', + geometry: 'circle', + title: 'Custom markers' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/dropshadow_on_marker.mjs b/test/integration/test_cases/web_content/cookbook/rendering/dropshadow_on_marker.mjs index b0fce4922..0035dd65a 100755 --- a/test/integration/test_cases/web_content/cookbook/rendering/dropshadow_on_marker.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/dropshadow_on_marker.mjs @@ -2,52 +2,52 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' import MarkerDropshadow from '../../../../utils/vizzu-markerdropshadow.mjs' const testSteps = [ - async (chart) => { - await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') - return chart - }, + async (chart) => { + await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') + return chart + }, - (chart) => { - chart.feature(new MarkerDropshadow()) + (chart) => { + chart.feature(new MarkerDropshadow()) - return chart.animate({ - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - label: 'Value 2 (+)', - title: 'Drop-shadow on the markers' - }, - style: { - plot: { - marker: { - shadowColor: '#60000060', - shadowBlur: 9, - shadowOffsetX: 3, - shadowOffsetY: 3 - } - } - } - }) - }, - (chart) => - chart.animate({ - data, - config: { - title: 'Smaller drop-shadow on the markers' - }, - style: { - plot: { - marker: { - shadowColor: '#00006060', - shadowBlur: 5, - shadowOffsetX: -2, - shadowOffsetY: 2 - } - } - } - }) + return chart.animate({ + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + label: 'Value 2 (+)', + title: 'Drop-shadow on the markers' + }, + style: { + plot: { + marker: { + shadowColor: '#60000060', + shadowBlur: 9, + shadowOffsetX: 3, + shadowOffsetY: 3 + } + } + } + }) + }, + (chart) => + chart.animate({ + data, + config: { + title: 'Smaller drop-shadow on the markers' + }, + style: { + plot: { + marker: { + shadowColor: '#00006060', + shadowBlur: 5, + shadowOffsetX: -2, + shadowOffsetY: 2 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/gradient_on_marker.mjs b/test/integration/test_cases/web_content/cookbook/rendering/gradient_on_marker.mjs index 17a926438..b21c72a54 100755 --- a/test/integration/test_cases/web_content/cookbook/rendering/gradient_on_marker.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/gradient_on_marker.mjs @@ -1,46 +1,46 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') - return chart - }, - (chart) => { - const toCanvasRect = (rect) => { - const coordSystem = chart.feature.coordSystem - const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) - const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) - return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } - } - - chart.on('plot-marker-draw', (event) => { - const ctx = event.renderingContext - - const color = ctx.fillStyle - if (!tinycolor(color).isValid()) return - - const rect = toCanvasRect(event.detail.rect) - - const grd = ctx.createLinearGradient(0, rect.pos.y, 0, rect.pos.y + rect.size.y) - - grd.addColorStop(0, tinycolor(color).darken(30)) - grd.addColorStop(0.5, tinycolor(color).darken(20)) - grd.addColorStop(1, tinycolor(color).darken(0)) - - ctx.fillStyle = grd - ctx.strokeStyle = grd - }) - - return chart.animate({ - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - title: 'Gradient on the markers' - } - }) - } + async (chart) => { + await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') + return chart + }, + (chart) => { + const toCanvasRect = (rect) => { + const coordSystem = chart.feature.coordSystem + const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) + const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) + return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } + } + + chart.on('plot-marker-draw', (event) => { + const ctx = event.renderingContext + + const color = ctx.fillStyle + if (!tinycolor(color).isValid()) return + + const rect = toCanvasRect(event.detail.rect) + + const grd = ctx.createLinearGradient(0, rect.pos.y, 0, rect.pos.y + rect.size.y) + + grd.addColorStop(0, tinycolor(color).darken(30)) + grd.addColorStop(0.5, tinycolor(color).darken(20)) + grd.addColorStop(1, tinycolor(color).darken(0)) + + ctx.fillStyle = grd + ctx.strokeStyle = grd + }) + + return chart.animate({ + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + title: 'Gradient on the markers' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/grid_lines.mjs b/test/integration/test_cases/web_content/cookbook/rendering/grid_lines.mjs index 4c4e6e795..d1dcb2055 100644 --- a/test/integration/test_cases/web_content/cookbook/rendering/grid_lines.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/grid_lines.mjs @@ -1,59 +1,59 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') - return chart - }, - (chart) => { - const toCanvasRect = (rect) => { - const coordSystem = chart.feature.coordSystem - const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) - const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) - return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } - } - - chart.on('plot-axis-interlacing-draw', (event) => { - const ctx = event.renderingContext - const rect = toCanvasRect(event.detail.rect) - - ctx.strokeStyle = '#cccccc' - - ctx.globalAlpha = tinycolor(ctx.fillStyle).getAlpha() // support fade-in - - ctx.lineWidth = 1 - - const coordSystem = chart.feature.coordSystem - - if (coordSystem.toRelative({ x: 0, y: rect.pos.y }).y !== 1) { - ctx.beginPath() - ctx.moveTo(rect.pos.x, rect.pos.y) - ctx.lineTo(rect.pos.x + rect.size.x, rect.pos.y) - ctx.stroke() - } - - if (coordSystem.toRelative({ x: 0, y: rect.pos.y + rect.size.y }).y !== 1) { - ctx.beginPath() - ctx.moveTo(rect.pos.x, rect.pos.y + rect.size.y) - ctx.lineTo(rect.pos.x + rect.size.x, rect.pos.y + rect.size.y) - ctx.stroke() - } - - ctx.globalAlpha = 1 - - event.preventDefault() - }) - - return chart.animate({ - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - title: 'Axis grid lines' - } - }) - } + async (chart) => { + await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') + return chart + }, + (chart) => { + const toCanvasRect = (rect) => { + const coordSystem = chart.feature.coordSystem + const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) + const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) + return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } + } + + chart.on('plot-axis-interlacing-draw', (event) => { + const ctx = event.renderingContext + const rect = toCanvasRect(event.detail.rect) + + ctx.strokeStyle = '#cccccc' + + ctx.globalAlpha = tinycolor(ctx.fillStyle).getAlpha() // support fade-in + + ctx.lineWidth = 1 + + const coordSystem = chart.feature.coordSystem + + if (coordSystem.toRelative({ x: 0, y: rect.pos.y }).y !== 1) { + ctx.beginPath() + ctx.moveTo(rect.pos.x, rect.pos.y) + ctx.lineTo(rect.pos.x + rect.size.x, rect.pos.y) + ctx.stroke() + } + + if (coordSystem.toRelative({ x: 0, y: rect.pos.y + rect.size.y }).y !== 1) { + ctx.beginPath() + ctx.moveTo(rect.pos.x, rect.pos.y + rect.size.y) + ctx.lineTo(rect.pos.x + rect.size.x, rect.pos.y + rect.size.y) + ctx.stroke() + } + + ctx.globalAlpha = 1 + + event.preventDefault() + }) + + return chart.animate({ + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + title: 'Axis grid lines' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/image_axis_labels.mjs b/test/integration/test_cases/web_content/cookbook/rendering/image_axis_labels.mjs index fd10caefa..614d213aa 100644 --- a/test/integration/test_cases/web_content/cookbook/rendering/image_axis_labels.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/image_axis_labels.mjs @@ -1,61 +1,61 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') + async (chart) => { + await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') - function urlToImage(url) { - return new Promise((resolve) => { - const image = new Image() - image.addEventListener('load', () => { - resolve(image) - }) - image.src = url - }) - } + function urlToImage(url) { + return new Promise((resolve) => { + const image = new Image() + image.addEventListener('load', () => { + resolve(image) + }) + image.src = url + }) + } - const flags = { - Malta: await urlToImage( - 'data:image/gif;base64,R0lGODlhGQARAPMAAM8UK+KzudDQ0NfX1/rp6/vs7vzv8fzx8////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH+IENyZWF0ZWQgd2l0aCBlemdpZi5jb20gR0lGIG1ha2VyACH5BAQUAP8ALAAAAAAZABEAAAQ6EMkzKwog652tv1wIFIQwkB4mbkZhtunKfpUqj/Rky7l+dz3QLyi8EXer4w/XQ4qUw6AzBDVKl1VZBAA7' - ), - Lithuania: await urlToImage( - 'data:image/gif;base64,R0lGODlhGQARAPIAAAJqRIA/NcEnLcQmLaedJf25EwAAAAAAACH5BAQUAP8ALAAAAAAZABEAAAMyWLrc/jDKSau9jejNu+dAKI5kaZ5oqq5s65JBLM90PQ94ru98L/zAoHBILBqPyKRymAAAOw==' - ), - Germany: await urlToImage( - 'data:image/gif;base64,R0lGODlhGQAPAPIAAAAAAB4AAMUAAN8AAOEbAPu4AP/PAAAAACH5BAQUAP8ALAAAAAAZAA8AAAMzCLrc/jDKSasMOOvNs/hgKI7jYJ5oqq5s674tIc90bctFru987xvAoHBILBqPyKRySUwAADs=' - ), - Bulgaria: await urlToImage( - 'data:image/gif;base64,R0lGODlhGQAPAPIAAL80HdYmEtglER2JYwCVbSGif+Ly7f///yH5BAQUAP8ALAAAAAAZAA8AAAM3eLrc/jDKSas0OOvNc/lgKI4iYZ5oqq5s677tIM90bc9Aru98zwvAoHBILAaOyKRyyWw6n1BlAgA7' - ) - } + const flags = { + Malta: await urlToImage( + 'data:image/gif;base64,R0lGODlhGQARAPMAAM8UK+KzudDQ0NfX1/rp6/vs7vzv8fzx8////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH+IENyZWF0ZWQgd2l0aCBlemdpZi5jb20gR0lGIG1ha2VyACH5BAQUAP8ALAAAAAAZABEAAAQ6EMkzKwog652tv1wIFIQwkB4mbkZhtunKfpUqj/Rky7l+dz3QLyi8EXer4w/XQ4qUw6AzBDVKl1VZBAA7' + ), + Lithuania: await urlToImage( + 'data:image/gif;base64,R0lGODlhGQARAPIAAAJqRIA/NcEnLcQmLaedJf25EwAAAAAAACH5BAQUAP8ALAAAAAAZABEAAAMyWLrc/jDKSau9jejNu+dAKI5kaZ5oqq5s65JBLM90PQ94ru98L/zAoHBILBqPyKRymAAAOw==' + ), + Germany: await urlToImage( + 'data:image/gif;base64,R0lGODlhGQAPAPIAAAAAAB4AAMUAAN8AAOEbAPu4AP/PAAAAACH5BAQUAP8ALAAAAAAZAA8AAAMzCLrc/jDKSasMOOvNs/hgKI7jYJ5oqq5s674tIc90bctFru987xvAoHBILBqPyKRySUwAADs=' + ), + Bulgaria: await urlToImage( + 'data:image/gif;base64,R0lGODlhGQAPAPIAAL80HdYmEtglER2JYwCVbSGif+Ly7f///yH5BAQUAP8ALAAAAAAZAA8AAAM3eLrc/jDKSas0OOvNc/lgKI4iYZ5oqq5s677tIM90bc9Aru98zwvAoHBILAaOyKRyyWw6n1BlAgA7' + ) + } - chart.on('plot-axis-label-draw', (event) => { - if (event.target.parent.id === 'x') return - const country = event.detail.text - const rect = event.detail.rect - const ctx = event.renderingContext - ctx.save() - ctx.globalAlpha = tinycolor(ctx.fillStyle).getAlpha() // support fade-in - const tr = rect.transform - ctx.transform(tr[0][0], tr[1][0], tr[0][1], tr[1][1], tr[0][2], tr[1][2]) - ctx.drawImage(flags[country], rect.size.x - 25, 0, 20, 20) - ctx.globalAlpha = 1 - ctx.restore() - }) + chart.on('plot-axis-label-draw', (event) => { + if (event.target.parent.id === 'x') return + const country = event.detail.text + const rect = event.detail.rect + const ctx = event.renderingContext + ctx.save() + ctx.globalAlpha = tinycolor(ctx.fillStyle).getAlpha() // support fade-in + const tr = rect.transform + ctx.transform(tr[0][0], tr[1][0], tr[0][1], tr[1][1], tr[0][2], tr[1][2]) + ctx.drawImage(flags[country], rect.size.x - 25, 0, 20, 20) + ctx.globalAlpha = 1 + ctx.restore() + }) - return chart - }, - (chart) => { - return chart.animate({ - data: data_4, - config: { - x: 'Value 2 (+)', - y: 'Country', - title: 'Images in the axis labels' - }, - style: { 'plot.yAxis.label.paddingRight': 30 } // making space for the flags - }) - } + return chart + }, + (chart) => { + return chart.animate({ + data: data_4, + config: { + x: 'Value 2 (+)', + y: 'Country', + title: 'Images in the axis labels' + }, + style: { 'plot.yAxis.label.paddingRight': 30 } // making space for the flags + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/motion_blur.mjs b/test/integration/test_cases/web_content/cookbook/rendering/motion_blur.mjs index 080f0327c..34f3ac2ff 100755 --- a/test/integration/test_cases/web_content/cookbook/rendering/motion_blur.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/motion_blur.mjs @@ -1,55 +1,55 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - return chart.animate({ - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - label: 'Value 2 (+)', - title: 'Motion blur' - } - }) - }, + (chart) => { + return chart.animate({ + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + label: 'Value 2 (+)', + title: 'Motion blur' + } + }) + }, - (chart) => { - const images = [] + (chart) => { + const images = [] - function drawImages(ctx) { - ctx.drawImage(images[0], 0, 0) - ctx.globalAlpha = 0.5 - images.map((image) => ctx.drawImage(image, 0, 0)) - return images.length > 0 - } + function drawImages(ctx) { + ctx.drawImage(images[0], 0, 0) + ctx.globalAlpha = 0.5 + images.map((image) => ctx.drawImage(image, 0, 0)) + return images.length > 0 + } - function drawComplete(event) { - const ctx = event.renderingContext - const canvas = chart.feature.htmlCanvas.element - const imageData = ctx.getImageData(0, 0, canvas.clientWidth, canvas.clientHeight) - createImageBitmap(imageData).then((image) => { - images.push(image) - }) - if (images.length > 10) images.shift() - drawImages(ctx) - } + function drawComplete(event) { + const ctx = event.renderingContext + const canvas = chart.feature.htmlCanvas.element + const imageData = ctx.getImageData(0, 0, canvas.clientWidth, canvas.clientHeight) + createImageBitmap(imageData).then((image) => { + images.push(image) + }) + if (images.length > 10) images.shift() + drawImages(ctx) + } - chart.on('draw-complete', drawComplete) + chart.on('draw-complete', drawComplete) - return chart - .animate({ - coordSystem: 'polar', - y: 'Joy factors', - x: 'Value 2 (+)' - }) - .then((chart) => { - const handle = setInterval(() => { - const ctx = chart.feature.htmlCanvas.element.getContext('2d') - if (!drawImages(ctx)) clearInterval(handle) - }, 40) - }) - } + return chart + .animate({ + coordSystem: 'polar', + y: 'Joy factors', + x: 'Value 2 (+)' + }) + .then((chart) => { + const handle = setInterval(() => { + const ctx = chart.feature.htmlCanvas.element.getContext('2d') + if (!drawImages(ctx)) clearInterval(handle) + }, 40) + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/random_gradient_pattern.mjs b/test/integration/test_cases/web_content/cookbook/rendering/random_gradient_pattern.mjs index 7ab92a6c1..4d7828603 100644 --- a/test/integration/test_cases/web_content/cookbook/rendering/random_gradient_pattern.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/random_gradient_pattern.mjs @@ -1,67 +1,67 @@ import { data_14 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') - return chart - }, - (chart) => { - let seed = 1 + async (chart) => { + await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') + return chart + }, + (chart) => { + let seed = 1 - const rand = () => { - const x = Math.sin(seed++) * 10000 - return x - Math.floor(x) - } + const rand = () => { + const x = Math.sin(seed++) * 10000 + return x - Math.floor(x) + } - const toCanvasRect = (rect) => { - const coordSystem = chart.feature.coordSystem - const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) - const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) - return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } - } + const toCanvasRect = (rect) => { + const coordSystem = chart.feature.coordSystem + const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) + const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) + return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } + } - chart.on('draw-begin', (event) => { - seed = 1 - }) + chart.on('draw-begin', (event) => { + seed = 1 + }) - chart.on('plot-marker-draw', (event) => { - const ctx = event.renderingContext - const rect = toCanvasRect(event.detail.rect) + chart.on('plot-marker-draw', (event) => { + const ctx = event.renderingContext + const rect = toCanvasRect(event.detail.rect) - const color = ctx.fillStyle - if (!tinycolor(color).isValid()) return - const alpha = tinycolor(color).getAlpha() + const color = ctx.fillStyle + if (!tinycolor(color).isValid()) return + const alpha = tinycolor(color).getAlpha() - for (let x = rect.pos.x; x <= rect.pos.x + rect.size.x; x++) { - const y = rect.pos.y - const yLen = rect.size.y * ((2 + rand()) / 3) + for (let x = rect.pos.x; x <= rect.pos.x + rect.size.x; x++) { + const y = rect.pos.y + const yLen = rect.size.y * ((2 + rand()) / 3) - const grad = ctx.createLinearGradient(0, y, 0, y + yLen) - grad.addColorStop(0, tinycolor(color)) - grad.addColorStop(0.5, tinycolor(color).desaturate(25).darken(25).setAlpha(alpha)) - grad.addColorStop(1, tinycolor(color).desaturate(100).setAlpha(0)) - ctx.fillStyle = grad - ctx.fillRect(x, y, 1, yLen) - } + const grad = ctx.createLinearGradient(0, y, 0, y + yLen) + grad.addColorStop(0, tinycolor(color)) + grad.addColorStop(0.5, tinycolor(color).desaturate(25).darken(25).setAlpha(alpha)) + grad.addColorStop(1, tinycolor(color).desaturate(100).setAlpha(0)) + ctx.fillStyle = grad + ctx.fillRect(x, y, 1, yLen) + } - event.preventDefault() - }) + event.preventDefault() + }) - return chart.animate({ - data: data_14, - config: { - x: { - set: 'Country_code', - axis: false - }, - y: { - set: 'Value 3 (+)' - // range: { min: 600 }, - }, - color: 'Country_code' - } - }) - } + return chart.animate({ + data: data_14, + config: { + x: { + set: 'Country_code', + axis: false + }, + y: { + set: 'Value 3 (+)' + // range: { min: 600 }, + }, + color: 'Country_code' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/rounded_bars.mjs b/test/integration/test_cases/web_content/cookbook/rendering/rounded_bars.mjs index 3391e70ad..157a881e7 100755 --- a/test/integration/test_cases/web_content/cookbook/rendering/rounded_bars.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/rounded_bars.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - const toCanvasRect = (rect) => { - const coordSystem = chart.feature.coordSystem - const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) - const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) - return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } - } + (chart) => { + const toCanvasRect = (rect) => { + const coordSystem = chart.feature.coordSystem + const pos = coordSystem.toCanvas({ x: rect.pos.x, y: rect.pos.y + rect.size.y }) + const pos2 = coordSystem.toCanvas({ x: rect.pos.x + rect.size.x, y: rect.pos.y }) + return { pos, size: { x: pos2.x - pos.x, y: pos2.y - pos.y } } + } - const roundRect = (ctx, rect, radius) => { - const x = rect.pos.x - const y = rect.pos.y - const w = rect.size.x - const h = rect.size.y - if (radius > w / 2) radius = w / 2 - if (radius > h / 2) radius = h / 2 - ctx.beginPath() - ctx.moveTo(x + radius, y) - ctx.lineTo(x + w - radius, y) - ctx.quadraticCurveTo(x + w, y, x + w, y + radius) - ctx.lineTo(x + w, y + h - radius) - ctx.quadraticCurveTo(x + w, y + h, x + w - radius, y + h) - ctx.lineTo(x + radius, y + h) - ctx.quadraticCurveTo(x, y + h, x, y + h - radius) - ctx.lineTo(x, y + radius) - ctx.quadraticCurveTo(x, y, x + radius, y) - ctx.closePath() - ctx.fill() - } + const roundRect = (ctx, rect, radius) => { + const x = rect.pos.x + const y = rect.pos.y + const w = rect.size.x + const h = rect.size.y + if (radius > w / 2) radius = w / 2 + if (radius > h / 2) radius = h / 2 + ctx.beginPath() + ctx.moveTo(x + radius, y) + ctx.lineTo(x + w - radius, y) + ctx.quadraticCurveTo(x + w, y, x + w, y + radius) + ctx.lineTo(x + w, y + h - radius) + ctx.quadraticCurveTo(x + w, y + h, x + w - radius, y + h) + ctx.lineTo(x + radius, y + h) + ctx.quadraticCurveTo(x, y + h, x, y + h - radius) + ctx.lineTo(x, y + radius) + ctx.quadraticCurveTo(x, y, x + radius, y) + ctx.closePath() + ctx.fill() + } - chart.on('plot-marker-draw', (event) => { - roundRect(event.renderingContext, toCanvasRect(event.detail.rect), 15) - event.preventDefault() - }) + chart.on('plot-marker-draw', (event) => { + roundRect(event.renderingContext, toCanvasRect(event.detail.rect), 15) + event.preventDefault() + }) - return chart.animate({ - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - label: 'Value 2 (+)', - title: 'Rounded bars' - } - }) - } + return chart.animate({ + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + label: 'Value 2 (+)', + title: 'Rounded bars' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/smooth_line_chart.mjs b/test/integration/test_cases/web_content/cookbook/rendering/smooth_line_chart.mjs index 8149a56b2..1889330ad 100644 --- a/test/integration/test_cases/web_content/cookbook/rendering/smooth_line_chart.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/smooth_line_chart.mjs @@ -1,35 +1,35 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - chart.on('plot-marker-draw', (event) => { - const ctx = event.renderingContext - const line = event.detail.line - ctx.beginPath() - ctx.moveTo(line.begin.x, line.begin.y) - ctx.bezierCurveTo( - (line.begin.x + line.end.x) / 2, - line.begin.y, - (line.begin.x + line.end.x) / 2, - line.end.y, - line.end.x, - line.end.y - ) - ctx.stroke() - event.preventDefault() - }) + (chart) => { + chart.on('plot-marker-draw', (event) => { + const ctx = event.renderingContext + const line = event.detail.line + ctx.beginPath() + ctx.moveTo(line.begin.x, line.begin.y) + ctx.bezierCurveTo( + (line.begin.x + line.end.x) / 2, + line.begin.y, + (line.begin.x + line.end.x) / 2, + line.end.y, + line.end.x, + line.end.y + ) + ctx.stroke() + event.preventDefault() + }) - return chart.animate({ - data, - config: { - x: { set: ['Year'] }, - y: { set: ['Value 5 (+/-)'] }, - title: 'Smooth Line Chart', - geometry: 'line' - } - }) - }, - (chart) => chart.animate({ y: 'Value 2 (+)' }) + return chart.animate({ + data, + config: { + x: { set: ['Year'] }, + y: { set: ['Value 5 (+/-)'] }, + title: 'Smooth Line Chart', + geometry: 'line' + } + }) + }, + (chart) => chart.animate({ y: 'Value 2 (+)' }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs b/test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs index 55a5724df..6e5683f22 100755 --- a/test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs +++ b/test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs @@ -1,23 +1,23 @@ import { data } from '../../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - if (event.target.parent.id === 'x') { - const year = parseFloat(event.target.value) - if (year % 5 !== 0) event.preventDefault() - } - }) + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + if (event.target.parent.id === 'x') { + const year = parseFloat(event.target.value) + if (year % 5 !== 0) event.preventDefault() + } + }) - return chart.animate({ - data, - config: { - y: 'Revenue', - x: { set: 'Year', ticks: true }, - title: 'Every 5th label shown on X' - } - }) - } + return chart.animate({ + data, + config: { + y: 'Revenue', + x: { set: 'Year', ticks: true }, + title: 'Every 5th label shown on X' + } + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/style/colorfilter.mjs b/test/integration/test_cases/web_content/cookbook/style/colorfilter.mjs index 1b6f59c78..b29fa69b7 100644 --- a/test/integration/test_cases/web_content/cookbook/style/colorfilter.mjs +++ b/test/integration/test_cases/web_content/cookbook/style/colorfilter.mjs @@ -1,60 +1,60 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') - return chart - }, + async (chart) => { + await import('https://unpkg.com/tinycolor2@1.6.0/dist/tinycolor-min.js') + return chart + }, - (chart) => - chart.animate({ - data, - config: { - x: 'Year', - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors', - title: 'custom colorfilter' - } - }), + (chart) => + chart.animate({ + data, + config: { + x: 'Year', + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors', + title: 'custom colorfilter' + } + }), - (chart) => { - function filteredStyle(style, colorfilter, level = 0) { - for (const param in style) { - if (typeof style[param] === 'object') { - style[param] = filteredStyle(style[param], colorfilter, level + 1) - } else { - const isColor = param.endsWith('color') || param.endsWith('Color') - const ignore = level === 0 && param === 'backgroundColor' - if (isColor && !ignore && level > 0) { - style[param] = colorfilter(style[param]) - } - } - } - if (level === 0) { - style.plot.marker.colorPalette = style.plot.marker.colorPalette - .split(' ') - .map(colorfilter) - .join(' ') - const re = /\s*,\s*/ - style.plot.marker.colorGradient = style.plot.marker.colorGradient - .split(re) - .map((step) => { - const parts = step.split(' ') - parts[0] = colorfilter(parts[0]) - return parts.join(' ') - }) - .join(',') - } - return style - } + (chart) => { + function filteredStyle(style, colorfilter, level = 0) { + for (const param in style) { + if (typeof style[param] === 'object') { + style[param] = filteredStyle(style[param], colorfilter, level + 1) + } else { + const isColor = param.endsWith('color') || param.endsWith('Color') + const ignore = level === 0 && param === 'backgroundColor' + if (isColor && !ignore && level > 0) { + style[param] = colorfilter(style[param]) + } + } + } + if (level === 0) { + style.plot.marker.colorPalette = style.plot.marker.colorPalette + .split(' ') + .map(colorfilter) + .join(' ') + const re = /\s*,\s*/ + style.plot.marker.colorGradient = style.plot.marker.colorGradient + .split(re) + .map((step) => { + const parts = step.split(' ') + parts[0] = colorfilter(parts[0]) + return parts.join(' ') + }) + .join(',') + } + return style + } - return chart.animate({ - style: filteredStyle({ ...chart.getComputedStyle() }, (color) => { - const gray = tinycolor(color).desaturate(100) - return gray.setAlpha(gray.getAlpha() * 0.3).toHex8String() - }) - }) - } + return chart.animate({ + style: filteredStyle({ ...chart.getComputedStyle() }, (color) => { + const gray = tinycolor(color).desaturate(100) + return gray.setAlpha(gray.getAlpha() * 0.3).toHex8String() + }) + }) + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/style/d3_color_palette.mjs b/test/integration/test_cases/web_content/cookbook/style/d3_color_palette.mjs index 3bf887ad5..e73f24ef7 100755 --- a/test/integration/test_cases/web_content/cookbook/style/d3_color_palette.mjs +++ b/test/integration/test_cases/web_content/cookbook/style/d3_color_palette.mjs @@ -1,69 +1,69 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - async (chart) => { - await import('https://d3js.org/d3.v7.min.js') + async (chart) => { + await import('https://d3js.org/d3.v7.min.js') - return chart.animate({ - data, - config: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - title: 'D3 Color Palettes' - } - }) - }, - (chart) => - chart.animate({ - config: { title: 'Category10' }, - style: { 'plot.marker.colorPalette': d3.schemeCategory10.join(' ') } - }), - (chart) => - chart.animate({ - config: { title: 'Accent' }, - style: { 'plot.marker.colorPalette': d3.schemeAccent.join(' ') } - }), - (chart) => - chart.animate({ - config: { title: 'Dark2' }, - style: { 'plot.marker.colorPalette': d3.schemeDark2.join(' ') } - }), - (chart) => - chart.animate({ - config: { title: 'Paired' }, - style: { 'plot.marker.colorPalette': d3.schemePaired.join(' ') } - }), - (chart) => - chart.animate({ - config: { title: 'Pastel1' }, - style: { 'plot.marker.colorPalette': d3.schemePastel1.join(' ') } - }), - (chart) => - chart.animate({ - config: { title: 'Pastel2' }, - style: { 'plot.marker.colorPalette': d3.schemePastel2.join(' ') } - }), - (chart) => - chart.animate({ - config: { title: 'Set1' }, - style: { 'plot.marker.colorPalette': d3.schemeSet1.join(' ') } - }), - (chart) => - chart.animate({ - config: { title: 'Set2' }, - style: { 'plot.marker.colorPalette': d3.schemeSet2.join(' ') } - }), - (chart) => - chart.animate({ - config: { title: 'Set3' }, - style: { 'plot.marker.colorPalette': d3.schemeSet3.join(' ') } - }), - (chart) => - chart.animate({ - config: { title: 'Tableau10' }, - style: { 'plot.marker.colorPalette': d3.schemeTableau10.join(' ') } - }) + return chart.animate({ + data, + config: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + title: 'D3 Color Palettes' + } + }) + }, + (chart) => + chart.animate({ + config: { title: 'Category10' }, + style: { 'plot.marker.colorPalette': d3.schemeCategory10.join(' ') } + }), + (chart) => + chart.animate({ + config: { title: 'Accent' }, + style: { 'plot.marker.colorPalette': d3.schemeAccent.join(' ') } + }), + (chart) => + chart.animate({ + config: { title: 'Dark2' }, + style: { 'plot.marker.colorPalette': d3.schemeDark2.join(' ') } + }), + (chart) => + chart.animate({ + config: { title: 'Paired' }, + style: { 'plot.marker.colorPalette': d3.schemePaired.join(' ') } + }), + (chart) => + chart.animate({ + config: { title: 'Pastel1' }, + style: { 'plot.marker.colorPalette': d3.schemePastel1.join(' ') } + }), + (chart) => + chart.animate({ + config: { title: 'Pastel2' }, + style: { 'plot.marker.colorPalette': d3.schemePastel2.join(' ') } + }), + (chart) => + chart.animate({ + config: { title: 'Set1' }, + style: { 'plot.marker.colorPalette': d3.schemeSet1.join(' ') } + }), + (chart) => + chart.animate({ + config: { title: 'Set2' }, + style: { 'plot.marker.colorPalette': d3.schemeSet2.join(' ') } + }), + (chart) => + chart.animate({ + config: { title: 'Set3' }, + style: { 'plot.marker.colorPalette': d3.schemeSet3.join(' ') } + }), + (chart) => + chart.animate({ + config: { title: 'Tableau10' }, + style: { 'plot.marker.colorPalette': d3.schemeTableau10.join(' ') } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/style/dark_theme.mjs b/test/integration/test_cases/web_content/cookbook/style/dark_theme.mjs index f6d9952b8..964d323b2 100644 --- a/test/integration/test_cases/web_content/cookbook/style/dark_theme.mjs +++ b/test/integration/test_cases/web_content/cookbook/style/dark_theme.mjs @@ -1,97 +1,97 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - const style = { - backgroundColor: '#121212', - fontFamily: 'Roboto, sans-serif', - fontSize: '10px', + (chart) => { + const style = { + backgroundColor: '#121212', + fontFamily: 'Roboto, sans-serif', + fontSize: '10px', - legend: { - label: { - color: '#b9b9b9', - fontSize: '1em', - textAlign: 'left' - }, - title: { - color: '#b9b9b9', - fontSize: '1.166667em', - textAlign: 'left' - } - }, + legend: { + label: { + color: '#b9b9b9', + fontSize: '1em', + textAlign: 'left' + }, + title: { + color: '#b9b9b9', + fontSize: '1.166667em', + textAlign: 'left' + } + }, - plot: { - marker: { - colorGradient: '#003f5c 0, #58508d 0.25, #bc5090 0.5, #ff6361 0.75, #ffa600 1', - colorPalette: - '#003f5c #2f4b7c #665191 #a05195 #d45087 #f95d6a #ff7c43 #ffa600 #bea500 #819d10 #488f31 #00795e' - }, - yAxis: { - color: '#CCCCCCFF', - label: { - color: '#999999FF', - fontSize: '1em' - }, - title: { - color: '#999999FF', - fontSize: '1.166667em' - }, - interlacing: { - color: '#212121' - } - }, - xAxis: { - label: { - color: '#999999FF', - fontSize: '1em' - }, - title: { - color: '#999999FF', - fontSize: '1.166667em' - }, - interlacing: { - color: '#212121' - } - } - }, + plot: { + marker: { + colorGradient: '#003f5c 0, #58508d 0.25, #bc5090 0.5, #ff6361 0.75, #ffa600 1', + colorPalette: + '#003f5c #2f4b7c #665191 #a05195 #d45087 #f95d6a #ff7c43 #ffa600 #bea500 #819d10 #488f31 #00795e' + }, + yAxis: { + color: '#CCCCCCFF', + label: { + color: '#999999FF', + fontSize: '1em' + }, + title: { + color: '#999999FF', + fontSize: '1.166667em' + }, + interlacing: { + color: '#212121' + } + }, + xAxis: { + label: { + color: '#999999FF', + fontSize: '1em' + }, + title: { + color: '#999999FF', + fontSize: '1.166667em' + }, + interlacing: { + color: '#212121' + } + } + }, - title: { - color: '#f7f7f7', - fontSize: '2.166667em', - textAlign: 'center' - }, + title: { + color: '#f7f7f7', + fontSize: '2.166667em', + textAlign: 'center' + }, - tooltip: { - arrowSize: '8', - color: '#212121', - backgroundColor: '#003f5cFF', - borderColor: '#D8D8D8FF', - fontSize: '12px' - }, + tooltip: { + arrowSize: '8', + color: '#212121', + backgroundColor: '#003f5cFF', + borderColor: '#D8D8D8FF', + fontSize: '12px' + }, - logo: { - filter: 'color(#D8D8D8FF)' - } - } + logo: { + filter: 'color(#D8D8D8FF)' + } + } - return chart.animate({ - data, - config: { - x: 'Year', - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors', - title: 'Dark theme (color palette)' - }, - style - }) - }, - (chart) => - chart.animate({ - x: 'Year', - y: 'Country_code', - color: 'Value 3 (+)', - title: 'Dark theme (color gradient)' - }) + return chart.animate({ + data, + config: { + x: 'Year', + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors', + title: 'Dark theme (color palette)' + }, + style + }) + }, + (chart) => + chart.animate({ + x: 'Year', + y: 'Country_code', + color: 'Value 3 (+)', + title: 'Dark theme (color gradient)' + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/cookbook/style/highligh_markers.mjs b/test/integration/test_cases/web_content/cookbook/style/highligh_markers.mjs index 8e8c3815d..7430f1ce7 100644 --- a/test/integration/test_cases/web_content/cookbook/style/highligh_markers.mjs +++ b/test/integration/test_cases/web_content/cookbook/style/highligh_markers.mjs @@ -3,90 +3,91 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' let highlighter class Highlighter { - constructor(chart, animOptions) { - this.chart = chart - this.animOptions = animOptions - this.metadata = this.chart.data - this.defaultPalette = this.chart.getComputedStyle().plot.marker.colorPalette.split(' ') - this.palette = this.defaultPalette + constructor(chart, animOptions) { + this.chart = chart + this.animOptions = animOptions + this.metadata = this.chart.data + this.defaultPalette = this.chart.getComputedStyle().plot.marker.colorPalette.split(' ') + this.palette = this.defaultPalette - const colorchannels = this.chart.config.channels.color.set - if (colorchannels.length === 0) this.colorchannel = null - else if (colorchannels.length === 1) this.colorchannel = colorchannels[0] - else throw new Error('charts with multiple color series are not supported by highlighter') - } + const colorchannels = this.chart.config.channels.color.set + if (colorchannels.length === 0) this.colorchannel = null + else if (colorchannels.length === 1) this.colorchannel = colorchannels[0] + else throw new Error('charts with multiple color series are not supported by highlighter') + } - highlight(dataseries, categories) { - if (this.colorchannel && dataseries !== this.colorchannel) { - throw new Error('Color channel must be empty or match the data series to be selected') - } + highlight(dataseries, categories) { + if (this.colorchannel && dataseries !== this.colorchannel) { + throw new Error('Color channel must be empty or match the data series to be selected') + } - const metadata = this._getSeriesMetadata(dataseries) - if (!metadata) return this.chart - const allCategories = metadata.categories + const metadata = this._getSeriesMetadata(dataseries) + if (!metadata) return this.chart + const allCategories = metadata.categories - this.palette = [] - for (let i = 0; i < allCategories.length; i++) { - const category = allCategories[i] - this.palette.push( - categories.includes(category) - ? this.defaultPalette[i % this.defaultPalette.length] - : '#dfdfdf' - ) - } + this.palette = [] + for (let i = 0; i < allCategories.length; i++) { + const category = allCategories[i] + this.palette.push( + categories.includes(category) + ? this.defaultPalette[i % this.defaultPalette.length] + : '#dfdfdf' + ) + } - return this.chart.animate( - { - config: { channels: { color: { set: dataseries } } }, - style: { plot: { marker: { colorPalette: this.palette.join(' ') } } } - }, - this.animOptions - ) - } + return this.chart.animate( + { + config: { channels: { color: { set: dataseries } } }, + style: { plot: { marker: { colorPalette: this.palette.join(' ') } } } + }, + this.animOptions + ) + } - clear() { - this.palette = this.defaultPalette - return this.chart.animate( - { - config: { channels: { color: { set: this.colorchannel } } }, - style: { plot: { marker: { colorPalette: this.palette.join(' ') } } } - }, - this.animOptions - ) - } + clear() { + this.palette = this.defaultPalette + return this.chart.animate( + { + config: { channels: { color: { set: this.colorchannel } } }, + style: { plot: { marker: { colorPalette: this.palette.join(' ') } } } + }, + this.animOptions + ) + } - _compareArrays(a, b) { - return a.length === b.length && a.every((element, index) => element === b[index]) - } + _compareArrays(a, b) { + return a.length === b.length && a.every((element, index) => element === b[index]) + } - _getSeriesMetadata(dataseries) { - for (const metadata of this.metadata.series) if (metadata.name === dataseries) return metadata - return null - } + _getSeriesMetadata(dataseries) { + for (const metadata of this.metadata.series) + if (metadata.name === dataseries) return metadata + return null + } } const testSteps = [ - (chart) => { - return chart.animate({ - data, - config: { - x: 'Year', - color: 'Year', - y: 'Value 2 (+)', - title: 'Highlight markers' - } - }) - }, - (chart) => { - highlighter = new Highlighter(chart, 0.5) - return highlighter.highlight('Year', ['10', '14']) - }, - (chart) => { - return highlighter.highlight('Year', ['02', '06', '16']) - }, - (chart) => { - return highlighter.clear() - } + (chart) => { + return chart.animate({ + data, + config: { + x: 'Year', + color: 'Year', + y: 'Value 2 (+)', + title: 'Highlight markers' + } + }) + }, + (chart) => { + highlighter = new Highlighter(chart, 0.5) + return highlighter.highlight('Year', ['10', '14']) + }, + (chart) => { + return highlighter.highlight('Year', ['02', '06', '16']) + }, + (chart) => { + return highlighter.clear() + } ] export default testSteps diff --git a/test/integration/test_cases/web_content/infinite.mjs b/test/integration/test_cases/web_content/infinite.mjs index 0e9a1348a..00e31f5b5 100755 --- a/test/integration/test_cases/web_content/infinite.mjs +++ b/test/integration/test_cases/web_content/infinite.mjs @@ -1,641 +1,641 @@ import { data } from '../../test_data/infinite_data.mjs' const testSteps = [ - (chart) => - chart.animate( - { - data, - config: { - channels: { - x: { attach: ['Hor'], range: { max: '695' } }, - y: { attach: ['Ver'], range: { max: '375' } }, - color: { set: ['Joy factors'] } - }, - align: 'none', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - circleMinRadius: 0.076, - colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF', - label: { - fontSize: 8 - }, - guides: { color: '#ffffff00' } - }, - xAxis: { - color: '#ffffff00', - title: { color: '#ffffff00' }, - label: { color: '#ffffff00' }, - interlacing: { color: '#ffffff00' }, - ticks: { color: '#ffffff00' } - }, - yAxis: { - color: '#ffffff00', - title: { color: '#ffffff00' }, - label: { color: '#ffffff00' }, - interlacing: { color: '#ffffff00' }, - ticks: { color: '#ffffff00' } - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { detach: ['Hor'], range: { max: '119.17%' } }, - y: { detach: ['Ver'], range: { max: '127.86%' } }, - size: { set: ['Value 1'] } - }, - title: '2' - }, - style: { - plot: { - marker: { - circleMinRadius: null - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: ['Value 1', 'Country code'] } - }, - title: '3' - // legend: 'color' - }, - style: { - plot: { - marker: { - circleMinRadius: null, - colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF', - label: { - fontSize: 8 - } - }, - xAxis: { - color: null, - title: null, - label: null, - interlacing: null, - ticks: null, - guides: null - }, - yAxis: { - color: null, - title: null, - label: null, - interlacing: null, - ticks: null, - guides: null - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - label: { set: ['Country code'] } - }, - title: '4' - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 1'], range: { max: '110%' } }, - y: { set: ['Value 3'], range: { max: '110%' } }, - size: { set: ['Value 1'] }, - noop: { set: ['Country code'] } - }, - title: '5' - }, - style: { - plot: { - marker: { - circleMinRadius: 0.001, - circleMaxRadius: 0.04, - label: { - fontSize: null - } - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Joy factors'], range: { min: '-10%', max: '110%' } }, - label: { set: null } - }, - title: '6', - geometry: 'rectangle' - }, - style: { - plot: { - marker: { - rectangleSpacing: 1 - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - noop: { detach: ['Country code'] }, - x: { set: ['Country code'], range: { max: '100%' } }, - y: { - set: ['Value 1', 'Joy factors'], - range: { min: '-10%', max: '110%' } - } - }, - title: '7' - }, - style: { - plot: { - marker: { - rectangleSpacing: null - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - y: { attach: ['Region'] }, - lightness: { set: ['Region'] } - }, - title: '8' - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Region', 'Country code'] }, - y: { set: ['Value 1', 'Joy factors'] } - }, - title: '9' - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Region', 'Country code', 'Joy factors'] }, - y: { set: ['Value 1'] } - }, - title: '10' - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['Value 1', 'Region', 'Country code'], - range: { max: '110%' } - }, - y: { set: ['Joy factors'], range: { min: '-15%', max: '110%' } } - }, - title: '11' - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['Value 1', 'Region', 'Country code'], - range: { max: '133%' } - }, - y: { set: ['Joy factors'], range: { min: '-30%', max: '100%' } } - }, - title: '12', - coordSystem: 'polar' - // legend: 'lightness' - }, - style: { - plot: { - xAxis: { - title: { color: '#ffffff00' }, - label: { color: '#ffffff00' }, - ticks: { color: '#ffffff00' }, - interlacing: { color: '#ffffff00' } - }, - yAxis: { - color: '#ffffff00', - title: { color: '#ffffff00' }, - ticks: { color: '#ffffff00' } - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 1', 'Country code'] }, - y: { - set: ['Joy factors', 'Region'], - range: { min: '-10%', max: '100%' } - } - }, - title: '13' - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 1'], range: { max: '110%' } }, - y: { - set: ['Joy factors', 'Region', 'Country code'], - range: { min: '-10%', max: '100%' } - } - }, - title: '14' - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['Value 1', 'Joy factors', 'Region', 'Country code'], - range: { max: '100%' } - }, - y: { set: null, range: { min: '-200%', max: '100%' } }, - lightness: { set: null } - }, - title: '15' - // legend: 'color' - }, - style: { - plot: { - marker: { - rectangleSpacing: null - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['Value 1', 'Joy factors', 'Region', 'Country code'], - range: { max: '100%' } - }, - y: { set: null, range: { min: '0%', max: '100%' } } - }, - title: '16' - }, - style: { - plot: { - marker: { - rectangleSpacing: null - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['Value 1', 'Joy factors', 'Region', 'Country code'], - range: { max: '100%' } - }, - y: { set: ['Value 1'], range: { min: '-80%', max: '100%' } } - }, - title: '17' - }, - style: { - plot: { - marker: { - rectangleSpacing: null, - borderWidth: 0, - borderOpacity: 1 - }, - yAxis: { - label: { color: '#ffffff00' } - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Region'], range: { max: '100%' } }, - y: { - set: ['Value 1', 'Country code'], - range: { min: '-20%', max: '100%' } - } - }, - title: '18' - }, - style: { - plot: { - marker: { - rectangleSpacing: 0.1, - borderWidth: null, - borderOpacity: null - }, - xAxis: { - title: { color: null }, - label: { color: null }, - ticks: { color: null }, - interlacing: { color: null } - }, - yAxis: { - color: null, - // title: { color: null }, - ticks: { color: null } - // label: { color: null }, - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors'], range: { max: '100%' } }, - y: { - set: ['Value 1', 'Region', 'Country code'], - range: { min: '0%', max: '100%' } - } - }, - title: '19' - }, - style: { - plot: { - marker: { - rectangleSpacing: 0 - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['Value 1', 'Joy factors', 'Region', 'Country code'], - range: { max: '100%' } - }, - y: { set: null, range: { min: '-200%', max: '100%' } } - }, - title: '20', - coordSystem: 'cartesian' - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['Value 1', 'Joy factors', 'Country code'], - range: { max: '100%' } - }, // regiont levesz - y: { set: null, range: { min: '-200%', max: '100%' } } - }, - title: '21', - coordSystem: 'cartesian' - }, - style: { - plot: { - marker: { - rectangleSpacing: null - } - } - } - }, - '400ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, - y: { set: ['Value 1'], range: { min: '0%', max: '110%' } } - }, - title: '22' - }, - style: { - plot: { - marker: { - rectangleSpacing: 1 - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, - y: { - set: ['Value 1', 'Age group'], - range: { min: '0%', max: '110%' } - }, - color: { set: ['Age group'] } - }, - title: '23' - // legend: 'lightness' - }, - style: { - plot: { - marker: { - rectangleSpacing: 1, - colorPalette: null - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, - y: { - set: ['Value 1', 'Age group'], - range: { min: '0%', max: '100%' } - } - }, - title: '24', - split: true - // legend: 'color' - }, - style: { - plot: { - marker: { - rectangleSpacing: 1 - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, - y: { - set: ['Value 1', 'Age group'], - range: { min: '0%', max: '100%' } - } - }, - title: '25', - geometry: 'area', - align: 'stretch', - split: false - }, - style: { - plot: { - marker: { - rectangleSpacing: 0 - } - } - } - }, - '100ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, - y: { - set: ['Value 1', 'Age group'], - range: { min: '0%', max: '100%' } - } - }, - title: '26', - geometry: 'area', - align: 'center', - split: true - }, - style: { - plot: { - marker: { - rectangleSpacing: 0 - } - } - } - }, - '1500ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, - y: { - set: ['Value 1' /*, 'Age group' */], - range: { min: '0%', max: '100%' } - }, - noop: { set: ['Age group'] }, - color: { set: ['Joy factors'] } - }, - title: '27', - geometry: 'circle', - align: 'center', - split: true - }, - style: { - plot: { - marker: { - rectangleSpacing: 0 - } - } - } - }, - '1500ms' - ) /*, + (chart) => + chart.animate( + { + data, + config: { + channels: { + x: { attach: ['Hor'], range: { max: '695' } }, + y: { attach: ['Ver'], range: { max: '375' } }, + color: { set: ['Joy factors'] } + }, + align: 'none', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + circleMinRadius: 0.076, + colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF', + label: { + fontSize: 8 + }, + guides: { color: '#ffffff00' } + }, + xAxis: { + color: '#ffffff00', + title: { color: '#ffffff00' }, + label: { color: '#ffffff00' }, + interlacing: { color: '#ffffff00' }, + ticks: { color: '#ffffff00' } + }, + yAxis: { + color: '#ffffff00', + title: { color: '#ffffff00' }, + label: { color: '#ffffff00' }, + interlacing: { color: '#ffffff00' }, + ticks: { color: '#ffffff00' } + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { detach: ['Hor'], range: { max: '119.17%' } }, + y: { detach: ['Ver'], range: { max: '127.86%' } }, + size: { set: ['Value 1'] } + }, + title: '2' + }, + style: { + plot: { + marker: { + circleMinRadius: null + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: ['Value 1', 'Country code'] } + }, + title: '3' + // legend: 'color' + }, + style: { + plot: { + marker: { + circleMinRadius: null, + colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF', + label: { + fontSize: 8 + } + }, + xAxis: { + color: null, + title: null, + label: null, + interlacing: null, + ticks: null, + guides: null + }, + yAxis: { + color: null, + title: null, + label: null, + interlacing: null, + ticks: null, + guides: null + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + label: { set: ['Country code'] } + }, + title: '4' + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 1'], range: { max: '110%' } }, + y: { set: ['Value 3'], range: { max: '110%' } }, + size: { set: ['Value 1'] }, + noop: { set: ['Country code'] } + }, + title: '5' + }, + style: { + plot: { + marker: { + circleMinRadius: 0.001, + circleMaxRadius: 0.04, + label: { + fontSize: null + } + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Joy factors'], range: { min: '-10%', max: '110%' } }, + label: { set: null } + }, + title: '6', + geometry: 'rectangle' + }, + style: { + plot: { + marker: { + rectangleSpacing: 1 + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: { detach: ['Country code'] }, + x: { set: ['Country code'], range: { max: '100%' } }, + y: { + set: ['Value 1', 'Joy factors'], + range: { min: '-10%', max: '110%' } + } + }, + title: '7' + }, + style: { + plot: { + marker: { + rectangleSpacing: null + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + y: { attach: ['Region'] }, + lightness: { set: ['Region'] } + }, + title: '8' + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Region', 'Country code'] }, + y: { set: ['Value 1', 'Joy factors'] } + }, + title: '9' + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Region', 'Country code', 'Joy factors'] }, + y: { set: ['Value 1'] } + }, + title: '10' + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['Value 1', 'Region', 'Country code'], + range: { max: '110%' } + }, + y: { set: ['Joy factors'], range: { min: '-15%', max: '110%' } } + }, + title: '11' + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['Value 1', 'Region', 'Country code'], + range: { max: '133%' } + }, + y: { set: ['Joy factors'], range: { min: '-30%', max: '100%' } } + }, + title: '12', + coordSystem: 'polar' + // legend: 'lightness' + }, + style: { + plot: { + xAxis: { + title: { color: '#ffffff00' }, + label: { color: '#ffffff00' }, + ticks: { color: '#ffffff00' }, + interlacing: { color: '#ffffff00' } + }, + yAxis: { + color: '#ffffff00', + title: { color: '#ffffff00' }, + ticks: { color: '#ffffff00' } + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 1', 'Country code'] }, + y: { + set: ['Joy factors', 'Region'], + range: { min: '-10%', max: '100%' } + } + }, + title: '13' + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 1'], range: { max: '110%' } }, + y: { + set: ['Joy factors', 'Region', 'Country code'], + range: { min: '-10%', max: '100%' } + } + }, + title: '14' + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['Value 1', 'Joy factors', 'Region', 'Country code'], + range: { max: '100%' } + }, + y: { set: null, range: { min: '-200%', max: '100%' } }, + lightness: { set: null } + }, + title: '15' + // legend: 'color' + }, + style: { + plot: { + marker: { + rectangleSpacing: null + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['Value 1', 'Joy factors', 'Region', 'Country code'], + range: { max: '100%' } + }, + y: { set: null, range: { min: '0%', max: '100%' } } + }, + title: '16' + }, + style: { + plot: { + marker: { + rectangleSpacing: null + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['Value 1', 'Joy factors', 'Region', 'Country code'], + range: { max: '100%' } + }, + y: { set: ['Value 1'], range: { min: '-80%', max: '100%' } } + }, + title: '17' + }, + style: { + plot: { + marker: { + rectangleSpacing: null, + borderWidth: 0, + borderOpacity: 1 + }, + yAxis: { + label: { color: '#ffffff00' } + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Region'], range: { max: '100%' } }, + y: { + set: ['Value 1', 'Country code'], + range: { min: '-20%', max: '100%' } + } + }, + title: '18' + }, + style: { + plot: { + marker: { + rectangleSpacing: 0.1, + borderWidth: null, + borderOpacity: null + }, + xAxis: { + title: { color: null }, + label: { color: null }, + ticks: { color: null }, + interlacing: { color: null } + }, + yAxis: { + color: null, + // title: { color: null }, + ticks: { color: null } + // label: { color: null }, + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors'], range: { max: '100%' } }, + y: { + set: ['Value 1', 'Region', 'Country code'], + range: { min: '0%', max: '100%' } + } + }, + title: '19' + }, + style: { + plot: { + marker: { + rectangleSpacing: 0 + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['Value 1', 'Joy factors', 'Region', 'Country code'], + range: { max: '100%' } + }, + y: { set: null, range: { min: '-200%', max: '100%' } } + }, + title: '20', + coordSystem: 'cartesian' + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['Value 1', 'Joy factors', 'Country code'], + range: { max: '100%' } + }, // regiont levesz + y: { set: null, range: { min: '-200%', max: '100%' } } + }, + title: '21', + coordSystem: 'cartesian' + }, + style: { + plot: { + marker: { + rectangleSpacing: null + } + } + } + }, + '400ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, + y: { set: ['Value 1'], range: { min: '0%', max: '110%' } } + }, + title: '22' + }, + style: { + plot: { + marker: { + rectangleSpacing: 1 + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, + y: { + set: ['Value 1', 'Age group'], + range: { min: '0%', max: '110%' } + }, + color: { set: ['Age group'] } + }, + title: '23' + // legend: 'lightness' + }, + style: { + plot: { + marker: { + rectangleSpacing: 1, + colorPalette: null + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, + y: { + set: ['Value 1', 'Age group'], + range: { min: '0%', max: '100%' } + } + }, + title: '24', + split: true + // legend: 'color' + }, + style: { + plot: { + marker: { + rectangleSpacing: 1 + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, + y: { + set: ['Value 1', 'Age group'], + range: { min: '0%', max: '100%' } + } + }, + title: '25', + geometry: 'area', + align: 'stretch', + split: false + }, + style: { + plot: { + marker: { + rectangleSpacing: 0 + } + } + } + }, + '100ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, + y: { + set: ['Value 1', 'Age group'], + range: { min: '0%', max: '100%' } + } + }, + title: '26', + geometry: 'area', + align: 'center', + split: true + }, + style: { + plot: { + marker: { + rectangleSpacing: 0 + } + } + } + }, + '1500ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Country code'], range: { max: '100%' } }, + y: { + set: ['Value 1' /*, 'Age group' */], + range: { min: '0%', max: '100%' } + }, + noop: { set: ['Age group'] }, + color: { set: ['Joy factors'] } + }, + title: '27', + geometry: 'circle', + align: 'center', + split: true + }, + style: { + plot: { + marker: { + rectangleSpacing: 0 + } + } + } + }, + '1500ms' + ) /*, chart => chart.animate({ config: { channels: @@ -662,239 +662,239 @@ const testSteps = [ } } , '1500ms') */, - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors'], range: { min: '0%', max: '100%' } }, - y: { set: ['Value 1'], range: { min: '0%', max: '100%' } }, - color: { set: ['Joy factors'] }, - lightness: { set: ['Value 3'] }, - noop: { set: ['Country code', 'Age group'] }, - size: { set: ['Value 2' /*, 'Age group' */] } - }, - title: '29', - geometry: 'circle', - align: 'min', - split: false - }, - style: { - plot: { - marker: { - rectangleSpacing: null, - circleMinRadius: 0.001, - circleMaxRadius: 0.025, - colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF' - } - } - } - }, - '1500ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors'], range: { min: '0%', max: '100%' } }, - y: { set: ['Value 1'], range: { min: '0%', max: '100%' } }, - color: { set: ['Joy factors'] }, - lightness: { set: ['Value 3'] }, - noop: { set: ['Country code', 'Age group'] }, - size: { set: ['Value 2' /*, 'Age group' */] } - }, - title: '30', - geometry: 'circle', - align: 'min', - split: false - }, - style: { - plot: { - marker: { - rectangleSpacing: null, - circleMinRadius: 0.001, - circleMaxRadius: 0.025, - colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF' - } - } - } - }, - '1500ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: ['Joy factors'] }, - // label: { set: ['Country code' ] }, - noop: { set: ['Age group', 'Country code'] }, - size: { set: ['Value 1'] } - }, - title: '30a', - geometry: 'circle', - align: 'none', - split: false - }, - style: { - plot: { - marker: { - rectangleSpacing: null, - circleMinRadius: 0.001, - circleMaxRadius: 0.025, - label: { - fontSize: 8 - } - } - } - } - }, - '1500ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: ['Joy factors'] }, - // label: { set: ['Country code' ] }, - noop: { set: ['Age group'] }, - size: { set: ['Value 1', 'Country code'] } - }, - title: '31', - geometry: 'circle', - align: 'none', - split: false - }, - style: { - plot: { - marker: { - rectangleSpacing: null, - circleMinRadius: 0.001, - circleMaxRadius: 0.025, - label: { - fontSize: 8 - } - } - } - } - }, - '1500ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: ['Joy factors'] }, - // label: { set: ['Country code' ] }, - // noop: { set: ['Age group' ] }, - size: { set: ['Value 1', 'Country code', 'Age group'] } - }, - title: '32', - geometry: 'circle', - align: 'none', - split: false - }, - style: { - plot: { - marker: { - rectangleSpacing: null, - circleMinRadius: 0.001, - circleMaxRadius: 0.025, - label: { - fontSize: 8 - } - } - } - } - }, - '1500ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: ['Joy factors'] }, - label: { set: ['Joy factors'] }, - lightness: { set: null }, - noop: { set: null }, - size: { set: ['Value 1'] } - }, - title: '33', - geometry: 'circle', - align: 'none', - split: false - }, - style: { - plot: { - marker: { - rectangleSpacing: null, - circleMinRadius: 0.001, - circleMaxRadius: 0.025, - label: { - fontSize: null - } - } - } - } - }, - '1500ms' - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { attach: ['Hor'], range: { max: '695' } }, - y: { attach: ['Ver'], range: { max: '375' } }, - color: { set: ['Joy factors'] }, - label: { set: null } - }, - title: null, - align: 'none', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - circleMinRadius: 0.076, - colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF', - label: { - fontSize: 8 - }, - guides: { color: '#ffffff00' } - }, - xAxis: { - color: '#ffffff00', - title: { color: '#ffffff00' }, - label: { color: '#ffffff00' }, - interlacing: { color: '#ffffff00' }, - ticks: { color: '#ffffff00' } - }, - yAxis: { - color: '#ffffff00', - title: { color: '#ffffff00' }, - label: { color: '#ffffff00' }, - interlacing: { color: '#ffffff00' }, - ticks: { color: '#ffffff00' } - } - } - } - }, - '1500ms' - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors'], range: { min: '0%', max: '100%' } }, + y: { set: ['Value 1'], range: { min: '0%', max: '100%' } }, + color: { set: ['Joy factors'] }, + lightness: { set: ['Value 3'] }, + noop: { set: ['Country code', 'Age group'] }, + size: { set: ['Value 2' /*, 'Age group' */] } + }, + title: '29', + geometry: 'circle', + align: 'min', + split: false + }, + style: { + plot: { + marker: { + rectangleSpacing: null, + circleMinRadius: 0.001, + circleMaxRadius: 0.025, + colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF' + } + } + } + }, + '1500ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors'], range: { min: '0%', max: '100%' } }, + y: { set: ['Value 1'], range: { min: '0%', max: '100%' } }, + color: { set: ['Joy factors'] }, + lightness: { set: ['Value 3'] }, + noop: { set: ['Country code', 'Age group'] }, + size: { set: ['Value 2' /*, 'Age group' */] } + }, + title: '30', + geometry: 'circle', + align: 'min', + split: false + }, + style: { + plot: { + marker: { + rectangleSpacing: null, + circleMinRadius: 0.001, + circleMaxRadius: 0.025, + colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF' + } + } + } + }, + '1500ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: ['Joy factors'] }, + // label: { set: ['Country code' ] }, + noop: { set: ['Age group', 'Country code'] }, + size: { set: ['Value 1'] } + }, + title: '30a', + geometry: 'circle', + align: 'none', + split: false + }, + style: { + plot: { + marker: { + rectangleSpacing: null, + circleMinRadius: 0.001, + circleMaxRadius: 0.025, + label: { + fontSize: 8 + } + } + } + } + }, + '1500ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: ['Joy factors'] }, + // label: { set: ['Country code' ] }, + noop: { set: ['Age group'] }, + size: { set: ['Value 1', 'Country code'] } + }, + title: '31', + geometry: 'circle', + align: 'none', + split: false + }, + style: { + plot: { + marker: { + rectangleSpacing: null, + circleMinRadius: 0.001, + circleMaxRadius: 0.025, + label: { + fontSize: 8 + } + } + } + } + }, + '1500ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: ['Joy factors'] }, + // label: { set: ['Country code' ] }, + // noop: { set: ['Age group' ] }, + size: { set: ['Value 1', 'Country code', 'Age group'] } + }, + title: '32', + geometry: 'circle', + align: 'none', + split: false + }, + style: { + plot: { + marker: { + rectangleSpacing: null, + circleMinRadius: 0.001, + circleMaxRadius: 0.025, + label: { + fontSize: 8 + } + } + } + } + }, + '1500ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: ['Joy factors'] }, + label: { set: ['Joy factors'] }, + lightness: { set: null }, + noop: { set: null }, + size: { set: ['Value 1'] } + }, + title: '33', + geometry: 'circle', + align: 'none', + split: false + }, + style: { + plot: { + marker: { + rectangleSpacing: null, + circleMinRadius: 0.001, + circleMaxRadius: 0.025, + label: { + fontSize: null + } + } + } + } + }, + '1500ms' + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { attach: ['Hor'], range: { max: '695' } }, + y: { attach: ['Ver'], range: { max: '375' } }, + color: { set: ['Joy factors'] }, + label: { set: null } + }, + title: null, + align: 'none', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + circleMinRadius: 0.076, + colorPalette: '#ee1b22FF #cecf07FF #01abf6FF #0ca749FF', + label: { + fontSize: 8 + }, + guides: { color: '#ffffff00' } + }, + xAxis: { + color: '#ffffff00', + title: { color: '#ffffff00' }, + label: { color: '#ffffff00' }, + interlacing: { color: '#ffffff00' }, + ticks: { color: '#ffffff00' } + }, + yAxis: { + color: '#ffffff00', + title: { color: '#ffffff00' }, + label: { color: '#ffffff00' }, + interlacing: { color: '#ffffff00' }, + ticks: { color: '#ffffff00' } + } + } + } + }, + '1500ms' + ) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/area.mjs b/test/integration/test_cases/web_content/presets/chart/area.mjs index e4ecc275c..97faca85c 100755 --- a/test/integration/test_cases/web_content/presets/chart/area.mjs +++ b/test/integration/test_cases/web_content/presets/chart/area.mjs @@ -1,15 +1,15 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.area({ - x: 'Year', - y: 'Value 5 (+/-)', - title: 'Area Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.area({ + x: 'Year', + y: 'Value 5 (+/-)', + title: 'Area Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/area_percentage.mjs b/test/integration/test_cases/web_content/presets/chart/area_percentage.mjs index 4a72ad08e..dff43d78b 100755 --- a/test/integration/test_cases/web_content/presets/chart/area_percentage.mjs +++ b/test/integration/test_cases/web_content/presets/chart/area_percentage.mjs @@ -1,16 +1,16 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.percentageArea({ - x: 'Year', - y: 'Value 2 (+)', - stackedBy: 'Country', - title: 'Percentage Area Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.percentageArea({ + x: 'Year', + y: 'Value 2 (+)', + stackedBy: 'Country', + title: 'Percentage Area Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/area_splitted.mjs b/test/integration/test_cases/web_content/presets/chart/area_splitted.mjs index 751b89f97..5acce0b67 100755 --- a/test/integration/test_cases/web_content/presets/chart/area_splitted.mjs +++ b/test/integration/test_cases/web_content/presets/chart/area_splitted.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.splittedArea({ - x: 'Year', - y: 'Value 2 (+)', - splittedBy: 'Country', - title: 'Splitted Area Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.splittedArea({ + x: 'Year', + y: 'Value 2 (+)', + splittedBy: 'Country', + title: 'Splitted Area Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/area_stacked.mjs b/test/integration/test_cases/web_content/presets/chart/area_stacked.mjs index ac393d35c..dfd975410 100755 --- a/test/integration/test_cases/web_content/presets/chart/area_stacked.mjs +++ b/test/integration/test_cases/web_content/presets/chart/area_stacked.mjs @@ -1,16 +1,16 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.stackedArea({ - x: 'Year', - y: 'Value 2 (+)', - stackedBy: 'Country', - title: 'Stacked Area Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.stackedArea({ + x: 'Year', + y: 'Value 2 (+)', + stackedBy: 'Country', + title: 'Stacked Area Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/bar.mjs b/test/integration/test_cases/web_content/presets/chart/bar.mjs index 474db0e9e..338ef14cd 100755 --- a/test/integration/test_cases/web_content/presets/chart/bar.mjs +++ b/test/integration/test_cases/web_content/presets/chart/bar.mjs @@ -1,15 +1,15 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.bar({ - x: 'Value 5 (+/-)', - y: 'Country', - title: 'Bar Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.bar({ + x: 'Value 5 (+/-)', + y: 'Country', + title: 'Bar Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/bar_grouped.mjs b/test/integration/test_cases/web_content/presets/chart/bar_grouped.mjs index 57ef9bcd0..a4d4d6486 100755 --- a/test/integration/test_cases/web_content/presets/chart/bar_grouped.mjs +++ b/test/integration/test_cases/web_content/presets/chart/bar_grouped.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.groupedBar({ - x: 'Value 5 (+/-)', - y: 'Country', - groupedBy: 'Joy factors', - title: 'Grouped Bar Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.groupedBar({ + x: 'Value 5 (+/-)', + y: 'Country', + groupedBy: 'Joy factors', + title: 'Grouped Bar Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/bar_percentage.mjs b/test/integration/test_cases/web_content/presets/chart/bar_percentage.mjs index 996019130..eeb7b9e54 100755 --- a/test/integration/test_cases/web_content/presets/chart/bar_percentage.mjs +++ b/test/integration/test_cases/web_content/presets/chart/bar_percentage.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.percentageBar({ - x: 'Value 2 (+)', - y: 'Country', - stackedBy: 'Joy factors', - title: 'Percentage Bar Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.percentageBar({ + x: 'Value 2 (+)', + y: 'Country', + stackedBy: 'Joy factors', + title: 'Percentage Bar Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/bar_radial.mjs b/test/integration/test_cases/web_content/presets/chart/bar_radial.mjs index 0b9491bd1..3b3233b9d 100755 --- a/test/integration/test_cases/web_content/presets/chart/bar_radial.mjs +++ b/test/integration/test_cases/web_content/presets/chart/bar_radial.mjs @@ -1,15 +1,15 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.radialBar({ - angle: 'Value 1 (+)', - radius: 'Country', - title: 'Radial Bar Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.radialBar({ + angle: 'Value 1 (+)', + radius: 'Country', + title: 'Radial Bar Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/bar_radial_stacked.mjs b/test/integration/test_cases/web_content/presets/chart/bar_radial_stacked.mjs index 9a8e00a15..e99020932 100755 --- a/test/integration/test_cases/web_content/presets/chart/bar_radial_stacked.mjs +++ b/test/integration/test_cases/web_content/presets/chart/bar_radial_stacked.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.radialStackedBar({ - angle: 'Value 2 (+)', - radius: 'Country', - stackedBy: 'Joy factors', - title: 'Radial Stacked Bar Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.radialStackedBar({ + angle: 'Value 2 (+)', + radius: 'Country', + stackedBy: 'Joy factors', + title: 'Radial Stacked Bar Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/bar_splitted.mjs b/test/integration/test_cases/web_content/presets/chart/bar_splitted.mjs index ecb713bcd..10ed98949 100755 --- a/test/integration/test_cases/web_content/presets/chart/bar_splitted.mjs +++ b/test/integration/test_cases/web_content/presets/chart/bar_splitted.mjs @@ -1,16 +1,16 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.splittedBar({ - x: 'Value 2 (+)', - y: 'Year', - splittedBy: 'Joy factors', - title: 'Splitted Bar Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.splittedBar({ + x: 'Value 2 (+)', + y: 'Year', + splittedBy: 'Joy factors', + title: 'Splitted Bar Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/bar_stacked.mjs b/test/integration/test_cases/web_content/presets/chart/bar_stacked.mjs index 10a90cf50..485c73f99 100755 --- a/test/integration/test_cases/web_content/presets/chart/bar_stacked.mjs +++ b/test/integration/test_cases/web_content/presets/chart/bar_stacked.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.stackedBar({ - x: 'Value 2 (+)', - y: 'Country', - stackedBy: 'Joy factors', - title: 'Stacked Bar Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.stackedBar({ + x: 'Value 2 (+)', + y: 'Country', + stackedBy: 'Joy factors', + title: 'Stacked Bar Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/bubble.mjs b/test/integration/test_cases/web_content/presets/chart/bubble.mjs index 74daa2e9f..ca8f49d56 100755 --- a/test/integration/test_cases/web_content/presets/chart/bubble.mjs +++ b/test/integration/test_cases/web_content/presets/chart/bubble.mjs @@ -1,15 +1,15 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.bubble({ - size: 'Value 5 (+/-)', - color: 'Country_code', - title: 'Bubble Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.bubble({ + size: 'Value 5 (+/-)', + color: 'Country_code', + title: 'Bubble Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/bubble_stacked.mjs b/test/integration/test_cases/web_content/presets/chart/bubble_stacked.mjs index d441145a8..adb526d27 100755 --- a/test/integration/test_cases/web_content/presets/chart/bubble_stacked.mjs +++ b/test/integration/test_cases/web_content/presets/chart/bubble_stacked.mjs @@ -1,16 +1,16 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.stackedBubble({ - size: 'Value 2 (+)', - color: 'Joy factors', - stackedBy: 'Country_code', - title: 'Stacked Bubble Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.stackedBubble({ + size: 'Value 2 (+)', + color: 'Joy factors', + stackedBy: 'Country_code', + title: 'Stacked Bubble Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/column.mjs b/test/integration/test_cases/web_content/presets/chart/column.mjs index 831900fcc..fdcdaf9e1 100755 --- a/test/integration/test_cases/web_content/presets/chart/column.mjs +++ b/test/integration/test_cases/web_content/presets/chart/column.mjs @@ -1,15 +1,15 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.column({ - x: 'Joy factors', - y: 'Value 2 (+)', - title: 'Column Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.column({ + x: 'Joy factors', + y: 'Value 2 (+)', + title: 'Column Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/column_grouped.mjs b/test/integration/test_cases/web_content/presets/chart/column_grouped.mjs index 2a65fdd2c..efdef694a 100755 --- a/test/integration/test_cases/web_content/presets/chart/column_grouped.mjs +++ b/test/integration/test_cases/web_content/presets/chart/column_grouped.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.groupedColumn({ - x: 'Country', - y: 'Value 5 (+/-)', - groupedBy: 'Joy factors', - title: 'Grouped Column Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.groupedColumn({ + x: 'Country', + y: 'Value 5 (+/-)', + groupedBy: 'Joy factors', + title: 'Grouped Column Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/column_percentage.mjs b/test/integration/test_cases/web_content/presets/chart/column_percentage.mjs index 4c81f3324..fdfb455a1 100755 --- a/test/integration/test_cases/web_content/presets/chart/column_percentage.mjs +++ b/test/integration/test_cases/web_content/presets/chart/column_percentage.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.percentageColumn({ - x: 'Country', - y: 'Value 2 (+)', - stackedBy: 'Joy factors', - title: 'Percentage Column Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.percentageColumn({ + x: 'Country', + y: 'Value 2 (+)', + stackedBy: 'Joy factors', + title: 'Percentage Column Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/column_polar.mjs b/test/integration/test_cases/web_content/presets/chart/column_polar.mjs index cfffd42a4..55df3a491 100755 --- a/test/integration/test_cases/web_content/presets/chart/column_polar.mjs +++ b/test/integration/test_cases/web_content/presets/chart/column_polar.mjs @@ -1,15 +1,15 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.polarColumn({ - angle: 'Joy factors', - radius: 'Value 2 (+)', - title: 'Polar Column Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.polarColumn({ + angle: 'Joy factors', + radius: 'Value 2 (+)', + title: 'Polar Column Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/column_polar_stacked.mjs b/test/integration/test_cases/web_content/presets/chart/column_polar_stacked.mjs index eaf979bc2..cfd4abee8 100755 --- a/test/integration/test_cases/web_content/presets/chart/column_polar_stacked.mjs +++ b/test/integration/test_cases/web_content/presets/chart/column_polar_stacked.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.polarStackedColumn({ - angle: 'Country', - radius: 'Value 2 (+)', - stackedBy: 'Joy factors', - title: 'Polar Stacked Column Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.polarStackedColumn({ + angle: 'Country', + radius: 'Value 2 (+)', + stackedBy: 'Joy factors', + title: 'Polar Stacked Column Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/column_splitted.mjs b/test/integration/test_cases/web_content/presets/chart/column_splitted.mjs index 104d9e9e7..e9fe13b31 100755 --- a/test/integration/test_cases/web_content/presets/chart/column_splitted.mjs +++ b/test/integration/test_cases/web_content/presets/chart/column_splitted.mjs @@ -1,16 +1,16 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.splittedColumn({ - x: 'Year', - y: 'Value 2 (+)', - splittedBy: 'Joy factors', - title: 'Splitted Column Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.splittedColumn({ + x: 'Year', + y: 'Value 2 (+)', + splittedBy: 'Joy factors', + title: 'Splitted Column Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/column_stacked.mjs b/test/integration/test_cases/web_content/presets/chart/column_stacked.mjs index 7b2a05053..62b727c73 100755 --- a/test/integration/test_cases/web_content/presets/chart/column_stacked.mjs +++ b/test/integration/test_cases/web_content/presets/chart/column_stacked.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.stackedColumn({ - x: 'Country', - y: 'Value 2 (+)', - stackedBy: 'Joy factors', - title: 'Stacked Column Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.stackedColumn({ + x: 'Country', + y: 'Value 2 (+)', + stackedBy: 'Joy factors', + title: 'Stacked Column Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/donut.mjs b/test/integration/test_cases/web_content/presets/chart/donut.mjs index 9f8d58ab1..2bd1f695e 100755 --- a/test/integration/test_cases/web_content/presets/chart/donut.mjs +++ b/test/integration/test_cases/web_content/presets/chart/donut.mjs @@ -1,15 +1,15 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.donut({ - angle: 'Value 2 (+)', - stackedBy: 'Joy factors', - title: 'Donut Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.donut({ + angle: 'Value 2 (+)', + stackedBy: 'Joy factors', + title: 'Donut Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/donut_nested.mjs b/test/integration/test_cases/web_content/presets/chart/donut_nested.mjs index dacd62e68..59a1dd69b 100755 --- a/test/integration/test_cases/web_content/presets/chart/donut_nested.mjs +++ b/test/integration/test_cases/web_content/presets/chart/donut_nested.mjs @@ -1,25 +1,25 @@ import { data_3 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_3, - config: chart.constructor.presets.nestedDonut({ - angle: 'Value 2 (+)', - stackedBy: 'Joy factors', - radius: 'Country', - title: 'Nested Donut Chart' - }), - style: { - plot: { - marker: { - rectangleSpacing: '0', - borderWidth: 1, - borderOpacity: 0 - } - } - } - }) + (chart) => + chart.animate({ + data: data_3, + config: chart.constructor.presets.nestedDonut({ + angle: 'Value 2 (+)', + stackedBy: 'Joy factors', + radius: 'Country', + title: 'Nested Donut Chart' + }), + style: { + plot: { + marker: { + rectangleSpacing: '0', + borderWidth: 1, + borderOpacity: 0 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/line.mjs b/test/integration/test_cases/web_content/presets/chart/line.mjs index da5d728d2..f2fd7e127 100755 --- a/test/integration/test_cases/web_content/presets/chart/line.mjs +++ b/test/integration/test_cases/web_content/presets/chart/line.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.line({ - x: 'Year', - y: 'Value 6 (+/-)', - dividedBy: 'Country', - title: 'Line Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.line({ + x: 'Year', + y: 'Value 6 (+/-)', + dividedBy: 'Country', + title: 'Line Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/line_polar.mjs b/test/integration/test_cases/web_content/presets/chart/line_polar.mjs index a2b4cc33b..96b33183c 100755 --- a/test/integration/test_cases/web_content/presets/chart/line_polar.mjs +++ b/test/integration/test_cases/web_content/presets/chart/line_polar.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.polarLine({ - angle: 'Year', - radius: 'Value 2 (+)', - dividedBy: 'Country', - title: 'Polar Line Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.polarLine({ + angle: 'Year', + radius: 'Value 2 (+)', + dividedBy: 'Country', + title: 'Polar Line Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/line_vertical.mjs b/test/integration/test_cases/web_content/presets/chart/line_vertical.mjs index 6d24810e8..f80f38c7f 100755 --- a/test/integration/test_cases/web_content/presets/chart/line_vertical.mjs +++ b/test/integration/test_cases/web_content/presets/chart/line_vertical.mjs @@ -1,16 +1,16 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.line({ - x: 'Value 6 (+/-)', - y: 'Year', - dividedBy: 'Country', - title: 'Vertical Line Chart' - }) - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.line({ + x: 'Value 6 (+/-)', + y: 'Year', + dividedBy: 'Country', + title: 'Vertical Line Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/lollipop.mjs b/test/integration/test_cases/web_content/presets/chart/lollipop.mjs index ef235fb3b..0012c9fbb 100755 --- a/test/integration/test_cases/web_content/presets/chart/lollipop.mjs +++ b/test/integration/test_cases/web_content/presets/chart/lollipop.mjs @@ -1,15 +1,15 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.lollipop({ - x: 'Year', - y: 'Value 1 (+)', - title: 'Lollipop Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.lollipop({ + x: 'Year', + y: 'Value 1 (+)', + title: 'Lollipop Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/marimekko.mjs b/test/integration/test_cases/web_content/presets/chart/marimekko.mjs index eba170c5b..b6fabbfac 100755 --- a/test/integration/test_cases/web_content/presets/chart/marimekko.mjs +++ b/test/integration/test_cases/web_content/presets/chart/marimekko.mjs @@ -1,17 +1,17 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, - config: chart.constructor.presets.marimekko({ - x: 'Value 2 (+)', - y: 'Value 3 (+)', - stackedBy: 'Joy factors', - groupedBy: 'Country', - title: 'Marimekko Chart' - }) - }) + (chart) => + chart.animate({ + data: data_4, + config: chart.constructor.presets.marimekko({ + x: 'Value 2 (+)', + y: 'Value 3 (+)', + stackedBy: 'Joy factors', + groupedBy: 'Country', + title: 'Marimekko Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/mekko_stacked.mjs b/test/integration/test_cases/web_content/presets/chart/mekko_stacked.mjs index 07152aa28..47deffdd1 100755 --- a/test/integration/test_cases/web_content/presets/chart/mekko_stacked.mjs +++ b/test/integration/test_cases/web_content/presets/chart/mekko_stacked.mjs @@ -1,17 +1,17 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, - config: chart.constructor.presets.mekko({ - x: 'Value 1 (+)', - y: 'Value 2 (+)', - stackedBy: 'Joy factors', - groupedBy: 'Country', - title: 'Stacked Mekko Chart' - }) - }) + (chart) => + chart.animate({ + data: data_4, + config: chart.constructor.presets.mekko({ + x: 'Value 1 (+)', + y: 'Value 2 (+)', + stackedBy: 'Joy factors', + groupedBy: 'Country', + title: 'Stacked Mekko Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/pie.mjs b/test/integration/test_cases/web_content/presets/chart/pie.mjs index 4cc025406..24bb12e86 100755 --- a/test/integration/test_cases/web_content/presets/chart/pie.mjs +++ b/test/integration/test_cases/web_content/presets/chart/pie.mjs @@ -1,15 +1,15 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.pie({ - angle: 'Value 2 (+)', - by: 'Joy factors', - title: 'Pie Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.pie({ + angle: 'Value 2 (+)', + by: 'Joy factors', + title: 'Pie Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/pie_variable_radius.mjs b/test/integration/test_cases/web_content/presets/chart/pie_variable_radius.mjs index 2cbfd185d..04e89a260 100755 --- a/test/integration/test_cases/web_content/presets/chart/pie_variable_radius.mjs +++ b/test/integration/test_cases/web_content/presets/chart/pie_variable_radius.mjs @@ -1,16 +1,16 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.variableRadiusPie({ - angle: 'Value 2 (+)', - radius: 'Value 1 (+)', - by: 'Joy factors', - title: 'Variable Radius Pie Chart' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.variableRadiusPie({ + angle: 'Value 2 (+)', + radius: 'Value 1 (+)', + by: 'Joy factors', + title: 'Variable Radius Pie Chart' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/chart/waterfall.mjs b/test/integration/test_cases/web_content/presets/chart/waterfall.mjs index caaa36267..984cfb551 100755 --- a/test/integration/test_cases/web_content/presets/chart/waterfall.mjs +++ b/test/integration/test_cases/web_content/presets/chart/waterfall.mjs @@ -1,27 +1,32 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Country === 'Belgium' - }), - config: chart.constructor.presets.waterfall({ - x: 'Year', - y: 'Value 5 (+/-)', - title: 'Waterfall Chart' - }), - style: { - plot: { - marker: { - colorGradient: ['#ff001b 0', '#ff001b 0.5', '#7e79e8 0.5', '#7e79e8 1'].join(), - label: { - position: 'top' - } - } - } - } - }) + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Country === 'Belgium' + }), + config: chart.constructor.presets.waterfall({ + x: 'Year', + y: 'Value 5 (+/-)', + title: 'Waterfall Chart' + }), + style: { + plot: { + marker: { + colorGradient: [ + '#ff001b 0', + '#ff001b 0.5', + '#7e79e8 0.5', + '#7e79e8 1' + ].join(), + label: { + position: 'top' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/graph/stream.mjs b/test/integration/test_cases/web_content/presets/graph/stream.mjs index b048584e6..a7582477c 100755 --- a/test/integration/test_cases/web_content/presets/graph/stream.mjs +++ b/test/integration/test_cases/web_content/presets/graph/stream.mjs @@ -1,22 +1,22 @@ import { data } from '../../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.stream({ - x: 'Year', - y: 'Revenue', - stackedBy: 'Format', - title: 'Stream Graph' - }), - style: { - plot: { - yAxis: { label: { numberScale: 'K, M, B, T' } }, - xAxis: { label: { angle: '-45deg' } } - } - } - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.stream({ + x: 'Year', + y: 'Revenue', + stackedBy: 'Format', + title: 'Stream Graph' + }), + style: { + plot: { + yAxis: { label: { numberScale: 'K, M, B, T' } }, + xAxis: { label: { angle: '-45deg' } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/graph/stream_vertical.mjs b/test/integration/test_cases/web_content/presets/graph/stream_vertical.mjs index f449438aa..81411a401 100755 --- a/test/integration/test_cases/web_content/presets/graph/stream_vertical.mjs +++ b/test/integration/test_cases/web_content/presets/graph/stream_vertical.mjs @@ -1,22 +1,22 @@ import { data } from '../../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.verticalStream({ - x: 'Revenue', - y: 'Year', - stackedBy: 'Format', - title: 'Vertical Stream Graph' - }), - style: { - plot: { - yAxis: { label: { numberScale: 'K, M, B, T' } }, - xAxis: { label: { angle: '-45deg' } } - } - } - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.verticalStream({ + x: 'Revenue', + y: 'Year', + stackedBy: 'Format', + title: 'Vertical Stream Graph' + }), + style: { + plot: { + yAxis: { label: { numberScale: 'K, M, B, T' } }, + xAxis: { label: { angle: '-45deg' } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/graph/violin.mjs b/test/integration/test_cases/web_content/presets/graph/violin.mjs index 5a0e17e6e..e92476d1d 100755 --- a/test/integration/test_cases/web_content/presets/graph/violin.mjs +++ b/test/integration/test_cases/web_content/presets/graph/violin.mjs @@ -1,22 +1,22 @@ import { data } from '../../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.violin({ - x: 'Year', - y: 'Revenue', - splittedBy: 'Format', - title: 'Violin Graph' - }), - style: { - plot: { - yAxis: { label: { numberScale: 'K, M, B, T' } }, - xAxis: { label: { angle: '-45deg' } } - } - } - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.violin({ + x: 'Year', + y: 'Revenue', + splittedBy: 'Format', + title: 'Violin Graph' + }), + style: { + plot: { + yAxis: { label: { numberScale: 'K, M, B, T' } }, + xAxis: { label: { angle: '-45deg' } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/graph/violin_vertical.mjs b/test/integration/test_cases/web_content/presets/graph/violin_vertical.mjs index 867f75121..67427879a 100755 --- a/test/integration/test_cases/web_content/presets/graph/violin_vertical.mjs +++ b/test/integration/test_cases/web_content/presets/graph/violin_vertical.mjs @@ -1,22 +1,22 @@ import { data } from '../../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.verticalViolin({ - x: 'Revenue', - y: 'Year', - splittedBy: 'Format', - title: 'Vertical Violin Graph' - }), - style: { - plot: { - xAxis: { interlacing: { color: '#ffffff00' } }, - yAxis: { label: { numberScale: 'K, M, B, T' } } - } - } - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.verticalViolin({ + x: 'Revenue', + y: 'Year', + splittedBy: 'Format', + title: 'Vertical Violin Graph' + }), + style: { + plot: { + xAxis: { interlacing: { color: '#ffffff00' } }, + yAxis: { label: { numberScale: 'K, M, B, T' } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/heatmap.mjs b/test/integration/test_cases/web_content/presets/heatmap.mjs index 82c56afbd..87696bc9e 100755 --- a/test/integration/test_cases/web_content/presets/heatmap.mjs +++ b/test/integration/test_cases/web_content/presets/heatmap.mjs @@ -1,23 +1,23 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: chart.constructor.presets.heatmap({ - x: 'Year', - y: 'Country_code', - lightness: 'Value 3 (+)', - title: 'Heatmap' - }), - style: { - plot: { - marker: { - rectangleSpacing: 0 - } - } - } - }) + (chart) => + chart.animate({ + data: data_6, + config: chart.constructor.presets.heatmap({ + x: 'Year', + y: 'Country_code', + lightness: 'Value 3 (+)', + title: 'Heatmap' + }), + style: { + plot: { + marker: { + rectangleSpacing: 0 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/plot/bubble.mjs b/test/integration/test_cases/web_content/presets/plot/bubble.mjs index 0b8ee0d77..9026edb10 100755 --- a/test/integration/test_cases/web_content/presets/plot/bubble.mjs +++ b/test/integration/test_cases/web_content/presets/plot/bubble.mjs @@ -1,18 +1,18 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.bubbleplot({ - x: 'Value 4 (+/-)', - y: 'Value 5 (+/-)', - color: 'Joy factors', - dividedBy: 'Country', - size: 'Value 3 (+)', - title: 'Bubble Plot' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.bubbleplot({ + x: 'Value 4 (+/-)', + y: 'Value 5 (+/-)', + color: 'Joy factors', + dividedBy: 'Country', + size: 'Value 3 (+)', + title: 'Bubble Plot' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/plot/scatter.mjs b/test/integration/test_cases/web_content/presets/plot/scatter.mjs index e45c7efa0..b4b389f6d 100755 --- a/test/integration/test_cases/web_content/presets/plot/scatter.mjs +++ b/test/integration/test_cases/web_content/presets/plot/scatter.mjs @@ -1,16 +1,16 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.scatter({ - x: 'Value 6 (+/-)', - y: 'Value 5 (+/-)', - dividedBy: 'Year', - title: 'Scatter Plot' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.scatter({ + x: 'Value 6 (+/-)', + y: 'Value 5 (+/-)', + dividedBy: 'Year', + title: 'Scatter Plot' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/plot/scatter_polar.mjs b/test/integration/test_cases/web_content/presets/plot/scatter_polar.mjs index 1f6661f0b..1126b48cf 100755 --- a/test/integration/test_cases/web_content/presets/plot/scatter_polar.mjs +++ b/test/integration/test_cases/web_content/presets/plot/scatter_polar.mjs @@ -1,16 +1,16 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.polarScatter({ - angle: 'Value 3 (+)', - radius: 'Value 2 (+)', - dividedBy: 'Country', - title: 'Polar Scatter Plot' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.polarScatter({ + angle: 'Value 3 (+)', + radius: 'Value 2 (+)', + dividedBy: 'Country', + title: 'Polar Scatter Plot' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/treemap.mjs b/test/integration/test_cases/web_content/presets/treemap.mjs index 647f5ab1b..9dfe846e2 100755 --- a/test/integration/test_cases/web_content/presets/treemap.mjs +++ b/test/integration/test_cases/web_content/presets/treemap.mjs @@ -1,15 +1,15 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.treemap({ - size: 'Value 2 (+)', - color: 'Country_code', - title: 'Treemap' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.treemap({ + size: 'Value 2 (+)', + color: 'Country_code', + title: 'Treemap' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets/treemap_stacked.mjs b/test/integration/test_cases/web_content/presets/treemap_stacked.mjs index 7a4bdbb72..6756d092e 100755 --- a/test/integration/test_cases/web_content/presets/treemap_stacked.mjs +++ b/test/integration/test_cases/web_content/presets/treemap_stacked.mjs @@ -1,16 +1,16 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: chart.constructor.presets.stackedTreemap({ - size: 'Value 2 (+)', - color: 'Joy factors', - title: 'Stacked Treemap', - dividedBy: 'Country_code' - }) - }) + (chart) => + chart.animate({ + data, + config: chart.constructor.presets.stackedTreemap({ + size: 'Value 2 (+)', + color: 'Joy factors', + title: 'Stacked Treemap', + dividedBy: 'Country_code' + }) + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets_config/chart/bar_radial.mjs b/test/integration/test_cases/web_content/presets_config/chart/bar_radial.mjs index 4a73ef4ed..546b385dd 100755 --- a/test/integration/test_cases/web_content/presets_config/chart/bar_radial.mjs +++ b/test/integration/test_cases/web_content/presets_config/chart/bar_radial.mjs @@ -1,27 +1,27 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' - }), - config: { - channels: { - y: { set: 'Country', range: { min: '-50%' } }, - x: 'Value 1 (+)', - label: 'Value 1 (+)' - }, - title: 'Radial Bar Chart', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' + }), + config: { + channels: { + y: { set: 'Country', range: { min: '-50%' } }, + x: 'Value 1 (+)', + label: 'Value 1 (+)' + }, + title: 'Radial Bar Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets_config/chart/bar_radial_stacked.mjs b/test/integration/test_cases/web_content/presets_config/chart/bar_radial_stacked.mjs index 737fd18bd..955e7d7dc 100755 --- a/test/integration/test_cases/web_content/presets_config/chart/bar_radial_stacked.mjs +++ b/test/integration/test_cases/web_content/presets_config/chart/bar_radial_stacked.mjs @@ -1,28 +1,28 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' - }), - config: { - channels: { - y: { set: 'Country', range: { min: '-50%' } }, - x: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Radial Stacked Bar Chart', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' + }), + config: { + channels: { + y: { set: 'Country', range: { min: '-50%' } }, + x: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Radial Stacked Bar Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets_config/chart/bar_stacked.mjs b/test/integration/test_cases/web_content/presets_config/chart/bar_stacked.mjs index 4a4ad7e62..4d0e93f6b 100755 --- a/test/integration/test_cases/web_content/presets_config/chart/bar_stacked.mjs +++ b/test/integration/test_cases/web_content/presets_config/chart/bar_stacked.mjs @@ -1,30 +1,30 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' - }), - config: { - channels: { - y: 'Country', - x: { - set: ['Joy factors', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Stacked Bar Chart' - } - }) + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' + }), + config: { + channels: { + y: 'Country', + x: { + set: ['Joy factors', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Stacked Bar Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets_config/chart/bubble_stacked.mjs b/test/integration/test_cases/web_content/presets_config/chart/bubble_stacked.mjs index 088aa3637..651ce2985 100755 --- a/test/integration/test_cases/web_content/presets_config/chart/bubble_stacked.mjs +++ b/test/integration/test_cases/web_content/presets_config/chart/bubble_stacked.mjs @@ -1,18 +1,18 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: ['Country_code', 'Value 2 (+)'] - }, - title: 'Stacked Bubble Chart', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: ['Country_code', 'Value 2 (+)'] + }, + title: 'Stacked Bubble Chart', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets_config/chart/column_polar.mjs b/test/integration/test_cases/web_content/presets_config/chart/column_polar.mjs index c8b2bcf3c..5ee662208 100755 --- a/test/integration/test_cases/web_content/presets_config/chart/column_polar.mjs +++ b/test/integration/test_cases/web_content/presets_config/chart/column_polar.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Joy factors', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Polar Column Chart', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Joy factors', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Polar Column Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets_config/chart/column_polar_stacked.mjs b/test/integration/test_cases/web_content/presets_config/chart/column_polar_stacked.mjs index 6407f5e22..1f35651ce 100755 --- a/test/integration/test_cases/web_content/presets_config/chart/column_polar_stacked.mjs +++ b/test/integration/test_cases/web_content/presets_config/chart/column_polar_stacked.mjs @@ -1,27 +1,27 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' - }), - config: { - channels: { - x: 'Country', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Polar Stacked Column Chart', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' + }), + config: { + channels: { + x: 'Country', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Polar Stacked Column Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets_config/chart/column_stacked.mjs b/test/integration/test_cases/web_content/presets_config/chart/column_stacked.mjs index 5d8863751..2b683aaef 100755 --- a/test/integration/test_cases/web_content/presets_config/chart/column_stacked.mjs +++ b/test/integration/test_cases/web_content/presets_config/chart/column_stacked.mjs @@ -1,27 +1,27 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' - }), - config: { - channels: { - x: 'Country', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Stacked Column Chart' - } - }) + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' + }), + config: { + channels: { + x: 'Country', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Stacked Column Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets_config/chart/pie_variable_radius.mjs b/test/integration/test_cases/web_content/presets_config/chart/pie_variable_radius.mjs index 53208fcd2..bb6027795 100755 --- a/test/integration/test_cases/web_content/presets_config/chart/pie_variable_radius.mjs +++ b/test/integration/test_cases/web_content/presets_config/chart/pie_variable_radius.mjs @@ -1,20 +1,20 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - y: 'Value 1 (+)', - color: 'Joy factors', - label: 'Value 1 (+)' - }, - title: 'Variable Radius Pie Chart', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + y: 'Value 1 (+)', + color: 'Joy factors', + label: 'Value 1 (+)' + }, + title: 'Variable Radius Pie Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/presets_config/treemap.mjs b/test/integration/test_cases/web_content/presets_config/treemap.mjs index 259486362..7238870ff 100755 --- a/test/integration/test_cases/web_content/presets_config/treemap.mjs +++ b/test/integration/test_cases/web_content/presets_config/treemap.mjs @@ -1,18 +1,18 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Country_code', - size: ['Value 2 (+)', 'Country_code'], - label: 'Country_code' - }, - title: 'Treemap' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Country_code', + size: ['Value 2 (+)', 'Country_code'], + label: 'Country_code' + }, + title: 'Treemap' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/area.mjs b/test/integration/test_cases/web_content/static/chart/area.mjs index 8e94b6d9e..fbc89a8e6 100755 --- a/test/integration/test_cases/web_content/static/chart/area.mjs +++ b/test/integration/test_cases/web_content/static/chart/area.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - label: 'Value 5 (+/-)' - }, - title: 'Area Chart', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + label: 'Value 5 (+/-)' + }, + title: 'Area Chart', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/area_polar.mjs b/test/integration/test_cases/web_content/static/chart/area_polar.mjs index e391a58ed..9e18c9765 100755 --- a/test/integration/test_cases/web_content/static/chart/area_polar.mjs +++ b/test/integration/test_cases/web_content/static/chart/area_polar.mjs @@ -1,35 +1,35 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: { - set: ['Value 2 (+)'], - /* Set enough space for + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: { + set: ['Value 2 (+)'], + /* Set enough space for tangential labels. */ - range: { max: '130%' } - }, - label: 'Value 2 (+)' - }, - title: 'Polar Area Chart', - geometry: 'area', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential', - angle: 3.14 * -0.5 - } - } - } - } - }) + range: { max: '130%' } + }, + label: 'Value 2 (+)' + }, + title: 'Polar Area Chart', + geometry: 'area', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential', + angle: 3.14 * -0.5 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/area_stacked.mjs b/test/integration/test_cases/web_content/static/chart/area_stacked.mjs index c96af8ee9..60eb45346 100755 --- a/test/integration/test_cases/web_content/static/chart/area_stacked.mjs +++ b/test/integration/test_cases/web_content/static/chart/area_stacked.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/bar.mjs b/test/integration/test_cases/web_content/static/chart/bar.mjs index 1497afc67..850c31375 100755 --- a/test/integration/test_cases/web_content/static/chart/bar.mjs +++ b/test/integration/test_cases/web_content/static/chart/bar.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Country', - color: 'Country', - label: 'Value 5 (+/-)' - }, - title: 'Bar Chart' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Country', + color: 'Country', + label: 'Value 5 (+/-)' + }, + title: 'Bar Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/bar_radial.mjs b/test/integration/test_cases/web_content/static/chart/bar_radial.mjs index bf1d33559..36adc21ac 100755 --- a/test/integration/test_cases/web_content/static/chart/bar_radial.mjs +++ b/test/integration/test_cases/web_content/static/chart/bar_radial.mjs @@ -1,25 +1,25 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 2 (+)', - y: { - set: ['Joy factors'], - /* Setting the radius of the empty circle + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 2 (+)', + y: { + set: ['Joy factors'], + /* Setting the radius of the empty circle in the centre. */ - range: { min: '-30%' } - }, - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Radial Bar Chart', - coordSystem: 'polar' - } - }) + range: { min: '-30%' } + }, + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Radial Bar Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/bar_stacked_radial.mjs b/test/integration/test_cases/web_content/static/chart/bar_stacked_radial.mjs index 7c7007a24..00b08320d 100755 --- a/test/integration/test_cases/web_content/static/chart/bar_stacked_radial.mjs +++ b/test/integration/test_cases/web_content/static/chart/bar_stacked_radial.mjs @@ -1,28 +1,30 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - ['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'].includes(record.Year) - }), - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: { - set: ['Year'], - /* Setting the radius of the empty circle + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + ['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20'].includes( + record.Year + ) + }), + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: { + set: ['Year'], + /* Setting the radius of the empty circle in the centre. */ - range: { min: '-20%' } - }, - color: 'Country', - lightness: 'Year' - }, - title: 'Stacked Radial Bar Chart', - coordSystem: 'polar' - } - }) + range: { min: '-20%' } + }, + color: 'Country', + lightness: 'Year' + }, + title: 'Stacked Radial Bar Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/bubble.mjs b/test/integration/test_cases/web_content/static/chart/bubble.mjs index 962b4ab57..08d8de639 100755 --- a/test/integration/test_cases/web_content/static/chart/bubble.mjs +++ b/test/integration/test_cases/web_content/static/chart/bubble.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Country_code', - label: 'Country_code', - size: 'Value 5 (+/-)' - }, - title: 'Bubble Chart', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Country_code', + label: 'Country_code', + size: 'Value 5 (+/-)' + }, + title: 'Bubble Chart', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/bubble_stacked.mjs b/test/integration/test_cases/web_content/static/chart/bubble_stacked.mjs index bb8e7f98c..3ce92594c 100755 --- a/test/integration/test_cases/web_content/static/chart/bubble_stacked.mjs +++ b/test/integration/test_cases/web_content/static/chart/bubble_stacked.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: ['Country_code', 'Value 2 (+)'], - label: 'Country_code' - }, - title: 'Stacked Bubble Chart', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: ['Country_code', 'Value 2 (+)'], + label: 'Country_code' + }, + title: 'Stacked Bubble Chart', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/column.mjs b/test/integration/test_cases/web_content/static/chart/column.mjs index cc616f936..69c3dd0ac 100755 --- a/test/integration/test_cases/web_content/static/chart/column.mjs +++ b/test/integration/test_cases/web_content/static/chart/column.mjs @@ -1,18 +1,18 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Joy factors', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Column Chart' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Joy factors', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Column Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/column_grouped.mjs b/test/integration/test_cases/web_content/static/chart/column_grouped.mjs index 6eaaba428..9a33b580c 100755 --- a/test/integration/test_cases/web_content/static/chart/column_grouped.mjs +++ b/test/integration/test_cases/web_content/static/chart/column_grouped.mjs @@ -1,31 +1,31 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Country'], - y: 'Value 5 (+/-)', - color: 'Joy factors', - label: 'Value 5 (+/-)' - }, - title: 'Grouped Column Chart' - }, - // Labels have to be rotated on this chart. - style: { - plot: { - marker: { - label: { - fontSize: 6, - orientation: 'vertical', - angle: 3.14 * -1 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Country'], + y: 'Value 5 (+/-)', + color: 'Joy factors', + label: 'Value 5 (+/-)' + }, + title: 'Grouped Column Chart' + }, + // Labels have to be rotated on this chart. + style: { + plot: { + marker: { + label: { + fontSize: 6, + orientation: 'vertical', + angle: 3.14 * -1 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/column_single_stacked.mjs b/test/integration/test_cases/web_content/static/chart/column_single_stacked.mjs index b9b3ca4a4..dd9ab0992 100755 --- a/test/integration/test_cases/web_content/static/chart/column_single_stacked.mjs +++ b/test/integration/test_cases/web_content/static/chart/column_single_stacked.mjs @@ -1,18 +1,18 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Single Stacked Column Chart' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Single Stacked Column Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/column_stacked.mjs b/test/integration/test_cases/web_content/static/chart/column_stacked.mjs index c6324da11..08574213e 100755 --- a/test/integration/test_cases/web_content/static/chart/column_stacked.mjs +++ b/test/integration/test_cases/web_content/static/chart/column_stacked.mjs @@ -1,36 +1,36 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Country', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Stacked Column Chart' - }, - // Labels have to be rotated on this chart. - style: { - plot: { - xAxis: { - label: { - angle: 2.3 - } - }, - marker: { - label: { - fontSize: 7, - orientation: 'vertical', - angle: 3.14 * -1 - } - } - } - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Country', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Stacked Column Chart' + }, + // Labels have to be rotated on this chart. + style: { + plot: { + xAxis: { + label: { + angle: 2.3 + } + }, + marker: { + label: { + fontSize: 7, + orientation: 'vertical', + angle: 3.14 * -1 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/coxcomb.mjs b/test/integration/test_cases/web_content/static/chart/coxcomb.mjs index 4d7317812..6e91bb257 100755 --- a/test/integration/test_cases/web_content/static/chart/coxcomb.mjs +++ b/test/integration/test_cases/web_content/static/chart/coxcomb.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Coxcomb Chart', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Coxcomb Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/donut.mjs b/test/integration/test_cases/web_content/static/chart/donut.mjs index 69ceeecb7..356e0f113 100755 --- a/test/integration/test_cases/web_content/static/chart/donut.mjs +++ b/test/integration/test_cases/web_content/static/chart/donut.mjs @@ -1,22 +1,22 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - /* Setting the radius of the empty circle + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + /* Setting the radius of the empty circle in the centre. */ - y: { range: { min: '-200%' } }, - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Donut Chart', - coordSystem: 'polar' - } - }) + y: { range: { min: '-200%' } }, + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Donut Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/line.mjs b/test/integration/test_cases/web_content/static/chart/line.mjs index 2b41c037f..d5c8d3300 100755 --- a/test/integration/test_cases/web_content/static/chart/line.mjs +++ b/test/integration/test_cases/web_content/static/chart/line.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - color: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + color: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/line_polar.mjs b/test/integration/test_cases/web_content/static/chart/line_polar.mjs index 8c083a581..f2a41d902 100755 --- a/test/integration/test_cases/web_content/static/chart/line_polar.mjs +++ b/test/integration/test_cases/web_content/static/chart/line_polar.mjs @@ -1,20 +1,20 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Polar Line Chart', - geometry: 'line', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Polar Line Chart', + geometry: 'line', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/line_single.mjs b/test/integration/test_cases/web_content/static/chart/line_single.mjs index fd0104763..28a190178 100755 --- a/test/integration/test_cases/web_content/static/chart/line_single.mjs +++ b/test/integration/test_cases/web_content/static/chart/line_single.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - label: 'Value 5 (+/-)' - }, - title: 'Single Line Chart', - geometry: 'line' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + label: 'Value 5 (+/-)' + }, + title: 'Single Line Chart', + geometry: 'line' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/line_single_polar.mjs b/test/integration/test_cases/web_content/static/chart/line_single_polar.mjs index dce4bef19..a4c058edd 100755 --- a/test/integration/test_cases/web_content/static/chart/line_single_polar.mjs +++ b/test/integration/test_cases/web_content/static/chart/line_single_polar.mjs @@ -1,35 +1,35 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: { - set: ['Value 2 (+)'], - /* Set enough space for + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: { + set: ['Value 2 (+)'], + /* Set enough space for tangential labels. */ - range: { max: '130%' } - }, - label: 'Value 2 (+)' - }, - title: 'Single Polar Line Chart', - geometry: 'line', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - label: { - orientation: 'tangential', - angle: 3.14 * -0.5 - } - } - } - } - }) + range: { max: '130%' } + }, + label: 'Value 2 (+)' + }, + title: 'Single Polar Line Chart', + geometry: 'line', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + label: { + orientation: 'tangential', + angle: 3.14 * -0.5 + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/marimekko.mjs b/test/integration/test_cases/web_content/static/chart/marimekko.mjs index ac3d44b81..71f082336 100755 --- a/test/integration/test_cases/web_content/static/chart/marimekko.mjs +++ b/test/integration/test_cases/web_content/static/chart/marimekko.mjs @@ -1,31 +1,31 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: ['Joy factors', 'Value 3 (+)'], - color: 'Joy factors', - label: ['Country', 'Value 2 (+)'] - }, - title: 'Marimekko Chart', - align: 'stretch', - orientation: 'horizontal' - }, - style: { - plot: { - marker: { - label: { - format: 'dimensionsFirst', - fontSize: '0.7em' - } - } - } - } - }) + (chart) => + chart.animate({ + data: data_4, + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: ['Joy factors', 'Value 3 (+)'], + color: 'Joy factors', + label: ['Country', 'Value 2 (+)'] + }, + title: 'Marimekko Chart', + align: 'stretch', + orientation: 'horizontal' + }, + style: { + plot: { + marker: { + label: { + format: 'dimensionsFirst', + fontSize: '0.7em' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/mekko.mjs b/test/integration/test_cases/web_content/static/chart/mekko.mjs index 21e74d6f2..9aed1029a 100755 --- a/test/integration/test_cases/web_content/static/chart/mekko.mjs +++ b/test/integration/test_cases/web_content/static/chart/mekko.mjs @@ -1,19 +1,19 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: { set: ['Value 1 (+)'], range: { max: '110%' } }, - color: 'Country', - label: ['Value 2 (+)', 'Country'] - }, - title: 'Mekko Chart' - } - }) + (chart) => + chart.animate({ + data: data_4, + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: { set: ['Value 1 (+)'], range: { max: '110%' } }, + color: 'Country', + label: ['Value 2 (+)', 'Country'] + }, + title: 'Mekko Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/mekko_stacked.mjs b/test/integration/test_cases/web_content/static/chart/mekko_stacked.mjs index f99627330..651969fee 100755 --- a/test/integration/test_cases/web_content/static/chart/mekko_stacked.mjs +++ b/test/integration/test_cases/web_content/static/chart/mekko_stacked.mjs @@ -1,23 +1,23 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: { - set: ['Joy factors', 'Value 3 (+)'], - range: { max: '110%' } - }, - color: 'Joy factors', - label: ['Value 2 (+)', 'Country'] - }, - title: 'Stacked Mekko Chart', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + data: data_4, + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: { + set: ['Joy factors', 'Value 3 (+)'], + range: { max: '110%' } + }, + color: 'Joy factors', + label: ['Value 2 (+)', 'Country'] + }, + title: 'Stacked Mekko Chart', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/pie.mjs b/test/integration/test_cases/web_content/static/chart/pie.mjs index 1c78a2e56..fc113c19a 100755 --- a/test/integration/test_cases/web_content/static/chart/pie.mjs +++ b/test/integration/test_cases/web_content/static/chart/pie.mjs @@ -1,19 +1,19 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Pie Chart', - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Pie Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/chart/waterfall.mjs b/test/integration/test_cases/web_content/static/chart/waterfall.mjs index d821bbd48..76678879f 100755 --- a/test/integration/test_cases/web_content/static/chart/waterfall.mjs +++ b/test/integration/test_cases/web_content/static/chart/waterfall.mjs @@ -1,30 +1,30 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - /* Adding the same dimension (Year) on both axes is + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + /* Adding the same dimension (Year) on both axes is how you create a Waterfall Chart in Vizzu. */ - y: ['Year', 'Value 5 (+/-)'], - label: 'Value 5 (+/-)' - }, - title: 'Waterfall Chart', - legend: null - }, - style: { - plot: { - marker: { - label: { - position: 'top' - } - } - } - } - }) + y: ['Year', 'Value 5 (+/-)'], + label: 'Value 5 (+/-)' + }, + title: 'Waterfall Chart', + legend: null + }, + style: { + plot: { + marker: { + label: { + position: 'top' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/graph/stream_stacked.mjs b/test/integration/test_cases/web_content/static/graph/stream_stacked.mjs index 20f59a0ca..854e4a253 100755 --- a/test/integration/test_cases/web_content/static/graph/stream_stacked.mjs +++ b/test/integration/test_cases/web_content/static/graph/stream_stacked.mjs @@ -1,23 +1,25 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - ['AT', 'BE', 'DE', 'DK', 'ES', 'FI', 'FR', 'IT', 'NL', 'SE'].includes(record.Country_code) - }), - config: { - channels: { - x: ['Year', 'Joy factors'], - y: ['Value 3 (+)', 'Country_code'], - color: 'Country_code' - }, - title: 'Stacked Stream Graph', - geometry: 'area', - align: 'center' - } - }) + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + ['AT', 'BE', 'DE', 'DK', 'ES', 'FI', 'FR', 'IT', 'NL', 'SE'].includes( + record.Country_code + ) + }), + config: { + channels: { + x: ['Year', 'Joy factors'], + y: ['Value 3 (+)', 'Country_code'], + color: 'Country_code' + }, + title: 'Stacked Stream Graph', + geometry: 'area', + align: 'center' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/histogram.mjs b/test/integration/test_cases/web_content/static/histogram.mjs index 2c2a7d559..b3f243c37 100755 --- a/test/integration/test_cases/web_content/static/histogram.mjs +++ b/test/integration/test_cases/web_content/static/histogram.mjs @@ -1,24 +1,24 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - label: 'Value 5 (+/-)' - }, - title: 'Histogram', - align: 'none' - }, - /* Spaces between markers should be + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + label: 'Value 5 (+/-)' + }, + title: 'Histogram', + align: 'none' + }, + /* Spaces between markers should be eliminated on this chart. */ - style: { - 'plot.marker.rectangleSpacing': 0.07 - } - }) + style: { + 'plot.marker.rectangleSpacing': 0.07 + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/plot/bubble.mjs b/test/integration/test_cases/web_content/static/plot/bubble.mjs index 1f6a3f572..6778c36b3 100755 --- a/test/integration/test_cases/web_content/static/plot/bubble.mjs +++ b/test/integration/test_cases/web_content/static/plot/bubble.mjs @@ -1,21 +1,21 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 6 (+/-)', - y: 'Value 5 (+/-)', - color: 'Country', - size: 'Value 4 (+/-)', - label: 'Value 5 (+/-)' - }, - title: 'Bubble Plot', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 6 (+/-)', + y: 'Value 5 (+/-)', + color: 'Country', + size: 'Value 4 (+/-)', + label: 'Value 5 (+/-)' + }, + title: 'Bubble Plot', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/plot/dot.mjs b/test/integration/test_cases/web_content/static/plot/dot.mjs index 16c78c279..97f9ded80 100755 --- a/test/integration/test_cases/web_content/static/plot/dot.mjs +++ b/test/integration/test_cases/web_content/static/plot/dot.mjs @@ -1,17 +1,17 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Year', 'Value 5 (+/-)'] - }, - title: 'Dot Plot', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Year', 'Value 5 (+/-)'] + }, + title: 'Dot Plot', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/plot/scatter.mjs b/test/integration/test_cases/web_content/static/plot/scatter.mjs index 612fd1a77..b1ea58a7d 100755 --- a/test/integration/test_cases/web_content/static/plot/scatter.mjs +++ b/test/integration/test_cases/web_content/static/plot/scatter.mjs @@ -1,20 +1,20 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 6 (+/-)', - y: 'Value 5 (+/-)', - noop: 'Year', - label: 'Year' - }, - title: 'Scatter Plot', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 6 (+/-)', + y: 'Value 5 (+/-)', + noop: 'Year', + label: 'Year' + }, + title: 'Scatter Plot', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/treemap.mjs b/test/integration/test_cases/web_content/static/treemap.mjs index 458230df1..6b886baf7 100755 --- a/test/integration/test_cases/web_content/static/treemap.mjs +++ b/test/integration/test_cases/web_content/static/treemap.mjs @@ -1,17 +1,17 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - label: 'Country_code', - size: 'Value 2 (+)' - }, - title: 'Treemap' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + label: 'Country_code', + size: 'Value 2 (+)' + }, + title: 'Treemap' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content/static/treemap_stacked.mjs b/test/integration/test_cases/web_content/static/treemap_stacked.mjs index f4065adbb..e26146ad5 100755 --- a/test/integration/test_cases/web_content/static/treemap_stacked.mjs +++ b/test/integration/test_cases/web_content/static/treemap_stacked.mjs @@ -1,19 +1,19 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: ['Value 2 (+)', 'Country_code'], - label: 'Country_code', - lightness: 'Value 2 (+)' - }, - title: 'Stacked Treemap' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: ['Value 2 (+)', 'Country_code'], + label: 'Country_code', + lightness: 'Value 2 (+)' + }, + title: 'Stacked Treemap' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs b/test/integration/test_cases/web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs index a842c49b4..be11e9d85 100755 --- a/test/integration/test_cases/web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs +++ b/test/integration/test_cases/web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs @@ -1,48 +1,48 @@ import { data } from '../../../test_data/infinite_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Value 1', 'Joy factors'], - color: 'Joy factors', - label: 'Value 1' - }, - title: 'Pie Chart', - coordSystem: 'polar' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Value 1', 'Joy factors'], + color: 'Joy factors', + label: 'Value 1' + }, + title: 'Pie Chart', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: ['Value 1', 'Joy factors', 'Region', 'Country code'], - label: null - } - } - }, - '500ms' - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: ['Value 1', 'Joy factors', 'Region', 'Country code'], + label: null + } + } + }, + '500ms' + ), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 1', 'Joy factors', 'Region', 'Country code'], - y: { - set: 'Value 3', - /* Setting the radius of the empty circle + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 1', 'Joy factors', 'Region', 'Country code'], + y: { + set: 'Value 3', + /* Setting the radius of the empty circle in the centre. */ - range: { min: '-60%' } - } - }, - title: 'Coxcomb Chart' - } - }) + range: { min: '-60%' } + } + }, + title: 'Coxcomb Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con.mjs b/test/integration/test_cases/web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con.mjs index 57c75d9ee..3bcd132dd 100755 --- a/test/integration/test_cases/web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con.mjs +++ b/test/integration/test_cases/web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con.mjs @@ -1,60 +1,60 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Country === 'Belgium' - }), - config: { - channels: { - x: 'Year', - y: ['Year', 'Value 5 (+/-)'], - color: { - set: ['Value 5 (+/-)'], - /* Setting the range of the colorGradient + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Country === 'Belgium' + }), + config: { + channels: { + x: 'Year', + y: ['Year', 'Value 5 (+/-)'], + color: { + set: ['Value 5 (+/-)'], + /* Setting the range of the colorGradient symmetrically so that the color changes at 0 */ - range: { - min: '-45', - max: '45' - } - }, - noop: 'Country', - label: 'Value 5 (+/-)' - }, - title: 'Waterfall Chart', - legend: 'color' - }, - style: { - plot: { - marker: { - /* Setting the colors used for the measure + range: { + min: '-45', + max: '45' + } + }, + noop: 'Country', + label: 'Value 5 (+/-)' + }, + title: 'Waterfall Chart', + legend: 'color' + }, + style: { + plot: { + marker: { + /* Setting the colors used for the measure on the color channel */ - colorGradient: [ - '#3d51b8 0', - '#6389ec 0.15', - '#9fbffa 0.35', - '#d5d7d9 0.5', - '#f4b096 0.65', - '#e36c56 0.85', - '#ac1727 1' - ].join(), - label: { - position: 'top' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 5 (+/-)' - }, - title: 'Column Chart' - } - }) + colorGradient: [ + '#3d51b8 0', + '#6389ec 0.15', + '#9fbffa 0.35', + '#d5d7d9 0.5', + '#f4b096 0.65', + '#e36c56 0.85', + '#ac1727 1' + ].join(), + label: { + position: 'top' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 5 (+/-)' + }, + title: 'Column Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/composition_percentage_area_stream_3dis_1con.mjs b/test/integration/test_cases/web_content_removed/animated/composition_percentage_area_stream_3dis_1con.mjs index 0cf0fd7f9..afbec26db 100755 --- a/test/integration/test_cases/web_content_removed/animated/composition_percentage_area_stream_3dis_1con.mjs +++ b/test/integration/test_cases/web_content_removed/animated/composition_percentage_area_stream_3dis_1con.mjs @@ -1,45 +1,45 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - title: '100% Stacked Area Chart', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + title: '100% Stacked Area Chart', + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - /* Making the chart elements fill the whole of the y-axis + (chart) => + chart.animate({ + config: { + channels: { + y: { + /* Making the chart elements fill the whole of the y-axis as the default value is now 110% */ - range: { - max: '100%' - } - } - }, - title: 'Split Area Chart', - align: 'min', - split: true - } - }) + range: { + max: '100%' + } + } + }, + title: 'Split Area Chart', + align: 'min', + split: true + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_3dis_1con.mjs b/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_3dis_1con.mjs index 8655ef6ce..27ad838f5 100755 --- a/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_3dis_1con.mjs +++ b/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_3dis_1con.mjs @@ -1,44 +1,44 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Stacked Column Chart' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Stacked Column Chart' + } + }), - (chart) => - chart.animate({ - config: { - title: '100% Stacked Column Chart', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + title: '100% Stacked Column Chart', + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - /* Making the chart elements fill the whole of the y-axis + (chart) => + chart.animate({ + config: { + channels: { + y: { + /* Making the chart elements fill the whole of the y-axis as the default value is now 110% */ - range: { - max: '100%' - } - } - }, - title: 'Split Column Chart', - align: 'min', - split: true - } - }) + range: { + max: '100%' + } + } + }, + title: 'Split Column Chart', + align: 'min', + split: true + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_stream_3dis_1con.mjs b/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_stream_3dis_1con.mjs index 453da45f3..1d3745c63 100755 --- a/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_stream_3dis_1con.mjs +++ b/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_stream_3dis_1con.mjs @@ -1,63 +1,63 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - /* The noop channel splits the markers as all the other channels + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + /* The noop channel splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Country' - }, - title: 'Column Chart' - } - }), + noop: 'Country' + }, + title: 'Column Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - /* Making the chart elements fill the whole of the y-axis + (chart) => + chart.animate({ + config: { + channels: { + y: { + /* Making the chart elements fill the whole of the y-axis as the default value is now 110% */ - range: { - max: '100%' - } - }, - color: 'Country', - noop: null - }, - title: 'Split Column Chart', - split: true - } - }), + range: { + max: '100%' + } + }, + color: 'Country', + noop: null + }, + title: 'Split Column Chart', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - /* Setting back the y-axis range to the default value. */ - range: { - max: 'auto' - } - } - }, - title: 'Stacked Column Chart', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { + /* Setting back the y-axis range to the default value. */ + range: { + max: 'auto' + } + } + }, + title: 'Stacked Column Chart', + split: false + } + }), - (chart) => - chart.animate({ - config: { - title: '100% Column Chart', - align: 'stretch' - } - }) + (chart) => + chart.animate({ + config: { + title: '100% Column Chart', + align: 'stretch' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/distribution_relationship_dotplot_dotplot.mjs b/test/integration/test_cases/web_content_removed/animated/distribution_relationship_dotplot_dotplot.mjs index 4c97d60cc..c47dd6990 100755 --- a/test/integration/test_cases/web_content_removed/animated/distribution_relationship_dotplot_dotplot.mjs +++ b/test/integration/test_cases/web_content_removed/animated/distribution_relationship_dotplot_dotplot.mjs @@ -1,33 +1,33 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Joy factors', - y: 'Value 5 (+/-)', - color: 'Joy factors', - /* The noop channel (no operation) splits the markers as all the other channels + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Joy factors', + y: 'Value 5 (+/-)', + color: 'Joy factors', + /* The noop channel (no operation) splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Country_code' - }, - title: 'Distribution Plot', - geometry: 'circle' - } - }), + noop: 'Country_code' + }, + title: 'Distribution Plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Joy factors', 'Value 6 (+/-)'], - label: 'Country_code' - }, - title: 'Scatter Plot' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Joy factors', 'Value 6 (+/-)'], + label: 'Country_code' + }, + title: 'Scatter Plot' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/drill_aggreg_improve_line.mjs b/test/integration/test_cases/web_content_removed/animated/drill_aggreg_improve_line.mjs index de464c078..b7e277c69 100755 --- a/test/integration/test_cases/web_content_removed/animated/drill_aggreg_improve_line.mjs +++ b/test/integration/test_cases/web_content_removed/animated/drill_aggreg_improve_line.mjs @@ -1,41 +1,41 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)' - }, - title: 'Single Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)' + }, + title: 'Single Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 3 (+)'], - color: 'Country' - }, - title: 'Drill down', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 3 (+)'], + color: 'Country' + }, + title: 'Drill down', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 3 (+)' - }, - title: 'Line Chart I', - geometry: 'line' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 3 (+)' + }, + title: 'Line Chart I', + geometry: 'line' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/drilldown_aggregate_line.mjs b/test/integration/test_cases/web_content_removed/animated/drilldown_aggregate_line.mjs index 5e8f29c6f..0d6f2c17a 100755 --- a/test/integration/test_cases/web_content_removed/animated/drilldown_aggregate_line.mjs +++ b/test/integration/test_cases/web_content_removed/animated/drilldown_aggregate_line.mjs @@ -1,58 +1,58 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: { - set: 'Value 3 (+)', - /* Making the chart elements fill the whole of + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: { + set: 'Value 3 (+)', + /* Making the chart elements fill the whole of the y-axis as the default value is now 110% */ - range: { - max: '6000000000' - } - }, - /* Add the dimension that we’ll use + range: { + max: '6000000000' + } + }, + /* Add the dimension that we’ll use in the next state without splitting the lines in this state. */ - size: 'Country' - }, - title: 'Single Line Chart', - geometry: 'line' - } - }), + size: 'Country' + }, + title: 'Single Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Country', - /* We don’t need this dimension here anymore + (chart) => + chart.animate({ + config: { + channels: { + color: 'Country', + /* We don’t need this dimension here anymore since it’s already on the 'color' channel. */ - size: null - }, - title: 'Drill down' - } - }), + size: null + }, + title: 'Drill down' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - /* Setting back the y-axis range + (chart) => + chart.animate({ + config: { + channels: { + y: { + /* Setting back the y-axis range to the default value. */ - range: { - max: 'auto' - } - } - }, - title: 'Line Chart II' - } - }) + range: { + max: 'auto' + } + } + }, + title: 'Line Chart II' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/merge_split_area_stream_3dis_1con.mjs b/test/integration/test_cases/web_content_removed/animated/merge_split_area_stream_3dis_1con.mjs index 8ba21b671..fb10148fa 100755 --- a/test/integration/test_cases/web_content_removed/animated/merge_split_area_stream_3dis_1con.mjs +++ b/test/integration/test_cases/web_content_removed/animated/merge_split_area_stream_3dis_1con.mjs @@ -1,38 +1,38 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: ['Year', 'Joy factors'], - y: ['Value 3 (+)', 'Country'], - color: 'Country' - }, - title: 'Stacked Streamgraph', - geometry: 'area', - align: 'center' - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: ['Year', 'Joy factors'], + y: ['Value 3 (+)', 'Country'], + color: 'Country' + }, + title: 'Stacked Streamgraph', + geometry: 'area', + align: 'center' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - /* Making the chart elements fill the whole of + (chart) => + chart.animate({ + config: { + channels: { + y: { + /* Making the chart elements fill the whole of the y-axis as the default value is now 110% */ - range: { - max: '100%' - } - } - }, - title: 'Split Area Chart', - split: true, - align: 'min' - } - }) + range: { + max: '100%' + } + } + }, + title: 'Split Area Chart', + split: true, + align: 'min' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/merge_split_bar.mjs b/test/integration/test_cases/web_content_removed/animated/merge_split_bar.mjs index 2718e08cb..1a5427752 100755 --- a/test/integration/test_cases/web_content_removed/animated/merge_split_bar.mjs +++ b/test/integration/test_cases/web_content_removed/animated/merge_split_bar.mjs @@ -1,26 +1,26 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: ['Value 3 (+)', 'Country'], - y: ['Year', 'Joy factors'], - color: 'Country' - }, - title: 'Stacked Bar Chart' - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: ['Value 3 (+)', 'Country'], + y: ['Year', 'Joy factors'], + color: 'Country' + }, + title: 'Stacked Bar Chart' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Split Bar Chart', - split: true - } - }) + (chart) => + chart.animate({ + config: { + title: 'Split Bar Chart', + split: true + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs b/test/integration/test_cases/web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs index 7aa74a98b..0f9781c89 100755 --- a/test/integration/test_cases/web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs @@ -1,37 +1,39 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - ['11', '12', '13', '14', '15', '16', '17', '18', '19', '20'].includes(record.Year) - }), - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: { - set: 'Year', - /* Setting the radius of the empty circle + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + ['11', '12', '13', '14', '15', '16', '17', '18', '19', '20'].includes( + record.Year + ) + }), + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: { + set: 'Year', + /* Setting the radius of the empty circle in the centre. */ - range: { - min: '-3' - } - }, - color: 'Country' - }, - title: 'Radial Bar Chart', - coordSystem: 'polar' - } - }), + range: { + min: '-3' + } + }, + color: 'Country' + }, + title: 'Radial Bar Chart', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Split Radial Bar Chart', - split: true - } - }) + (chart) => + chart.animate({ + config: { + title: 'Split Radial Bar Chart', + split: true + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/orientation_circle.mjs b/test/integration/test_cases/web_content_removed/animated/orientation_circle.mjs index 25d548c92..a07041169 100755 --- a/test/integration/test_cases/web_content_removed/animated/orientation_circle.mjs +++ b/test/integration/test_cases/web_content_removed/animated/orientation_circle.mjs @@ -1,36 +1,36 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Joy factors', - /* Lightness channel is used to assist the viewer + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Joy factors', + /* Lightness channel is used to assist the viewer in following the animation. */ - lightness: 'Joy factors', - /* The noop channel splits the markers as all the other channels + lightness: 'Joy factors', + /* The noop channel splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Year' - }, - title: 'Dot Plot', - geometry: 'circle' - } - }), + noop: 'Year' + }, + title: 'Dot Plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - noop: 'Joy factors' - }, - title: 'Dot Plot with Other Orientation' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + noop: 'Joy factors' + }, + title: 'Dot Plot with Other Orientation' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/orientation_dot_circle.mjs b/test/integration/test_cases/web_content_removed/animated/orientation_dot_circle.mjs index ce715ba16..90b284f45 100755 --- a/test/integration/test_cases/web_content_removed/animated/orientation_dot_circle.mjs +++ b/test/integration/test_cases/web_content_removed/animated/orientation_dot_circle.mjs @@ -1,57 +1,57 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 6 (+/-)', - /* The noop channel splits the markers as all the other channels + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 6 (+/-)', + /* The noop channel splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Joy factors', - /* Lightness channel is used to assist the viewer + noop: 'Joy factors', + /* Lightness channel is used to assist the viewer in following the animation. */ - lightness: 'Year' - }, - title: 'Scatter Plot', - geometry: 'circle' - } - }), + lightness: 'Year' + }, + title: 'Scatter Plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year' - }, - title: 'Dot Plot', - legend: 'lightness' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year' + }, + title: 'Dot Plot', + legend: 'lightness' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 6 (+/-)' - }, - title: 'Scatter Plot' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 6 (+/-)' + }, + title: 'Scatter Plot' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Joy factors', - noop: null - }, - title: 'Dot Plot' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Joy factors', + noop: null + }, + title: 'Dot Plot' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con.mjs b/test/integration/test_cases/web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con.mjs index b0b4e157b..0b1a4fae9 100755 --- a/test/integration/test_cases/web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con.mjs +++ b/test/integration/test_cases/web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con.mjs @@ -1,30 +1,30 @@ import { data_4 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: ['Joy factors', 'Value 3 (+)'], - color: 'Joy factors', - label: 'Country', - lightness: 'Country' - }, - title: 'Marimekko Chart', - align: 'stretch', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_4, + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: ['Joy factors', 'Value 3 (+)'], + color: 'Joy factors', + label: 'Country', + lightness: 'Country' + }, + title: 'Marimekko Chart', + align: 'stretch', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Marimekko with Other Orientation', - orientation: 'vertical' - } - }) + (chart) => + chart.animate({ + config: { + title: 'Marimekko with Other Orientation', + orientation: 'vertical' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/orientation_rectangle.mjs b/test/integration/test_cases/web_content_removed/animated/orientation_rectangle.mjs index 748ec56f0..782f36019 100644 --- a/test/integration/test_cases/web_content_removed/animated/orientation_rectangle.mjs +++ b/test/integration/test_cases/web_content_removed/animated/orientation_rectangle.mjs @@ -1,32 +1,32 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Timeseries', - y: ['Values 1', 'Categ. Parent'], - color: 'Categ. Parent', - label: 'Values 1' - }, - title: 'Stacked Column Chart' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Timeseries', + y: ['Values 1', 'Categ. Parent'], + color: 'Categ. Parent', + label: 'Values 1' + }, + title: 'Stacked Column Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - /* Taking the dimension off to show the sum of + (chart) => + chart.animate({ + config: { + channels: { + /* Taking the dimension off to show the sum of the newly stacked elements. */ - x: 'Values 1', - y: 'Categ. Parent' - }, - title: 'Bar Chart' - } - }) + x: 'Values 1', + y: 'Categ. Parent' + }, + title: 'Bar Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/pie_donut2_rectangle_1dis_1con.mjs b/test/integration/test_cases/web_content_removed/animated/pie_donut2_rectangle_1dis_1con.mjs index e4a42d38c..418bb8d21 100755 --- a/test/integration/test_cases/web_content_removed/animated/pie_donut2_rectangle_1dis_1con.mjs +++ b/test/integration/test_cases/web_content_removed/animated/pie_donut2_rectangle_1dis_1con.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Pie Chart', - coordSystem: 'polar' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Pie Chart', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - /* Setting the radius of + (chart) => + chart.animate({ + config: { + channels: { + /* Setting the radius of the empty circle in the centre. */ - y: { range: { min: '-200%' } } - }, - title: 'Donut Chart' - } - }) + y: { range: { min: '-200%' } } + }, + title: 'Donut Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/relationship_comparison_circle_2_bubble_plot.mjs b/test/integration/test_cases/web_content_removed/animated/relationship_comparison_circle_2_bubble_plot.mjs index 27753b851..fb6c61175 100755 --- a/test/integration/test_cases/web_content_removed/animated/relationship_comparison_circle_2_bubble_plot.mjs +++ b/test/integration/test_cases/web_content_removed/animated/relationship_comparison_circle_2_bubble_plot.mjs @@ -1,49 +1,49 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 6 (+/-)'], - y: 'Value 5 (+/-)', - color: 'Joy factors', - size: 'Value 2 (+)', - label: 'Country_code' - }, - title: 'Bubble Plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 6 (+/-)'], + y: 'Value 5 (+/-)', + color: 'Joy factors', + size: 'Value 2 (+)', + label: 'Country_code' + }, + title: 'Bubble Plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - /* With a dimension on the size channel Vizzu will + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + /* With a dimension on the size channel Vizzu will stack the elements by the categories on the other channels on charts without coordinates. Here the Country code dimension is used to stack the bubbles by the dimension on the color channel. */ - size: ['Value 2 (+)', 'Country_code'] - }, - title: 'Stacked Bubble Chart' - } - }), + size: ['Value 2 (+)', 'Country_code'] + }, + title: 'Stacked Bubble Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - /* The stacking is eliminated when we remove the extra dimension + (chart) => + chart.animate({ + config: { + channels: { + /* The stacking is eliminated when we remove the extra dimension from the size channel. */ - size: 'Value 2 (+)' - }, - title: 'Bubble Chart' - } - }) + size: 'Value 2 (+)' + }, + title: 'Bubble Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/relationship_total_bubble_plot_column.mjs b/test/integration/test_cases/web_content_removed/animated/relationship_total_bubble_plot_column.mjs index c41a57939..b0b90fd37 100755 --- a/test/integration/test_cases/web_content_removed/animated/relationship_total_bubble_plot_column.mjs +++ b/test/integration/test_cases/web_content_removed/animated/relationship_total_bubble_plot_column.mjs @@ -1,45 +1,45 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Joy factors', 'Value 6 (+/-)'], - y: 'Value 5 (+/-)', - color: 'Joy factors', - size: 'Value 2 (+)', - label: 'Country_code' - }, - title: 'Bubble Plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Joy factors', 'Value 6 (+/-)'], + y: 'Value 5 (+/-)', + color: 'Joy factors', + size: 'Value 2 (+)', + label: 'Country_code' + }, + title: 'Bubble Plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Joy factors', - x: ['Value 2 (+)', 'Country_code'], - label: null - }, - title: 'Bar Chart', - geometry: 'rectangle', - orientation: 'vertical' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: 'Joy factors', + x: ['Value 2 (+)', 'Country_code'], + label: null + }, + title: 'Bar Chart', + geometry: 'rectangle', + orientation: 'vertical' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/stack_group_area_line.mjs b/test/integration/test_cases/web_content_removed/animated/stack_group_area_line.mjs index 30754246d..7f1c5698a 100755 --- a/test/integration/test_cases/web_content_removed/animated/stack_group_area_line.mjs +++ b/test/integration/test_cases/web_content_removed/animated/stack_group_area_line.mjs @@ -1,53 +1,53 @@ import { data } from '../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Timeseries', - y: { - set: ['Values 1', 'Categ. Parent'], - /* Making the chart elements fill the whole of + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Timeseries', + y: { + set: ['Values 1', 'Categ. Parent'], + /* Making the chart elements fill the whole of the y-axis as the default value is now 110% */ - range: { - max: '400' - } - }, - label: 'Values 1', - color: 'Categ. Parent' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + range: { + max: '400' + } + }, + label: 'Values 1', + color: 'Categ. Parent' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Values 1' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: 'Values 1' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { - /* Setting back the y-axis range + (chart) => + chart.animate({ + config: { + channels: { + y: { + /* Setting back the y-axis range to the default value. */ - range: { - max: 'auto' - } - } - } - } - }) + range: { + max: 'auto' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/stack_group_circle.mjs b/test/integration/test_cases/web_content_removed/animated/stack_group_circle.mjs index da4484b10..6a2d14a3e 100755 --- a/test/integration/test_cases/web_content_removed/animated/stack_group_circle.mjs +++ b/test/integration/test_cases/web_content_removed/animated/stack_group_circle.mjs @@ -1,29 +1,29 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: 'Value 2 (+)', - label: 'Country_code' - }, - title: 'Bubble Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: 'Value 2 (+)', + label: 'Country_code' + }, + title: 'Bubble Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: ['Value 2 (+)', 'Country_code'] - }, - title: 'Stacked Bubble Chart' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: ['Value 2 (+)', 'Country_code'] + }, + title: 'Stacked Bubble Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/stack_group_treemap.mjs b/test/integration/test_cases/web_content_removed/animated/stack_group_treemap.mjs index 20c5aedf7..63628c3e5 100755 --- a/test/integration/test_cases/web_content_removed/animated/stack_group_treemap.mjs +++ b/test/integration/test_cases/web_content_removed/animated/stack_group_treemap.mjs @@ -1,34 +1,34 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - size: 'Value 2 (+)', - /* The noop channel (no operation) splits the markers as all the other channels + (chart) => + chart.animate({ + data, + config: { + channels: { + size: 'Value 2 (+)', + /* The noop channel (no operation) splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Country_code', - color: 'Joy factors', - label: 'Country_code' - }, - title: 'Treemap' - } - }), - (chart) => - chart.animate({ - config: { - /* With a dimension on the size channel Vizzu will stack the elements + noop: 'Country_code', + color: 'Joy factors', + label: 'Country_code' + }, + title: 'Treemap' + } + }), + (chart) => + chart.animate({ + config: { + /* With a dimension on the size channel Vizzu will stack the elements by the categories on the other channels on charts without coordinates. Here the Country code dimension is used to stack the bubbles by the dimension on the color channel. */ - channels: { - size: ['Value 2 (+)', 'Country_code'] - }, - title: 'Stacked Treemap' - } - }) + channels: { + size: ['Value 2 (+)', 'Country_code'] + }, + title: 'Stacked Treemap' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/total_element_bubble_2_bar.mjs b/test/integration/test_cases/web_content_removed/animated/total_element_bubble_2_bar.mjs index 23433ee77..9a8730ec5 100755 --- a/test/integration/test_cases/web_content_removed/animated/total_element_bubble_2_bar.mjs +++ b/test/integration/test_cases/web_content_removed/animated/total_element_bubble_2_bar.mjs @@ -1,50 +1,50 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - label: 'Country_code', - /* With a dimension on the size channel Vizzu will stack + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + label: 'Country_code', + /* With a dimension on the size channel Vizzu will stack the elements by the categories on the other channels on charts without coordinates. Here the Country code dimension is used to stack the bubbles by the dimension on the color channel. */ - size: ['Country_code', 'Value 2 (+)'] - }, - title: 'Stacked Bubble Chart', - geometry: 'circle' - } - }), + size: ['Country_code', 'Value 2 (+)'] + }, + title: 'Stacked Bubble Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country_code', 'Value 2 (+)'], - y: 'Joy factors', - label: null, - /* The stacking is eliminated when we remove + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country_code', 'Value 2 (+)'], + y: 'Joy factors', + label: null, + /* The stacking is eliminated when we remove the extra dimension from the size channel. */ - size: null - }, - title: 'Bar Chart', - geometry: 'rectangle', - orientation: 'vertical' - } - }), + size: null + }, + title: 'Bar Chart', + geometry: 'rectangle', + orientation: 'vertical' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/total_element_bubble_column.mjs b/test/integration/test_cases/web_content_removed/animated/total_element_bubble_column.mjs index 16a23f5b5..aac6b9066 100755 --- a/test/integration/test_cases/web_content_removed/animated/total_element_bubble_column.mjs +++ b/test/integration/test_cases/web_content_removed/animated/total_element_bubble_column.mjs @@ -1,47 +1,47 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - label: 'Country_code', - /* With a dimension on the size channel Vizzu will stack + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + label: 'Country_code', + /* With a dimension on the size channel Vizzu will stack the elements by the categories on the other channels on charts without coordinates. Here the Country code dimension is used to stack the bubbles by the dimension on the color channel. */ - size: ['Country_code', 'Value 2 (+)'] - }, - title: 'Stacked Bubble Chart', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors', - y: ['Country_code', 'Value 2 (+)'], - label: null, - /* The stacking is eliminated when we remove + size: ['Country_code', 'Value 2 (+)'] + }, + title: 'Stacked Bubble Chart', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors', + y: ['Country_code', 'Value 2 (+)'], + label: null, + /* The stacking is eliminated when we remove the extra dimension from the size channel. */ - size: null - }, - title: 'Column Chart', - geometry: 'rectangle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - } - } - }) + size: null + }, + title: 'Column Chart', + geometry: 'rectangle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/treemap_radial.mjs b/test/integration/test_cases/web_content_removed/animated/treemap_radial.mjs index 412717a02..3e63fd0fc 100755 --- a/test/integration/test_cases/web_content_removed/animated/treemap_radial.mjs +++ b/test/integration/test_cases/web_content_removed/animated/treemap_radial.mjs @@ -1,39 +1,39 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: 'Value 2 (+)', - label: 'Joy factors' - }, - title: 'Treemap' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: 'Value 2 (+)', + label: 'Joy factors' + }, + title: 'Treemap' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: { - set: 'Joy factors', - /* Setting the radius of + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: { + set: 'Joy factors', + /* Setting the radius of the empty circle in the centre. */ - range: { - min: '-30%' - } - }, - size: null, - label: 'Value 2 (+)' - }, - title: 'Radial Chart', - coordSystem: 'polar' - } - }) + range: { + min: '-30%' + } + }, + size: null, + label: 'Value 2 (+)' + }, + title: 'Radial Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/zoom_area.mjs b/test/integration/test_cases/web_content_removed/animated/zoom_area.mjs index c0a6b8157..4390447bd 100755 --- a/test/integration/test_cases/web_content_removed/animated/zoom_area.mjs +++ b/test/integration/test_cases/web_content_removed/animated/zoom_area.mjs @@ -1,28 +1,28 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: ['Year', 'Joy factors'], - y: ['Value 3 (+)', 'Country_code'], - color: 'Country_code' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => data_6.filter(record) && record.Year < 12 && record.Year > 6 - }, - config: { - title: 'Zoomed Stacked Area' - } - }) + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: ['Year', 'Joy factors'], + y: ['Value 3 (+)', 'Country_code'], + color: 'Country_code' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => data_6.filter(record) && record.Year < 12 && record.Year > 6 + }, + config: { + title: 'Zoomed Stacked Area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/zoom_area_polar.mjs b/test/integration/test_cases/web_content_removed/animated/zoom_area_polar.mjs index c327e53c7..d010f774d 100755 --- a/test/integration/test_cases/web_content_removed/animated/zoom_area_polar.mjs +++ b/test/integration/test_cases/web_content_removed/animated/zoom_area_polar.mjs @@ -1,30 +1,30 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: ['Year', 'Joy factors'], - y: ['Value 3 (+)', 'Country_code'], - color: 'Country_code' - }, - title: 'Polar Stacked Area', - geometry: 'area', - coordSystem: 'polar' - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: ['Year', 'Joy factors'], + y: ['Value 3 (+)', 'Country_code'], + color: 'Country_code' + }, + title: 'Polar Stacked Area', + geometry: 'area', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - data: { - filter: (record) => data_6.filter(record) && record.Year < 12 && record.Year > 6 - }, - config: { - title: 'Zoomed Polar Stacked Area' - } - }) + (chart) => + chart.animate({ + data: { + filter: (record) => data_6.filter(record) && record.Year < 12 && record.Year > 6 + }, + config: { + title: 'Zoomed Polar Stacked Area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/zoom_line.mjs b/test/integration/test_cases/web_content_removed/animated/zoom_line.mjs index 3a70c4c15..04abcbc70 100755 --- a/test/integration/test_cases/web_content_removed/animated/zoom_line.mjs +++ b/test/integration/test_cases/web_content_removed/animated/zoom_line.mjs @@ -1,28 +1,28 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: ['Year', 'Joy factors'], - y: 'Value 3 (+)', - color: 'Country_code' - }, - title: 'Line chart', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => data_6.filter(record) && record.Year < 8 && record.Year > 2 - }, - config: { - title: 'Zoomed Line chart' - } - }) + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: ['Year', 'Joy factors'], + y: 'Value 3 (+)', + color: 'Country_code' + }, + title: 'Line chart', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => data_6.filter(record) && record.Year < 8 && record.Year > 2 + }, + config: { + title: 'Zoomed Line chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/web_content_removed/animated/zoom_line_polar.mjs b/test/integration/test_cases/web_content_removed/animated/zoom_line_polar.mjs index 692ac4f7f..0b54899a3 100755 --- a/test/integration/test_cases/web_content_removed/animated/zoom_line_polar.mjs +++ b/test/integration/test_cases/web_content_removed/animated/zoom_line_polar.mjs @@ -1,29 +1,29 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: ['Year', 'Joy factors'], - y: 'Value 3 (+)', - color: 'Country_code' - }, - title: 'Polar Line chart', - geometry: 'line', - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => data_6.filter(record) && record.Year < 8 && record.Year > 2 - }, - config: { - title: 'Zoomed Polar Line chart' - } - }) + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: ['Year', 'Joy factors'], + y: 'Value 3 (+)', + color: 'Country_code' + }, + title: 'Polar Line chart', + geometry: 'line', + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => data_6.filter(record) && record.Year < 8 && record.Year > 2 + }, + config: { + title: 'Zoomed Polar Line chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs index 58839d04e..6c05a0631 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs index 23f4af93b..8f0fcc7aa 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs @@ -1,78 +1,78 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)'], - color: 'Country' - }, - title: 'Spider Dotplot Fake', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)'], + color: 'Country' + }, + title: 'Spider Dotplot Fake', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Value 5 (+/-)', - noop: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Spider Dotplot Fake', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - geometry: { - delay: 0, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Value 5 (+/-)', + noop: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Spider Dotplot Fake', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + geometry: { + delay: 0, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs index a19c8d516..8ae081bdd 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs @@ -1,73 +1,73 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Coxcomb', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Coxcomb', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }, - { - geometry: { - delay: 0, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }, + { + geometry: { + delay: 0, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs index 1b2555705..d3af141d8 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs @@ -1,73 +1,73 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Coxcomb', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Coxcomb', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - legend: null - } - }, - { - geometry: { - delay: 0, - duration: 1.5 - }, - y: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + legend: null + } + }, + { + geometry: { + delay: 0, + duration: 1.5 + }, + y: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs index fb3d80893..5ce8a9e87 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs @@ -1,68 +1,68 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Spider Dotplot Fake', - geometry: 'circle', - coordSystem: 'polar', - split: false - } - }, - { - geometry: { - delay: 0, - duration: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Spider Dotplot Fake', + geometry: 'circle', + coordSystem: 'polar', + split: false + } + }, + { + geometry: { + delay: 0, + duration: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - orientation: 'horizontal', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + orientation: 'horizontal', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs index 13ff4d83b..f68452509 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs @@ -1,78 +1,78 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dot', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dot', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 5 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - coordSystem: 'cartesian', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 5 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + coordSystem: 'cartesian', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs index 0bc19cdbb..a8bc8c433 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs @@ -1,84 +1,84 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0, - duration: 1 - }, - x: { - delay: 0.5 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0, + duration: 1 + }, + x: { + delay: 0.5 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - orientation: 'horizontal', - legend: null - } - }, - { - geometry: { - delay: 1, - duration: 1 - }, - y: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + orientation: 'horizontal', + legend: null + } + }, + { + geometry: { + delay: 1, + duration: 1 + }, + y: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs index 3ca72cc49..5b7299b2b 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs @@ -1,83 +1,83 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0, - duration: 1 - }, - x: { - delay: 0.5 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0, + duration: 1 + }, + x: { + delay: 0.5 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - coordSystem: 'cartesian', - legend: null - } - }, - { - geometry: { - delay: 1, - duration: 1 - }, - y: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + coordSystem: 'cartesian', + legend: null + } + }, + { + geometry: { + delay: 1, + duration: 1 + }, + y: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs index 14892957b..50c815ff7 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs @@ -1,84 +1,84 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Area Chart', - geometry: 'area', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - duration: 2.5, - easing: 'cubic-bezier(.39,0,.35,.99)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - }, - x: { - delay: 0, - duration: 0.5 - }, - y: { - delay: 0.5, - duration: 0.5 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Area Chart', + geometry: 'area', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + duration: 2.5, + easing: 'cubic-bezier(.39,0,.35,.99)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + }, + x: { + delay: 0, + duration: 0.5 + }, + y: { + delay: 0.5, + duration: 0.5 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs index ed03e7ddc..b5f95bb89 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs @@ -1,111 +1,111 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null, - orientation: 'horizontal' - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null, + orientation: 'horizontal' + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 5 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 5 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs index e69b0d2e0..591287d46 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs @@ -1,109 +1,109 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs index bb6fcd5e2..77c48db58 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs @@ -1,116 +1,116 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs index 248e1f7d1..3bad983f5 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs @@ -1,99 +1,99 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Fake', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Fake', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs index 51bc80ce1..9e93f1e49 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs @@ -1,111 +1,111 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Vertical', - geometry: 'line', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Vertical', + geometry: 'line', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 5 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 5 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs index e98cac5fb..e0d6907dc 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs @@ -1,100 +1,100 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart Vertical', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart Vertical', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs index d2d5bcaba..a5f81bc18 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs @@ -1,101 +1,101 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Chart Fake', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Chart Fake', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - orientation: 'horizontal', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + orientation: 'horizontal', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs index 62ab3f725..1dab54132 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs @@ -1,114 +1,114 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5, - easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5, + easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - coordSystem: 'cartesian', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5, - easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + coordSystem: 'cartesian', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5, + easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs index becb9e33c..398846cc6 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs @@ -1,126 +1,126 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5, - easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5, + easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - coordSystem: 'cartesian', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + coordSystem: 'cartesian', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs index 0d057ac5b..a20aa8c2d 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs @@ -1,72 +1,72 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - coordSystem: 'cartesian', - geometry: 'area', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - y: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + coordSystem: 'cartesian', + geometry: 'area', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + y: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs index 889acff88..7e2bdc222 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs @@ -1,94 +1,94 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - coordSystem: 'cartesian', - geometry: 'line', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + coordSystem: 'cartesian', + geometry: 'line', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs index 68262e886..8d5a5515d 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs @@ -1,126 +1,126 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'rectangle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'rectangle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0.5, - duration: 0.5 - }, - geometry: { - delay: 0, - duration: 0.5, - easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0.5, + duration: 0.5 + }, + geometry: { + delay: 0, + duration: 0.5, + easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - coordSystem: 'cartesian', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 0.5 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + coordSystem: 'cartesian', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 0.5 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs index 21face7a8..8e07dbd29 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs @@ -1,128 +1,128 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dot', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0, - easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dot', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0, + easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - coordSystem: 'cartesian', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + coordSystem: 'cartesian', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs index 6d1392801..135c66d4a 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs @@ -1,129 +1,129 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate( - { - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }, - { - title: { - delay: 0, - duration: 1, - easing: 'ease-in-out' - } - } - ), + (chart) => + chart.animate( + { + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }, + { + title: { + delay: 0, + duration: 1, + easing: 'ease-in-out' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Spider Dot Chart', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - title: { - delay: 0, - duration: 1, - easing: 'ease-in-out' - }, - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Spider Dot Chart', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + title: { + delay: 0, + duration: 1, + easing: 'ease-in-out' + }, + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - coordSystem: 'cartesian', - geometry: 'area', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - title: { - delay: 0, - duration: 1, - easing: 'ease-in-out' - }, - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + coordSystem: 'cartesian', + geometry: 'area', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + title: { + delay: 0, + duration: 1, + easing: 'ease-in-out' + }, + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs index f56981c95..a1b418086 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs @@ -1,110 +1,110 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dot Chart', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dot Chart', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - coordSystem: 'cartesian', - geometry: 'line', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + coordSystem: 'cartesian', + geometry: 'line', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs index 91ad9d135..b5c1b1879 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs @@ -1,86 +1,86 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - y: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + y: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs index 1bfc4901b..134d8ecbc 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs @@ -1,110 +1,110 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs index 21b84673a..80389412f 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs @@ -1,98 +1,98 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - // delay: 0.5, - // duration: 0.5, - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + // delay: 0.5, + // duration: 0.5, + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs index 5ea21c52a..b76304b8e 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs @@ -1,102 +1,102 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - orientation: 'horizontal', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + orientation: 'horizontal', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs index 978c97c11..7fda1ddba 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs @@ -1,89 +1,89 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Fake', - geometry: 'line', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Fake', + geometry: 'line', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - orientation: 'auto', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - y: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + orientation: 'auto', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + y: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs index e54c1670e..27f736ca4 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs @@ -1,110 +1,110 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Vertical', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Vertical', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs index 1ceb8fc0c..185898dd5 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs @@ -1,101 +1,101 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart Vertical', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart Vertical', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs index 9157337a0..0f59e15b7 100755 --- a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs @@ -1,103 +1,103 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart Vertical', - geometry: 'line', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart Vertical', + geometry: 'line', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - orientation: 'horizontal', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + orientation: 'horizontal', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs index cd7a042bf..678e79d7f 100755 --- a/test/integration/test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs @@ -1,81 +1,81 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), - config: { - channels: { - x: ['Value 5 (+/-)', 'Year'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'circle', - legend: null - } - }), + config: { + channels: { + x: ['Value 5 (+/-)', 'Year'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'] - }, - title: 'Bar Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Value 4 (+/-)', - y: 'Value 2 (+)', - noop: 'Year', - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'circle', - legend: null - } - }, - { - geometry: { - delay: 0, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'] + }, + title: 'Bar Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Value 4 (+/-)', + y: 'Value 2 (+)', + noop: 'Year', + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'circle', + legend: null + } + }, + { + geometry: { + delay: 0, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs b/test/integration/test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs index 8a29da2d0..9834a0399 100755 --- a/test/integration/test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs @@ -1,71 +1,71 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - geometry: { - delay: 0, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + geometry: { + delay: 0, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs b/test/integration/test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs index 9093be8be..eb25b8442 100755 --- a/test/integration/test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs @@ -1,87 +1,87 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }, - { - geometry: { - delay: 0, - duration: 1.5 - }, - y: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }, + { + geometry: { + delay: 0, + duration: 1.5 + }, + y: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs b/test/integration/test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs index f07ff5be1..5914eaf4f 100755 --- a/test/integration/test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs @@ -1,87 +1,87 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0, - duration: 1 - }, - x: { - delay: 0.5 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0, + duration: 1 + }, + x: { + delay: 0.5 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - geometry: { - delay: 1, - duration: 1 - }, - y: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + geometry: { + delay: 1, + duration: 1 + }, + y: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs b/test/integration/test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs index 954724915..3656e003f 100755 --- a/test/integration/test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs @@ -1,87 +1,87 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0, - duration: 1 - }, - x: { - delay: 0.5 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0, + duration: 1 + }, + x: { + delay: 0.5 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - legend: null - } - }, - { - geometry: { - delay: 1, - duration: 1 - }, - y: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + legend: null + } + }, + { + geometry: { + delay: 1, + duration: 1 + }, + y: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs b/test/integration/test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs index 0eddedee6..252d0db6d 100755 --- a/test/integration/test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs @@ -1,87 +1,87 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0.5, - duration: 1 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0.5, + duration: 1 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }, - { - geometry: { - delay: 0, - duration: 1 - }, - y: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }, + { + geometry: { + delay: 0, + duration: 1 + }, + y: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes/easing_test.mjs b/test/integration/test_cases/ww_animTiming/descartes/easing_test.mjs index 7a8cd3dce..f293d8672 100755 --- a/test/integration/test_cases/ww_animTiming/descartes/easing_test.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes/easing_test.mjs @@ -1,100 +1,100 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Value 2 (+)' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Bar', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Value 2 (+)' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Bar', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 3 (+)' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Bar', - geometry: 'rectangle', - legend: null - } - }, - { - duration: 1.5, - easing: 'cubic-bezier(.39,.14,.02,.99)', - x: { - easing: 'ease-in', - delay: 0.25, - duration: 0.5 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 3 (+)' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Bar', + geometry: 'rectangle', + legend: null + } + }, + { + duration: 1.5, + easing: 'cubic-bezier(.39,.14,.02,.99)', + x: { + easing: 'ease-in', + delay: 0.25, + duration: 0.5 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 2 (+)' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Bar', - geometry: 'rectangle', - legend: null - } - }, - { - duration: 1.5, - easing: 'cubic-bezier(.39,.0,.02,.99)', - x: { - easing: 'cubic-bezier(.68,0,.32,.99)', - delay: 0, - duration: 0.5 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 2 (+)' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Bar', + geometry: 'rectangle', + legend: null + } + }, + { + duration: 1.5, + easing: 'cubic-bezier(.39,.0,.02,.99)', + x: { + easing: 'cubic-bezier(.68,0,.32,.99)', + delay: 0, + duration: 0.5 + } + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Column', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Column', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs index c13475cde..3e717485a 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs @@ -1,104 +1,104 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs index 5d0599772..e8eb675b9 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs @@ -1,121 +1,121 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate( - { - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Value 5 (+/-)', 'Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'circle', - legend: null - } - }, - { - title: { - delay: 0, - duration: 1, - easing: 'ease-in-out' - } - } - ), + (chart) => + chart.animate( + { + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Value 5 (+/-)', 'Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'circle', + legend: null + } + }, + { + title: { + delay: 0, + duration: 1, + easing: 'ease-in-out' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - split: false - } - }, - { - title: { - delay: 0, - duration: 1, - easing: 'ease-in-out' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter Plot Chart', - geometry: 'circle', - legend: null - } - }, - { - title: { - delay: 0, - duration: 1, - easing: 'ease-in-out' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + split: false + } + }, + { + title: { + delay: 0, + duration: 1, + easing: 'ease-in-out' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter Plot Chart', + geometry: 'circle', + legend: null + } + }, + { + title: { + delay: 0, + duration: 1, + easing: 'ease-in-out' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs index 4fa3d84a6..52b4221c6 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs @@ -1,94 +1,94 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - split: false - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + split: false + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs index 162ae9298..472e648de 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs @@ -1,159 +1,159 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { range: { max: '100%' } } - }, - title: 'Splitted Area Chart', - align: 'center', - split: true - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + y: { range: { max: '100%' } } + }, + title: 'Splitted Area Chart', + align: 'center', + split: true + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - align: 'min', - split: false - } - }, - { - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + align: 'min', + split: false + } + }, + { + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Splitted Area Chart', - geometry: 'area', - align: 'center', - split: true - } - }, - { - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.75, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Splitted Area Chart', + geometry: 'area', + align: 'center', + split: true + } + }, + { + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.75, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - y: { range: { max: '110%' } } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null, - align: 'min', - split: false - } - }, - { - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + y: { range: { max: '110%' } } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null, + align: 'min', + split: false + } + }, + { + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs index a9373f3a8..eda1bc224 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs @@ -1,86 +1,86 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - split: false - } - }, - { - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + split: false + } + }, + { + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }, - { - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }, + { + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs index b31f560b0..63dd201e1 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs @@ -1,85 +1,85 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Stacked Line Chart', - // align: 'center', - split: true - } - }, - { - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Stacked Line Chart', + // align: 'center', + split: true + } + }, + { + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - // align: 'min', - split: false - } - }, - { - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + // align: 'min', + split: false + } + }, + { + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs index cec2d476f..1a0538aad 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs @@ -1,111 +1,111 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs index a20919db7..a28666770 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs @@ -1,112 +1,112 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs index c906effe5..ec4657f68 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs @@ -1,97 +1,97 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs index 51efe6bb5..95184db02 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs @@ -1,107 +1,107 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs index d1721d5fe..0517a7f3a 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs @@ -1,100 +1,100 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - y: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + y: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs index 4cd2cb290..3396bb28f 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs @@ -1,97 +1,97 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Area Chart Vertical', - geometry: 'area', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Area Chart Vertical', + geometry: 'area', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs index 8eab2d539..857039645 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs @@ -1,111 +1,111 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs index 15c771660..1be0e686e 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs @@ -1,109 +1,109 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs index fd049b287..25c32f297 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs @@ -1,97 +1,97 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Fake', - geometry: 'line', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Fake', + geometry: 'line', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs index 58843ff8b..ae05c448c 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs @@ -1,112 +1,112 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Line Vertical', - geometry: 'line', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Line Vertical', + geometry: 'line', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplopt', - geometry: 'circle', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplopt', + geometry: 'circle', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs index d1afb70dc..be62d555d 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs @@ -1,110 +1,110 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'line', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'line', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs b/test/integration/test_cases/ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs index 504390a9f..33f5e7a43 100755 --- a/test/integration/test_cases/ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs +++ b/test/integration/test_cases/ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs @@ -1,112 +1,112 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart Vertical', - geometry: 'line', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart Vertical', + geometry: 'line', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - orientation: 'horizontal', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + orientation: 'horizontal', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs index 5ba9d702a..487a8413c 100755 --- a/test/integration/test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs @@ -1,116 +1,116 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Dot Plot', - coordSystem: 'polar', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Dot Plot', + coordSystem: 'polar', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Scatter Plot', - geometry: 'circle', - legend: null, - orientation: 'horizontal' - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Scatter Plot', + geometry: 'circle', + legend: null, + orientation: 'horizontal' + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs b/test/integration/test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs index 20f9a8ddf..9e4143c30 100755 --- a/test/integration/test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs @@ -1,81 +1,81 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Polar Area', - coordSystem: 'polar', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Polar Area', + coordSystem: 'polar', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Polar Area', - geometry: 'area', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Polar Area', + geometry: 'area', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs b/test/integration/test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs index 3f8fc8d4b..65c5818e3 100755 --- a/test/integration/test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs @@ -1,90 +1,90 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - coordSystem: 'polar', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + coordSystem: 'polar', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - geometry: 'line', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + geometry: 'line', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs b/test/integration/test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs index 38a85dfd4..079fce761 100755 --- a/test/integration/test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs @@ -1,108 +1,108 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - coordSystem: 'polar', - geometry: 'area', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + coordSystem: 'polar', + geometry: 'area', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs b/test/integration/test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs index aec87ba75..b9c886cfe 100755 --- a/test/integration/test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs @@ -1,108 +1,108 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - coordSystem: 'polar', - geometry: 'line', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + coordSystem: 'polar', + geometry: 'line', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Polar Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Polar Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - geometry: 'line', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + geometry: 'line', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs b/test/integration/test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs index f7427eedf..43a2e3193 100755 --- a/test/integration/test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs @@ -1,98 +1,98 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - coordSystem: 'polar', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + coordSystem: 'polar', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Stacked Area Chart', - geometry: 'area', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Stacked Area Chart', + geometry: 'area', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - geometry: 'line', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + geometry: 'line', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs index 1e698ce98..7f7ceb324 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs @@ -1,105 +1,105 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - coordSystem: 'polar', - geometry: 'rectangle', - legend: null - } - }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + coordSystem: 'polar', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] } - }, - title: 'Radial', - geometry: 'rectangle' - // orientation: 'horizontal', - // split: false, - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] } + }, + title: 'Radial', + geometry: 'rectangle' + // orientation: 'horizontal', + // split: false, + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs index 5d608cd3c..01d2b101b 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs @@ -1,116 +1,116 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), - config: { - channels: { - x: { set: ['Value 5 (+/-)', 'Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - coordSystem: 'polar', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + config: { + channels: { + x: { set: ['Value 5 (+/-)', 'Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + coordSystem: 'polar', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs index 3705f35a9..ef411a36a 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs @@ -1,72 +1,72 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Polar Stacked Area Chart', - coordSystem: 'polar', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Polar Stacked Area Chart', + coordSystem: 'polar', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: ['Year', 'Value 2 (+)'], - y: 'Country', - color: 'Country' - }, - title: 'Radial Bar Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: ['Year', 'Value 2 (+)'], + y: 'Country', + color: 'Country' + }, + title: 'Radial Bar Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Polar Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - y: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Polar Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + y: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs index 907dcc76f..6dd2261a2 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs @@ -1,90 +1,90 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - coordSystem: 'polar', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + coordSystem: 'polar', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Bar Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Bar Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - geometry: 'line', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + geometry: 'line', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs index b16fded54..587fcb51a 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs @@ -1,124 +1,124 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - y: { set: ['Country'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dot plot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + y: { set: ['Country'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dot plot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs index 9828d09d5..ee4661f15 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs @@ -1,124 +1,124 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs index 382375438..18c1f1833 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs @@ -1,119 +1,119 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - paddingLeft: 100, - xAxis: { - guides: null - }, - yAxis: { - label: { - paddingRight: 10, - fontSize: 13 - } - }, - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + paddingLeft: 100, + xAxis: { + guides: null + }, + yAxis: { + label: { + paddingRight: 10, + fontSize: 13 + } + }, + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs index f6d48ec1a..b3777fa40 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs @@ -1,108 +1,108 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart', - geometry: 'line', - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart', + geometry: 'line', + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart Vertical', - geometry: 'circle', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart Vertical', + geometry: 'circle', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dotplot Chart', - geometry: 'line', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dotplot Chart', + geometry: 'line', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs index 5e27c60f9..be545ea06 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs @@ -1,85 +1,85 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: ['Value 2 (+)', 'Year'], - y: 'Country', - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: ['Value 2 (+)', 'Year'], + y: 'Country', + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - y: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + y: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs index 29e6c69cb..acfebcdc0 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs @@ -1,109 +1,109 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Area Chart Vertical', - geometry: 'area', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Area Chart Vertical', + geometry: 'area', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs index 7a6578451..21d3c1194 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs @@ -1,97 +1,97 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs index 08ca7c02e..21583edba 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs @@ -1,99 +1,99 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs index e19df8720..5638ff334 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs @@ -1,100 +1,100 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Fake', - geometry: 'line', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Fake', + geometry: 'line', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs index bc4082dc9..8d6c61e2b 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs @@ -1,108 +1,108 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Line Vertical', - geometry: 'line', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Line Vertical', + geometry: 'line', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs index b1c12af97..1ae20ab4f 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs @@ -1,100 +1,100 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'line', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'line', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs b/test/integration/test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs index 841465752..7cd0a57fc 100755 --- a/test/integration/test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs +++ b/test/integration/test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs @@ -1,102 +1,102 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart Vertical', - geometry: 'line', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart Vertical', + geometry: 'line', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - orientation: 'horizontal', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + orientation: 'horizontal', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs b/test/integration/test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs index bbecb400f..9d9de992e 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs @@ -1,114 +1,114 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(0.65,0,0.65,1)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(0.65,0,0.65,1)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs index d0e2deabe..7a82c31c3 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs @@ -1,114 +1,114 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs b/test/integration/test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs index 3503c9107..e0502c899 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs @@ -1,89 +1,89 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Joy factors'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - split: false - } - }, - { - geometry: { - delay: 0, - duration: 1 - }, - x: { - // delay: 0.5 - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - }, - x: { - // delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Joy factors'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + split: false + } + }, + { + geometry: { + delay: 0, + duration: 1 + }, + x: { + // delay: 0.5 + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + }, + x: { + // delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs b/test/integration/test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs index a4936b7f5..507e3eace 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs @@ -1,115 +1,115 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 5 (+/-)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 5 (+/-)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs b/test/integration/test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs index 82d2982e6..4e7c6e194 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs @@ -1,78 +1,78 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs b/test/integration/test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs index b4304f53d..230749cf6 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs @@ -1,115 +1,115 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs b/test/integration/test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs index ecd07052b..6d9289c85 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs @@ -1,115 +1,115 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0.5, - duration: 0.5 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0.5, + duration: 0.5 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs b/test/integration/test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs index 46ee598a6..ebb48277d 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs @@ -1,115 +1,115 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r.mjs index af003b7fa..9a0a8c8f5 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r.mjs @@ -1,115 +1,115 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 0.5 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 0.5 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c.mjs index aeb9b9cec..8d013930a 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c.mjs @@ -1,114 +1,114 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 0.5 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 0.5 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 0.5 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 0.5 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r.mjs index 65164dae7..26d910678 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r.mjs @@ -1,116 +1,116 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - y: { set: ['Value 5 (+/-)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 0.5 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0.5, - duration: 0.5 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + y: { set: ['Value 5 (+/-)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 0.5 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0.5, + duration: 0.5 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c.mjs index 445629665..69669449e 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c.mjs @@ -1,116 +1,116 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Value 5 (+/-)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Value 5 (+/-)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r.mjs index ce4b3b9c2..d0f11520d 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r.mjs @@ -1,102 +1,102 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.75, - duration: 0.25 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - y: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.75, + duration: 0.25 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + y: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c.mjs index 67f32ce1c..707dd5ea0 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c.mjs @@ -1,115 +1,115 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r.mjs index b09adcaa3..4186fede0 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r.mjs @@ -1,116 +1,116 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'line', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'line', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c.mjs index a2f011c80..335fb3026 100755 --- a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c.mjs @@ -1,116 +1,116 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - orientation: 'vertical', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + orientation: 'vertical', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs b/test/integration/test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs index 60f12470c..fae53abcb 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs @@ -1,114 +1,114 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs index 253c1fddd..03bc786f3 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs @@ -1,114 +1,114 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs b/test/integration/test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs index 6a084363c..f757a292c 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs @@ -1,116 +1,116 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs b/test/integration/test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs index 5f8fc7ee1..f015c6656 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs @@ -1,126 +1,126 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 5 (+/-)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 5 (+/-)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs b/test/integration/test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs index b77baa79a..089cba18c 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs @@ -1,103 +1,103 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs b/test/integration/test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs index 49074ac15..8f1adb63c 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs @@ -1,124 +1,124 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }, - { - coordSystem: { - delay: 0.25, - duration: 0.75 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 0.75 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }, + { + coordSystem: { + delay: 0.25, + duration: 0.75 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 0.75 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs b/test/integration/test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs index f99140240..f7aaebff2 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs @@ -1,115 +1,115 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs b/test/integration/test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs index e49dd945e..492bca054 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs @@ -1,114 +1,114 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0.5, - duration: 0.75 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 0.75 - }, - geometry: { - delay: 0, - duration: 0.5 - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0.5, + duration: 0.75 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 0.75 + }, + geometry: { + delay: 0, + duration: 0.5 + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs index 1d76f2c13..7f5fd35d6 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs @@ -1,115 +1,115 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.5, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.5, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs index 24373a8f5..4743e3ef2 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs @@ -1,124 +1,124 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5, - easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5, + easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs index 966bed5bb..39760290f 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs @@ -1,126 +1,126 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - y: { set: ['Value 5 (+/-)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0.5, - duration: 0.5 - }, - geometry: { - delay: 0, - duration: 0.5, - easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 0.5 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + y: { set: ['Value 5 (+/-)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0.5, + duration: 0.5 + }, + geometry: { + delay: 0, + duration: 0.5, + easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 0.5 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs index 6411b80e3..ec23ac816 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs @@ -1,126 +1,126 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Value 5 (+/-)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0, - easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Value 5 (+/-)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0, + easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs index 78c409706..8a0b42e2f 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs @@ -1,103 +1,103 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs index 4b2a4e084..9cfff9db6 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs @@ -1,125 +1,125 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs index aa3d71ec4..5772992a6 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs @@ -1,115 +1,115 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'line', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.25, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'line', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.25, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs index 2c449cd49..b4d75b7c7 100755 --- a/test/integration/test_cases/ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs @@ -1,125 +1,125 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-in' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-in' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs b/test/integration/test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs index c178e65b1..77abd8973 100755 --- a/test/integration/test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs @@ -1,104 +1,104 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.25, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0.25, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.25, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0.25, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs index c4156c7a9..a89918ee3 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs @@ -1,52 +1,52 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Spider Dotplot Fake', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Spider Dotplot Fake', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 5 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Spider Dotplot Fake', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 5 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Spider Dotplot Fake', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs index cdcee5e01..af32f3fde 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Coxcomb', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Coxcomb', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs index 50b8692e4..54cc3d31e 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Coxcomb', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Coxcomb', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs index 3bc5b697c..599460188 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs @@ -1,52 +1,52 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Spider Dotplot Fake', - geometry: 'circle', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Spider Dotplot Fake', + geometry: 'circle', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - orientation: 'horizontal', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + orientation: 'horizontal', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs index 675d8914e..9bcf55c3b 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs @@ -1,68 +1,68 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dot', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dot', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 5 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - coordSystem: 'cartesian', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 5 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + coordSystem: 'cartesian', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs index 24eb377ac..3c5538eef 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs @@ -1,52 +1,52 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - orientation: 'horizontal', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + orientation: 'horizontal', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs index a37aa6e8f..75b3f7e2f 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs index eb8d95a60..127a36cad 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Area Chart', - geometry: 'area', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Area Chart', + geometry: 'area', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs index a48c42c97..836ef3ad7 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs @@ -1,53 +1,53 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null, - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null, + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 5 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 5 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs index 5038a5a44..ae31de2a3 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs index 24d736b2c..08fd02a9e 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs index 480075936..e989c5338 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs @@ -1,49 +1,49 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Fake', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Fake', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs index 2460edcfb..cdd2f4f23 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs @@ -1,53 +1,53 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Vertical', - geometry: 'line', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Vertical', + geometry: 'line', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 5 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 5 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs index c41cd0e86..37cd11372 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart Vertical', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart Vertical', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs index 46c67e3e3..826117382 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Chart Fake', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Chart Fake', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - orientation: 'horizontal', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + orientation: 'horizontal', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs index 90a8d9554..56fb8e8a1 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - coordSystem: 'cartesian', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + coordSystem: 'cartesian', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs index b2662349f..a0ecafd80 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs @@ -1,69 +1,69 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'vertical', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'vertical', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - coordSystem: 'cartesian', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + coordSystem: 'cartesian', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs index 144f2f826..12b76cb18 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - coordSystem: 'cartesian', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + coordSystem: 'cartesian', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs index 1138af410..7543a7a1c 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - coordSystem: 'cartesian', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + coordSystem: 'cartesian', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs index a02d2c68a..86f25e6da 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs @@ -1,68 +1,68 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Chart', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Chart', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - coordSystem: 'cartesian', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + coordSystem: 'cartesian', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs index 577b72b25..1ae5ce238 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs @@ -1,70 +1,70 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dot', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dot', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - coordSystem: 'cartesian', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + coordSystem: 'cartesian', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs index a9ed51ad1..ea93310b7 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs @@ -1,52 +1,52 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Spider Dot Chart', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Spider Dot Chart', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - coordSystem: 'cartesian', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + coordSystem: 'cartesian', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs index 9af3fe741..aa6841104 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs @@ -1,52 +1,52 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dot Chart', - geometry: 'circle', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dot Chart', + geometry: 'circle', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - coordSystem: 'cartesian', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + coordSystem: 'cartesian', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs index d25716c0b..921c05ac5 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs index ad19308f9..b0c237ca2 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs @@ -1,53 +1,53 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs index 075b45fbf..d1e8c0141 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs index 266799f8a..1f68391c2 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs index c242f0968..27a9d45b8 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Fake', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Fake', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs index 34daf7f5e..768653a0d 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs @@ -1,62 +1,62 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Vertical', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Vertical', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs index ffa384562..e76a67006 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart Vertical', - geometry: 'line', - coordSystem: 'polar', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart Vertical', + geometry: 'line', + coordSystem: 'polar', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs index d37a486a6..a8a33e12f 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs @@ -1,53 +1,53 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart Vertical', - geometry: 'line', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart Vertical', + geometry: 'line', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'cartesian', - orientation: 'horizontal', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'cartesian', + orientation: 'horizontal', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs index 31059383a..49e3a43ca 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), - config: { - channels: { - x: ['Value 5 (+/-)', 'Year'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'circle', - legend: null - } - }), + config: { + channels: { + x: ['Value 5 (+/-)', 'Year'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'] - }, - title: 'Bar Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 4 (+/-)', - y: 'Value 2 (+)', - noop: 'Year', - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'] + }, + title: 'Bar Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 4 (+/-)', + y: 'Value 2 (+)', + noop: 'Year', + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs index 8e2d7f805..739ce8c9f 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs @@ -1,49 +1,49 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs index f2001cbac..4495fe6e5 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs index 7a8f810db..847be3a37 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs index 0ba6b49b2..35fdf96cf 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs index 037d2e3f7..a26306efa 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs index 2ef7cb9d4..c195f50c6 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs @@ -1,78 +1,78 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Value 2 (+)' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Bar', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Value 2 (+)' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Bar', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 3 (+)' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Bar', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 3 (+)' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Bar', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 2 (+)' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Bar', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 2 (+)' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Bar', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Column', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Column', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs index 032cbc8d2..f3d87d1e3 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs @@ -1,64 +1,64 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs index 37802083f..908031f46 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Value 5 (+/-)', 'Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Value 5 (+/-)', 'Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter Plot Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter Plot Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs index e8e8d8152..20fa9b4a0 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs @@ -1,64 +1,64 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split.mjs index d9f0f2e8a..54db7f924 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split.mjs @@ -1,91 +1,91 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { range: { max: '100%' } } - }, - title: 'Splitted Area Chart', - align: 'center', - split: true - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { range: { max: '100%' } } + }, + title: 'Splitted Area Chart', + align: 'center', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - align: 'min', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + align: 'min', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Splitted Area Chart', - geometry: 'area', - align: 'center', - split: true - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Splitted Area Chart', + geometry: 'area', + align: 'center', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { range: { max: '110%' } } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null, - align: 'min', - split: false - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { range: { max: '110%' } } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null, + align: 'min', + split: false + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs index 073e1f124..27060671f 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs @@ -1,48 +1,48 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs index 4c7cc2aa4..c28ef1c06 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs @@ -1,47 +1,47 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Stacked Line Chart', - // align: 'center', - split: true - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Stacked Line Chart', + // align: 'center', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Bar Chart', - geometry: 'rectangle', - // align: 'min', - split: false - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Bar Chart', + geometry: 'rectangle', + // align: 'min', + split: false + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs index e36f60e30..a14fc0ddf 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs @@ -1,64 +1,64 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs index a1dfcd064..add42518c 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs index bd87cea15..c31c01741 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs index 4ea0967b5..e97efb573 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs index 1da39b7ff..f81963cc9 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs @@ -1,64 +1,64 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs index 1a98bf6e0..38ce55f98 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Area Chart Vertical', - geometry: 'area', - orientation: 'vertical', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Area Chart Vertical', + geometry: 'area', + orientation: 'vertical', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs index c858baf49..0db25db33 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs @@ -1,64 +1,64 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs index af839c7dd..6c32a9bd6 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs @@ -1,48 +1,48 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs index 5f9ad73d5..bfbf2ffe4 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs @@ -1,49 +1,49 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Fake', - geometry: 'line', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Fake', + geometry: 'line', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs index d6a9d957f..66368ee5f 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Line Vertical', - geometry: 'line', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Line Vertical', + geometry: 'line', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplopt', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplopt', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs index d27087706..2d0a2cdfd 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs @@ -1,49 +1,49 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'line', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'line', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs index b6fde9760..194394fa0 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - // record.Country === 'Spain' || - // record.Country === 'Finland' || - // record.Country === 'France' || - // record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + // record.Country === 'Spain' || + // record.Country === 'Finland' || + // record.Country === 'France' || + // record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart Vertical', - geometry: 'line', - orientation: 'vertical', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart Vertical', + geometry: 'line', + orientation: 'vertical', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - orientation: 'horizontal', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + orientation: 'horizontal', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs index 10b8ba31a..d06c2feea 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Dot Plot', - coordSystem: 'polar', - geometry: 'circle', - legend: null - } - }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Dot Plot', + coordSystem: 'polar', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Scatter Plot', - geometry: 'circle', - orientation: 'vertical', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Scatter Plot', + geometry: 'circle', + orientation: 'vertical', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs index b345177eb..1b56420a7 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Polar Area', - coordSystem: 'polar', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Polar Area', + coordSystem: 'polar', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Polar Area', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Polar Area', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs index fd2a3905c..06abf7e1b 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - coordSystem: 'polar', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + coordSystem: 'polar', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs index 966aa0eba..f05966f8a 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - coordSystem: 'polar', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + coordSystem: 'polar', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs index 236a2f5a9..7a0ebe0e6 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - coordSystem: 'polar', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + coordSystem: 'polar', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: 'Polar Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: 'Polar Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs index 12581389f..0e408f215 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - coordSystem: 'polar', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + coordSystem: 'polar', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Stacked Area Chart', - geometry: 'area', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Stacked Area Chart', + geometry: 'area', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs index 65415c731..091cfabd5 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - coordSystem: 'polar', - geometry: 'rectangle', - legend: null - } - }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + coordSystem: 'polar', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] } - }, - title: 'Radial', - geometry: 'rectangle' - // orientation: 'horizontal', - // split: false, - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] } + }, + title: 'Radial', + geometry: 'rectangle' + // orientation: 'horizontal', + // split: false, + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs index 9b85832bb..21cb81b5a 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), - config: { - channels: { - x: { set: ['Value 5 (+/-)', 'Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - coordSystem: 'polar', - geometry: 'circle', - legend: null - } - }), + config: { + channels: { + x: { set: ['Value 5 (+/-)', 'Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + coordSystem: 'polar', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] } - }, - title: 'Stacked Coxcomb', - geometry: 'rectangle', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 4 (+/-)'] }, - noop: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Coxcomb', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] } + }, + title: 'Stacked Coxcomb', + geometry: 'rectangle', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 4 (+/-)'] }, + noop: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Coxcomb', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs index 89ddf2a82..8d05e42a3 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Polar Stacked Area Chart', - coordSystem: 'polar', - geometry: 'area', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Polar Stacked Area Chart', + coordSystem: 'polar', + geometry: 'area', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 2 (+)'], - y: 'Country', - color: 'Country' - }, - title: 'Radial Bar Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 2 (+)'], + y: 'Country', + color: 'Country' + }, + title: 'Radial Bar Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Polar Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Polar Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs index 30ab557d9..53fea2f1b 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - coordSystem: 'polar', - geometry: 'line', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + coordSystem: 'polar', + geometry: 'line', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Bar Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Bar Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs index 496f1b08d..d94fe962c 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - y: { set: ['Country'] }, - noop: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dot plot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Polar Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + y: { set: ['Country'] }, + noop: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dot plot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Polar Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs index 733000eec..cbc097c4d 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs index e66f5366d..eda45153f 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs @@ -1,60 +1,60 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - yAxis: { - label: { - fontSize: 11 - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + yAxis: { + label: { + fontSize: 11 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs index 30fa32a8e..80f3fc265 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart', - geometry: 'line', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart', + geometry: 'line', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Radial Line Chart Vertical', - geometry: 'circle', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Radial Line Chart Vertical', + geometry: 'circle', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Radial Dotplot Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Radial Dotplot Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs index b95cb49c3..a40efe820 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs @@ -1,49 +1,49 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 2 (+)', 'Year'], - y: 'Country', - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 2 (+)', 'Year'], + y: 'Country', + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs index 4d0a44d02..565e742b0 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Area Chart Vertical', - geometry: 'area', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Area Chart Vertical', + geometry: 'area', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs index cf8bdaadf..a6629004a 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs @@ -1,49 +1,49 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs index 7d21eefe5..6c4bb96d9 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs @@ -1,49 +1,49 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs index fa1293b6f..9e9e98d2d 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Spider Line Fake', - geometry: 'line', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Spider Line Fake', + geometry: 'line', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs index 4d3dc1b06..3faf5b585 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot', - geometry: 'circle', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot', + geometry: 'circle', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Line Vertical', - geometry: 'line', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Line Vertical', + geometry: 'line', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs index 1f22d3db7..663e8af19 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'line', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'line', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs index 12f8c2c35..e8573e23a 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs @@ -1,52 +1,52 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'polar', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'polar', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Year'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart Vertical', - geometry: 'line', - orientation: 'vertical', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Year'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart Vertical', + geometry: 'line', + orientation: 'vertical', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - orientation: 'horizontal', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + orientation: 'horizontal', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs index 9e842c904..0ccb580b5 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs index 4f73e8eaa..9778d344b 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs index a9c958dfe..5d01309a9 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Joy factors'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Joy factors'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs index 8118d6ede..a28bb132d 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 5 (+/-)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 5 (+/-)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs index 81b42f067..19e89db37 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs @@ -1,68 +1,68 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal', + split: false + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs index 2fa0ee63a..821a26a32 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs index 05f5cd23f..06a7b42b3 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs index c206048cb..e2d347b58 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r.mjs index 2e21a1427..66b32d836 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c.mjs index 8f295ef8e..c63e44382 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r.mjs index 546051f95..3c6a4dfe5 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r.mjs @@ -1,68 +1,68 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - y: { set: ['Value 5 (+/-)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + y: { set: ['Value 5 (+/-)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c.mjs index e9ebe4386..23fb9934e 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c.mjs @@ -1,68 +1,68 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Value 5 (+/-)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Value 5 (+/-)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r.mjs index 12d32ab69..43d718ce3 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c.mjs index db4e7439e..2101e5532 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r.mjs index bde3f587a..43e96c1bf 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r.mjs @@ -1,68 +1,68 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'line', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'line', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c.mjs index 036f4a76f..111848ec2 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c.mjs @@ -1,68 +1,68 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - noop: { set: ['Country'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + noop: { set: ['Country'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs index 87128fad9..d3527729f 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs @@ -1,68 +1,68 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs index 668554db8..70b5721ae 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs @@ -1,68 +1,68 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs index 57f16bac2..595d8314b 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs @@ -1,70 +1,70 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 5 (+/-)'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 5 (+/-)'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs index 99d834be5..93cda5d1f 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs @@ -1,80 +1,80 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 5 (+/-)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 5 (+/-)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs index f1cd71126..fb41c6556 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs @@ -1,69 +1,69 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs index 47b5ec3ec..218109471 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs @@ -1,78 +1,78 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs index 407ec2d6f..7c584761b 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs @@ -1,69 +1,69 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'polar', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'polar', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs index caece0c8a..aecbf15c4 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs @@ -1,69 +1,69 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] } - }, - title: 'Line Chart', - geometry: 'line', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] } + }, + title: 'Line Chart', + geometry: 'line', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r.mjs index cf632a4b4..c9ab5b720 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r.mjs @@ -1,69 +1,69 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c.mjs index 7bb4408a6..36eac36c8 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c.mjs @@ -1,78 +1,78 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - coordSystem: 'polar', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + coordSystem: 'polar', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r.mjs index b6c4ac3fd..b015092b3 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r.mjs @@ -1,80 +1,80 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - y: { set: ['Value 5 (+/-)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + y: { set: ['Value 5 (+/-)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c.mjs index 4e0e5cecb..bcc8655a9 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c.mjs @@ -1,80 +1,80 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: ['Year'] }, - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Value 5 (+/-)'] }, - color: { set: ['Country'] } - }, - title: 'Dotplot vs. Scatter plot', - geometry: 'circle', - coordSystem: 'polar', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: ['Year'] }, + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Value 5 (+/-)'] }, + color: { set: ['Country'] } + }, + title: 'Dotplot vs. Scatter plot', + geometry: 'circle', + coordSystem: 'polar', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r.mjs index de669db67..3c748f791 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r.mjs @@ -1,69 +1,69 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'area', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'area', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c.mjs index 8bd02e346..e9d70c620 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c.mjs @@ -1,79 +1,79 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r.mjs index d17a7849f..e16752346 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r.mjs @@ -1,69 +1,69 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart Vertical', - geometry: 'line', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart Vertical', + geometry: 'line', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c.mjs index bf86f988c..4a37371eb 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c.mjs @@ -1,79 +1,79 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - }, - style: { - plot: { - marker: { - guides: { - color: null, - lineWidth: 0 - } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + }, + style: { + plot: { + marker: { + guides: { + color: null, + lineWidth: 0 + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: null }, - x: { set: ['Value 2 (+)'] }, - y: { set: ['Year'] }, - color: { set: ['Country'] } - }, - title: 'Stacked Area Chart', - geometry: 'line', - coordSystem: 'polar', - orientation: 'vertical', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - coordSystem: 'cartesian', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: null }, + x: { set: ['Value 2 (+)'] }, + y: { set: ['Year'] }, + color: { set: ['Country'] } + }, + title: 'Stacked Area Chart', + geometry: 'line', + coordSystem: 'polar', + orientation: 'vertical', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + coordSystem: 'cartesian', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs b/test/integration/test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs index f611a6785..14acbb546 100755 --- a/test/integration/test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs +++ b/test/integration/test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs @@ -1,64 +1,64 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - size: { set: ['Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + size: { set: ['Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Treemap', - geometry: 'rectangle', - // orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: ['Country'] }, - noop: { set: ['Year'] } - }, - title: 'Bubble Chart', - geometry: 'circle', - legend: null - } - }) + (chart) => + chart.animate({ + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Treemap', + geometry: 'rectangle', + // orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: ['Country'] }, + noop: { set: ['Year'] } + }, + title: 'Bubble Chart', + geometry: 'circle', + legend: null + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/02_C_R.mjs b/test/integration/test_cases/ww_next_steps/next_steps/02_C_R.mjs index 57b8d5f02..54cccf397 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/02_C_R.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/02_C_R.mjs @@ -1,357 +1,357 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Country' }, - y: { set: 'Value 2 (+)' }, - // color: { set: 'Country' }, - label: { set: 'Value 2 (+)' } - }, - title: 'Column', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - }, - style: { - plot: { - xAxis: { - label: { - angle: '2.5' - } - }, - marker: { - label: { - fontSize: 11 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country' }, - y: { set: ['Value 2 (+)', 'Joy factors'] }, - color: { set: 'Joy factors' }, - label: { set: 'Value 2 (+)' } - }, - title: 'Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: 'color' - }, - style: { - plot: { - marker: { - label: { - fontSize: 9 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country' }, - y: { set: 'Value 2 (+)' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: 'Column / Aggregate(?), - Discrete(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - }, - style: { - plot: { - xAxis: { - label: { - angle: '2.5' - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Country' }, + y: { set: 'Value 2 (+)' }, + // color: { set: 'Country' }, + label: { set: 'Value 2 (+)' } + }, + title: 'Column', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + }, + style: { + plot: { + xAxis: { + label: { + angle: '2.5' + } + }, + marker: { + label: { + fontSize: 11 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country' }, + y: { set: ['Value 2 (+)', 'Joy factors'] }, + color: { set: 'Joy factors' }, + label: { set: 'Value 2 (+)' } + }, + title: 'Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: 'color' + }, + style: { + plot: { + marker: { + label: { + fontSize: 9 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country' }, + y: { set: 'Value 2 (+)' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: 'Column / Aggregate(?), - Discrete(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + }, + style: { + plot: { + xAxis: { + label: { + angle: '2.5' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: null }, - label: { set: null } - }, - title: 'Stacked Column / Sum(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: null }, + label: { set: null } + }, + title: 'Stacked Column / Sum(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: 'Value 2 (+)' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: 'Stacked Column / Total(?), Aggregate(?), - Discrete(?), Total(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: 'Value 2 (+)' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: 'Stacked Column / Total(?), Aggregate(?), - Discrete(?), Total(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: null }, - label: { set: null } - }, - title: 'Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: null }, + label: { set: null } + }, + title: 'Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country' }, - y: { set: 'Value 2 (+)' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: 'Column - Group(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - }, - style: { - plot: { - xAxis: { - label: { - angle: '2.5' - } - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country' }, + y: { set: 'Value 2 (+)' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: 'Column - Group(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + }, + style: { + plot: { + xAxis: { + label: { + angle: '2.5' + } + } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 5 (+/-)' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - label: { set: null } - }, - title: 'Bubble plot / + Continuous(?)', - geometry: 'circle', - orientation: 'horizontal', - legend: 'color' - }, - style: { - plot: { - xAxis: { - label: { - angle: '3.14' - } - } - } - } - }, - { - style: { - delay: 0.5, - duration: 1.5 - }, - legend: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 5 (+/-)' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + label: { set: null } + }, + title: 'Bubble plot / + Continuous(?)', + geometry: 'circle', + orientation: 'horizontal', + legend: 'color' + }, + style: { + plot: { + xAxis: { + label: { + angle: '3.14' + } + } + } + } + }, + { + style: { + delay: 0.5, + duration: 1.5 + }, + legend: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Country' }, - y: { set: 'Value 2 (+)' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: 'Column / - Continuous(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - }, - style: { - plot: { - xAxis: { - label: { - angle: '2.5' - } - } - } - } - }, - { - style: { - delay: 0, - duration: 1 - }, - legend: { - delay: 0, - duration: 1 - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 1, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - y: { set: null }, - color: { set: null }, - label: { set: null } - }, - title: 'Bar / Sum(?)', - geometry: 'rectangle', - orientation: 'vertical', - legend: null - }, - style: { - plot: { - marker: { - label: { - fontSize: 9 - } - }, - xAxis: { - label: { - angle: 3.14 - } - } - } - } - }, - { - style: { - delay: 1, - duration: 1 - }, - legend: { - delay: 1, - duration: 1 - }, - x: { - delay: 1, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Country' }, + y: { set: 'Value 2 (+)' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: 'Column / - Continuous(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + }, + style: { + plot: { + xAxis: { + label: { + angle: '2.5' + } + } + } + } + }, + { + style: { + delay: 0, + duration: 1 + }, + legend: { + delay: 0, + duration: 1 + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 1, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + y: { set: null }, + color: { set: null }, + label: { set: null } + }, + title: 'Bar / Sum(?)', + geometry: 'rectangle', + orientation: 'vertical', + legend: null + }, + style: { + plot: { + marker: { + label: { + fontSize: 9 + } + }, + xAxis: { + label: { + angle: 3.14 + } + } + } + } + }, + { + style: { + delay: 1, + duration: 1 + }, + legend: { + delay: 1, + duration: 1 + }, + x: { + delay: 1, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, - y: { set: null }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: 'Bar / Total(?)', - geometry: 'rectangle', - orientation: 'vertical', - legend: null - }, - style: { - plot: { - marker: { - label: { - fontSize: 11 - } - } - } - } - }, - { - style: { - delay: 1, - duration: 1 - }, - legend: { - delay: 1, - duration: 1 - }, - x: { - delay: 1, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, + y: { set: null }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: 'Bar / Total(?)', + geometry: 'rectangle', + orientation: 'vertical', + legend: null + }, + style: { + plot: { + marker: { + label: { + fontSize: 11 + } + } + } + } + }, + { + style: { + delay: 1, + duration: 1 + }, + legend: { + delay: 1, + duration: 1 + }, + x: { + delay: 1, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs b/test/integration/test_cases/ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs index 20224d224..730206827 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Country === 'Belgium' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 5 (+/-)' }, - color: { - set: 'Value 5 (+/-)', - range: { min: '-45', max: '45' } - }, - noop: { set: 'Country' }, - label: { set: 'Value 5 (+/-)' } - }, - title: 'Column (+,-)', - legend: 'color' - }, - style: { - plot: { - marker: { - colorGradient: [ - '#ac1727 0', - '#e36c56 0.15', - '#f4b096 0.35', - '#d5d7d9 0.5', - '#9fbffa 0.65', - '#6389ec 0.85', - '#3d51b8 1' - ].join(), - label: { position: 'top' } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Country === 'Belgium' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 5 (+/-)' }, + color: { + set: 'Value 5 (+/-)', + range: { min: '-45', max: '45' } + }, + noop: { set: 'Country' }, + label: { set: 'Value 5 (+/-)' } + }, + title: 'Column (+,-)', + legend: 'color' + }, + style: { + plot: { + marker: { + colorGradient: [ + '#ac1727 0', + '#e36c56 0.15', + '#f4b096 0.35', + '#d5d7d9 0.5', + '#9fbffa 0.65', + '#6389ec 0.85', + '#3d51b8 1' + ].join(), + label: { position: 'top' } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Year', 'Value 5 (+/-)'] } - }, - title: 'Waterfall / Sum?, Comparison?' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Year', 'Value 5 (+/-)'] } + }, + title: 'Waterfall / Sum?, Comparison?' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Value 5 (+/-)'] } - }, - title: 'Column (+,-) / Goroup?' - } - }, - { - delay: 2 - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Value 5 (+/-)'] } + }, + title: 'Column (+,-) / Goroup?' + } + }, + { + delay: 2 + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/03_C_R.mjs b/test/integration/test_cases/ww_next_steps/next_steps/03_C_R.mjs index c40929c72..d87af1843 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/03_C_R.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/03_C_R.mjs @@ -1,354 +1,354 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Groupped Column', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Groupped Column', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column / Sum(?) sub-elements', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - style: { - delay: 0.6, - duration: 1.4 - }, - legend: { - delay: 0.6, - duration: 1.4 - }, - x: { - delay: 1, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Groupped Column / Comparison(?), Group(?)', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column / Sum(?) sub-elements', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + style: { + delay: 0.6, + duration: 1.4 + }, + legend: { + delay: 0.6, + duration: 1.4 + }, + x: { + delay: 1, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Groupped Column / Comparison(?), Group(?)', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Year', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?) elements', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - duration: 2 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Year', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?) elements', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + duration: 2 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - label: { set: ['Value 2 (+)'] } - }, - title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?) elements', - geometry: 'rectangle', - split: false - } - }, - { - delay: 0, - duration: 0.2 - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Year', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - label: { set: null } - }, - title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?) elements', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 2, - duration: 0.2 - } - ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Groupped Column / Drill down(?), + Discrete(?), Groupped(?)', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + label: { set: ['Value 2 (+)'] } + }, + title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?) elements', + geometry: 'rectangle', + split: false + } + }, + { + delay: 0, + duration: 0.2 + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Year', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + label: { set: null } + }, + title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?) elements', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 2, + duration: 0.2 + } + ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Groupped Column / Drill down(?), + Discrete(?), Groupped(?)', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Percentage Column / Ratio%(?)', - align: 'stretch', - legend: 'color' - } - }, - { - style: { - delay: 0.6, - duration: 1.4 - }, - legend: { - delay: 0.6, - duration: 1.4 - }, - x: { - delay: 1, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Percentage Column / Ratio%(?)', + align: 'stretch', + legend: 'color' + } + }, + { + style: { + delay: 0.6, + duration: 1.4 + }, + legend: { + delay: 0.6, + duration: 1.4 + }, + x: { + delay: 1, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' } - }, - title: 'Groupped Column / Comparison(?), Group(?)', - align: 'min' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' } + }, + title: 'Groupped Column / Comparison(?), Group(?)', + align: 'min' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Year', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Column / Aggregate(?), - Discrete(?)', - align: 'min' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Year', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Column / Aggregate(?), - Discrete(?)', + align: 'min' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: 'Column / Total(?) Aggregate(?) - Discrete(?)', - align: 'min', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: 'Column / Total(?) Aggregate(?) - Discrete(?)', + align: 'min', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Year', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: null }, - label: { set: null } - }, - title: 'Column / Drill down(?), + Discrete(?)', - align: 'min', - legend: null - } - }, - { - delay: 2, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Year', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: null }, + label: { set: null } + }, + title: 'Column / Drill down(?), + Discrete(?)', + align: 'min', + legend: null + } + }, + { + delay: 2, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' } - }, - title: 'Groupped Column / Comparison(?), Group(?)', - align: 'min', - legend: 'color' - } - }, - { - delay: 0, - duration: 2 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' } + }, + title: 'Groupped Column / Comparison(?), Group(?)', + align: 'min', + legend: 'color' + } + }, + { + delay: 0, + duration: 2 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Country', 'Year', 'Value 2 (+)'] }, - y: { set: null, range: { min: '0%', max: '100%' } }, - color: { set: 'Country' } - }, - title: 'Stacked Bar / Sum(?)', - align: 'min' - } - }, - { - delay: 2, - style: { - delay: 1, - duration: 1 - }, - legend: { - delay: 1, - duration: 1 - }, - x: { - // easing: 'ease-in', - delay: 0, - duration: 1 - }, - y: { - // easing: 'ease-out', - delay: 0.5, - duration: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Country', 'Year', 'Value 2 (+)'] }, + y: { set: null, range: { min: '0%', max: '100%' } }, + color: { set: 'Country' } + }, + title: 'Stacked Bar / Sum(?)', + align: 'min' + } + }, + { + delay: 2, + style: { + delay: 1, + duration: 1 + }, + legend: { + delay: 1, + duration: 1 + }, + x: { + // easing: 'ease-in', + delay: 0, + duration: 1 + }, + y: { + // easing: 'ease-out', + delay: 0.5, + duration: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: null, range: { min: '0%', max: '100%' } }, - color: { set: 'Country' }, - label: { set: 'Value 2 (+)' } - }, - title: 'Stacked Bar / Sum(?)', - align: 'min' - }, - style: { - plot: { - marker: { - label: { - fontSize: 9 - } - } - } - } - }, - { - delay: 0, - duration: 0.3 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: null, range: { min: '0%', max: '100%' } }, + color: { set: 'Country' }, + label: { set: 'Value 2 (+)' } + }, + title: 'Stacked Bar / Sum(?)', + align: 'min' + }, + style: { + plot: { + marker: { + label: { + fontSize: 9 + } + } + } + } + }, + { + delay: 0, + duration: 0.3 + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/04_C_R.mjs b/test/integration/test_cases/ww_next_steps/next_steps/04_C_R.mjs index 985d96711..11e8e3c11 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/04_C_R.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/04_C_R.mjs @@ -1,632 +1,632 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Year', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - duration: 2 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Year', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + duration: 2 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - label: { set: ['Value 2 (+)'] } - }, - title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?)', - geometry: 'rectangle', - split: false - } - }, - { - delay: 0, - duration: 0.5 - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Year', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - label: { set: null } - }, - title: 'Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 1, - duration: 2 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + label: { set: ['Value 2 (+)'] } + }, + title: 'Stacked Column / Aggregate(?), Sum(?), - Discrete(?)', + geometry: 'rectangle', + split: false + } + }, + { + delay: 0, + duration: 0.5 + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Year', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + label: { set: null } + }, + title: 'Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 1, + duration: 2 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'], range: { min: '0%', max: '100%' } }, - color: { set: null } - }, - title: 'Bar / Aggregate(?), Sum(?)', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.75 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'], range: { min: '0%', max: '100%' } }, + color: { set: null } + }, + title: 'Bar / Aggregate(?), Sum(?)', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.75 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: null }, - label: { set: ['Value 2 (+)'] } - }, - title: 'Bar / Aggregate(?), Sum(?)', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 0, - duration: 0.4 - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)', 'Year'] }, - y: { set: ['Country'] }, - color: { set: null }, - label: { set: null } - }, - title: 'Bar / Aggregate(?), Sum(?)', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 2, - duration: 0.4 - } - ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: ['Country'] }, - label: { set: null } - }, - title: '1 Column / Total(?), Aggregate', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 0, - duration: 1, - coordSystem: { - delay: 0, - duration: 1 - }, - x: { - delay: 0.75, - duration: 1, - easing: 'ease-out' - }, - y: { - delay: 0, - duration: 1, - easing: 'ease-out' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: null }, + label: { set: ['Value 2 (+)'] } + }, + title: 'Bar / Aggregate(?), Sum(?)', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 0, + duration: 0.4 + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)', 'Year'] }, + y: { set: ['Country'] }, + color: { set: null }, + label: { set: null } + }, + title: 'Bar / Aggregate(?), Sum(?)', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 2, + duration: 0.4 + } + ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: ['Country'] }, + label: { set: null } + }, + title: '1 Column / Total(?), Aggregate', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 0, + duration: 1, + coordSystem: { + delay: 0, + duration: 1 + }, + x: { + delay: 0.75, + duration: 1, + easing: 'ease-out' + }, + y: { + delay: 0, + duration: 1, + easing: 'ease-out' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: ['Value 2 (+)', 'Year', 'Country'] }, - color: { set: null } - }, - title: '2 Column / Total(?), Aggregate', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 0, - duration: 2, - x: { - delay: 0, - duration: 1, - easing: 'ease-out' - }, - y: { - delay: 1, - duration: 1, - easing: 'ease-in' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: ['Value 2 (+)', 'Year', 'Country'] }, + color: { set: null } + }, + title: '2 Column / Total(?), Aggregate', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 0, + duration: 2, + x: { + delay: 0, + duration: 1, + easing: 'ease-out' + }, + y: { + delay: 1, + duration: 1, + easing: 'ease-in' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: ['Value 2 (+)'] }, - color: { set: null }, - label: { set: ['Value 2 (+)'] } - }, - title: '3 Column / Total(?), Aggregate', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: ['Value 2 (+)'] }, + color: { set: null }, + label: { set: ['Value 2 (+)'] } + }, + title: '3 Column / Total(?), Aggregate', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: ['Value 2 (+)', 'Country', 'Year'] }, - color: { set: null }, - label: { set: null } - }, - title: '1 Column / Sum(?)', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 2, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: ['Value 2 (+)', 'Country', 'Year'] }, + color: { set: null }, + label: { set: null } + }, + title: '1 Column / Sum(?)', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 2, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: ['Value 2 (+)', 'Country', 'Year'] }, - color: { set: 'Country' }, - label: { set: null } - }, - title: '2 Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 0, - duration: 2 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: ['Value 2 (+)', 'Country', 'Year'] }, + color: { set: 'Country' }, + label: { set: null } + }, + title: '2 Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 0, + duration: 2 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: 'Country' }, - label: { set: null } - }, - title: '3 Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 0, - duration: 2 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: 'Country' }, + label: { set: null } + }, + title: '3 Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 0, + duration: 2 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: '4 Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 0, - duration: 2 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: '4 Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 0, + duration: 2 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' } - }, - title: 'Groupped Column / Comparison(?), Group(?)', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 2, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' } + }, + title: 'Groupped Column / Comparison(?), Group(?)', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 2, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Splitted Column / Components(?)', - geometry: 'rectangle', - split: true, - legend: 'color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Splitted Column / Components(?)', + geometry: 'rectangle', + split: true, + legend: 'color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Percentage Column / Ratio%(?)', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Percentage Column / Ratio%(?)', + align: 'stretch' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - split: false, - legend: 'color', - align: 'min' - } - }, - { - delay: 1 - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 5 (+/-)' }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot / + Continuous(?)', - geometry: 'circle', - split: false, - legend: 'color', - align: 'min' - } - }, - { - style: { - delay: 0.5, - duration: 1.5 - }, - geometry: { - delay: 0, - duration: 1.3 - }, - x: { - delay: 1.25, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0.75, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - noop: { set: null } - }, - title: 'Stacked Column / - Continuous(?)', - geometry: 'rectangle', - split: false, - legend: 'color', - align: 'min' - } - }, - { - delay: 1, - style: { - delay: 1.3, - duration: 1.5 - }, - geometry: { - delay: 1.5, - duration: 1.3 - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 0.75, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + split: false, + legend: 'color', + align: 'min' + } + }, + { + delay: 1 + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 5 (+/-)' }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot / + Continuous(?)', + geometry: 'circle', + split: false, + legend: 'color', + align: 'min' + } + }, + { + style: { + delay: 0.5, + duration: 1.5 + }, + geometry: { + delay: 0, + duration: 1.3 + }, + x: { + delay: 1.25, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0.75, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + noop: { set: null } + }, + title: 'Stacked Column / - Continuous(?)', + geometry: 'rectangle', + split: false, + legend: 'color', + align: 'min' + } + }, + { + delay: 1, + style: { + delay: 1.3, + duration: 1.5 + }, + geometry: { + delay: 1.5, + duration: 1.3 + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 0.75, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' } - }, - title: 'Lollipop / Distribute(?)', - geometry: 'circle', - split: false - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' } + }, + title: 'Lollipop / Distribute(?)', + geometry: 'circle', + split: false + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/05_C_R.mjs b/test/integration/test_cases/ww_next_steps/next_steps/05_C_R.mjs index caf476bd6..308ca960d 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/05_C_R.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/05_C_R.mjs @@ -1,270 +1,270 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: 'Splitted Column', - geometry: 'rectangle', - orientation: 'horizontal', - split: true - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: 'Splitted Column', + geometry: 'rectangle', + orientation: 'horizontal', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: ['Value 2 (+)'], range: { min: '0%', max: '100%' } }, - color: { set: 'Country' } - }, - title: 'Groupped Column / Comparison(?), Group(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: false - }, - style: { - title: { - fontSize: '2em' - } - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: 'Splitted Column / Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: ['Value 2 (+)'], range: { min: '0%', max: '100%' } }, + color: { set: 'Country' } + }, + title: 'Groupped Column / Comparison(?), Group(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: false + }, + style: { + title: { + fontSize: '2em' + } + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: 'Splitted Column / Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Country', 'Year'] }, - y: { set: ['Value 2 (+)'], range: { min: '0%', max: '100%' } }, - color: { set: 'Country' } - }, - title: 'Groupped Column / Comparison(?), Group(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: 'Splitted Column / Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: true - } - }, - { - delay: 1 - } - ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: 'Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: 'Splitted Column / Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Country', 'Year'] }, + y: { set: ['Value 2 (+)'], range: { min: '0%', max: '100%' } }, + color: { set: 'Country' } + }, + title: 'Groupped Column / Comparison(?), Group(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: 'Splitted Column / Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: true + } + }, + { + delay: 1 + } + ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: 'Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: 'Splitted Column / Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Stacked Percentage Column / Ratio%(?)', - geometry: 'rectangle', - orientation: 'horizontal', - align: 'stretch', - split: false - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: 'Splitted Column / Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - align: 'min', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Stacked Percentage Column / Ratio%(?)', + geometry: 'rectangle', + orientation: 'horizontal', + align: 'stretch', + split: false + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: 'Splitted Column / Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + align: 'min', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 5 (+/-)' }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot / + Continuous(?)', - geometry: 'circle', - orientation: 'horizontal', - align: 'min', - split: false - } - }, - { - style: { - delay: 0.5, - duration: 1.5 - }, - geometry: { - delay: 0, - duration: 1.3 - }, - x: { - delay: 1, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 1, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' }, - noop: { set: null } - }, - title: 'Splitted Column / - Continuous(?), Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - align: 'min', - split: true - }, - style: { - title: { - fontSize: '1.8em' - } - } - }, - { - style: { - delay: 1.3, - duration: 1.5 - }, - geometry: { - delay: 2, - duration: 1.3 - }, - x: { - delay: 1, - duration: 1 - // easing: 'ease-out' - }, - y: { - delay: 1, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 5 (+/-)' }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot / + Continuous(?)', + geometry: 'circle', + orientation: 'horizontal', + align: 'min', + split: false + } + }, + { + style: { + delay: 0.5, + duration: 1.5 + }, + geometry: { + delay: 0, + duration: 1.3 + }, + x: { + delay: 1, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 1, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' }, + noop: { set: null } + }, + title: 'Splitted Column / - Continuous(?), Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + align: 'min', + split: true + }, + style: { + title: { + fontSize: '1.8em' + } + } + }, + { + style: { + delay: 1.3, + duration: 1.5 + }, + geometry: { + delay: 2, + duration: 1.3 + }, + x: { + delay: 1, + duration: 1 + // easing: 'ease-out' + }, + y: { + delay: 1, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs b/test/integration/test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs index 45ee5e089..161beb7e2 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs @@ -1,60 +1,60 @@ import { data_1974_1990 } from '../../../test_data/IMDB_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_1974_1990, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Index', range: { max: '110%' } } - }, - title: 'Dot plot', - align: 'none', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: data_1974_1990, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Index', range: { max: '110%' } } + }, + title: 'Dot plot', + align: 'none', + geometry: 'circle' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'IMDb Rating', range: { max: '110%' } }, - noop: { set: 'Index' } - }, - title: 'Dot plot / + Continuous(?), Distribution(?)', - align: 'none', - orientation: 'vertical', - split: true, - geometry: 'circle' - } - }, - { - delay: 1.5, - easing: 'cubic-bezier(0.65,0,0.65,1)', - geometry: { - delay: 0.5, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.8 - // easing: 'ease-out' - }, - y: { - delay: 0.2, - duration: 0.8 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'IMDb Rating', range: { max: '110%' } }, + noop: { set: 'Index' } + }, + title: 'Dot plot / + Continuous(?), Distribution(?)', + align: 'none', + orientation: 'vertical', + split: true, + geometry: 'circle' + } + }, + { + delay: 1.5, + easing: 'cubic-bezier(0.65,0,0.65,1)', + geometry: { + delay: 0.5, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.8 + // easing: 'ease-out' + }, + y: { + delay: 0.2, + duration: 0.8 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/22_C_C.mjs b/test/integration/test_cases/ww_next_steps/next_steps/22_C_C.mjs index f0fc7d967..c1fcb2199 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/22_C_C.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/22_C_C.mjs @@ -1,400 +1,400 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: ['Year'] } - }, - title: 'Scatter plot', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - }, - style: { - title: { - fontSize: '2em' - } - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: ['Year'] } + }, + title: 'Scatter plot', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + }, + style: { + title: { + fontSize: '2em' + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - size: { set: 'Value 2 (+)' }, - noop: { set: 'Year' } - }, - title: 'Bubble plot / + Continuous(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + size: { set: 'Value 2 (+)' }, + noop: { set: 'Year' } + }, + title: 'Bubble plot / + Continuous(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - size: { set: null }, - noop: { set: 'Year' } - }, - title: 'Scatter plot / - Continuous(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + size: { set: null }, + noop: { set: 'Year' } + }, + title: 'Scatter plot / - Continuous(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: 'Country' } - }, - title: 'Scatter plot / Drill down(?), + Discrete(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 0, - duration: 0.5 - } - ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: 'Scatter plot / Drill down(?), + Discrete(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: 'Country' } + }, + title: 'Scatter plot / Drill down(?), + Discrete(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 0, + duration: 0.5 + } + ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: 'Scatter plot / Drill down(?), + Discrete(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: 'Dot plot / Distribution(?) - Continuous(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: 'Dot plot / Distribution(?) - Continuous(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Country' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: 'Dot plot / Distribution(?) - Continuous(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Country' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: 'Dot plot / Distribution(?) - Continuous(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: 'Scatter plot / Drill down(?), + Discrete(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: 'Scatter plot / Drill down(?), + Discrete(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 1 (+)', 'Country'] }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - color: { set: 'Country' } - }, - title: 'Trellis Scatter / Components(?), Part-to-whole(?), Split(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian', - orientation: 'vertical', - split: true - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - color: { set: 'Country' } - }, - title: 'Scatter plot / Trellis off(?), Merge(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 1 (+)', 'Country'] }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + color: { set: 'Country' } + }, + title: 'Trellis Scatter / Components(?), Part-to-whole(?), Split(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian', + orientation: 'vertical', + split: true + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + color: { set: 'Country' } + }, + title: 'Scatter plot / Trellis off(?), Merge(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Bubble plot / + Continuous(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Bubble plot / + Continuous(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: null }, - size: { set: ['Country', 'Year', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Bubble / Aggregate(?), - Disc(?), - Conti(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: null }, + size: { set: ['Country', 'Year', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Bubble / Aggregate(?), - Disc(?), - Conti(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: null }, - size: { set: 'Value 2 (+)' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: 'Bubble / Total(?), Aggregate(?), - Disc(?), - Conti(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - }, - style: { - plot: { - marker: { - label: { - fontSize: '1.5em' - } - } - } - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: null }, + size: { set: 'Value 2 (+)' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: 'Bubble / Total(?), Aggregate(?), - Disc(?), - Conti(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + }, + style: { + plot: { + marker: { + label: { + fontSize: '1.5em' + } + } + } + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: null }, - size: { set: ['Country', 'Year', 'Value 2 (+)'] }, - color: { set: null }, - label: { set: null } - }, - title: 'Bubble / Drill down(?), + Disc(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: null }, + size: { set: ['Country', 'Year', 'Value 2 (+)'] }, + color: { set: null }, + label: { set: null } + }, + title: 'Bubble / Drill down(?), + Disc(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Country' }, - size: { set: 'Value 2 (+)' }, - color: { set: 'Year' } - }, - title: 'Bubble plot / + Continuous(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Country' }, + size: { set: 'Value 2 (+)' }, + color: { set: 'Year' } + }, + title: 'Bubble plot / + Continuous(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Year' } - }, - title: 'Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Year' } + }, + title: 'Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - size: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + size: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - size: { set: null }, - noop: { set: 'Year' } - }, - title: 'Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + size: { set: null }, + noop: { set: 'Year' } + }, + title: 'Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 0 + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/28_C_A.mjs b/test/integration/test_cases/ww_next_steps/next_steps/28_C_A.mjs index 29e57242e..40e28ddef 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/28_C_A.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/28_C_A.mjs @@ -1,443 +1,443 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: null } - }, - title: 'Area', - geometry: 'area' - }, - style: { - title: { - fontSize: '2em' - } - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: null } + }, + title: 'Area', + geometry: 'area' + }, + style: { + title: { + fontSize: '2em' + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area / Drill down(?), + Discrete(?)', - geometry: 'area' - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area / Drill down(?), + Discrete(?)', + geometry: 'area' + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart / Comparison(?), Components(?), ', - geometry: 'line' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart / Comparison(?), Components(?), ', + geometry: 'line' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Trellis Area / Trellis(?), Components(?), Part-to-whole(?) (sort???)', - geometry: 'area', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Trellis Area / Trellis(?), Components(?), Part-to-whole(?) (sort???)', + geometry: 'area', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area / Trellis off(?), Merge(?)', - geometry: 'area', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area / Trellis off(?), Merge(?)', + geometry: 'area', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area / Ratio(?)', - geometry: 'area', - align: 'stretch' - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area / Ratio(?)', + geometry: 'area', + align: 'stretch' + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area / Ratio off(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area / Ratio off(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Value 2 (+)', 'Country'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: 'Bar / Sum(?)', - geometry: 'area', - align: 'min', - split: true - } - }, - { - delay: 1, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Value 2 (+)', 'Country'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: 'Bar / Sum(?)', + geometry: 'area', + align: 'min', + split: true + } + }, + { + delay: 1, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: null } - }, - title: 'Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - split: false - } - }, - { - delay: 0, - duration: 1, - geometry: { - delay: 0, - duration: 0.5 - }, - coordSystem: { - delay: 0, - duration: 0.5 - }, - x: { - delay: 0, - duration: 1 - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: null } + }, + title: 'Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + split: false + } + }, + { + delay: 0, + duration: 1, + geometry: { + delay: 0, + duration: 0.5 + }, + coordSystem: { + delay: 0, + duration: 0.5 + }, + x: { + delay: 0, + duration: 1 + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: 'Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - split: false - } - }, - { - delay: 0, - duration: 0.3 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: 'Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + split: false + } + }, + { + delay: 0, + duration: 0.3 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: null }, - label: { set: null } - }, - title: 'Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - split: false - } - }, - { - delay: 1, - duration: 1, - geometry: { - delay: 0, - duration: 1 - }, - coordSystem: { - delay: 0, - duration: 0.5 - }, - x: { - delay: 0, - duration: 1 - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: null }, + label: { set: null } + }, + title: 'Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + split: false + } + }, + { + delay: 1, + duration: 1, + geometry: { + delay: 0, + duration: 1 + }, + coordSystem: { + delay: 0, + duration: 0.5 + }, + x: { + delay: 0, + duration: 1 + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Value 2 (+)', 'Country'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Area / Time distribution(?)', - geometry: 'area', - align: 'min', - split: true - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Value 2 (+)', 'Country'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Area / Time distribution(?)', + geometry: 'area', + align: 'min', + split: true + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area / Time distribution(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area / Time distribution(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)'] }, - color: { set: null } - }, - title: 'Area / Total timeseries(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)'] }, + color: { set: null } + }, + title: 'Area / Total timeseries(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area / Time distribution(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area / Time distribution(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: '16 Lollipop / Distribution(?)', - geometry: 'circle', - align: 'min', - split: false - } - }, - { - delay: 1, - duration: 2, - geometry: { - delay: 0, - duration: 0.75 - }, - coordSystem: { - delay: 0, - duration: 0.5 - }, - x: { - delay: 0.5, - duration: 1 - }, - y: { - delay: 0.5, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: '16 Lollipop / Distribution(?)', + geometry: 'circle', + align: 'min', + split: false + } + }, + { + delay: 1, + duration: 2, + geometry: { + delay: 0, + duration: 0.75 + }, + coordSystem: { + delay: 0, + duration: 0.5 + }, + x: { + delay: 0.5, + duration: 1 + }, + y: { + delay: 0.5, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area / Sum(?), Sum timeseries(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area / Sum(?), Sum timeseries(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs b/test/integration/test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs index f85df28d2..bc2b63b6c 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs @@ -1,61 +1,61 @@ import { data } from '../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => - chart.animate( - { - data, - config: { - channels: { - x: { - set: ['Revenue', 'Format'], - range: { min: '-1%', max: '110%' } - }, - y: 'Year', - color: 'Format' - }, - title: 'Violin', - geometry: 'area', - align: 'center', - orientation: 'vertical', - split: true - }, - style: { - plot: { - yAxis: { label: { numberScale: 'K, M, B, T' } } - } - } - }, - { - delay: 0 - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Format', - y: 'Year', - color: 'Format', - size: 'Revenue' - }, - title: 'Violin', - geometry: 'circle', - align: 'center', - orientation: 'vertical', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + data, + config: { + channels: { + x: { + set: ['Revenue', 'Format'], + range: { min: '-1%', max: '110%' } + }, + y: 'Year', + color: 'Format' + }, + title: 'Violin', + geometry: 'area', + align: 'center', + orientation: 'vertical', + split: true + }, + style: { + plot: { + yAxis: { label: { numberScale: 'K, M, B, T' } } + } + } + }, + { + delay: 0 + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Format', + y: 'Year', + color: 'Format', + size: 'Revenue' + }, + title: 'Violin', + geometry: 'circle', + align: 'center', + orientation: 'vertical', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps/38_C_L_line.mjs b/test/integration/test_cases/ww_next_steps/next_steps/38_C_L_line.mjs index 1c08f7123..cc2f6622a 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps/38_C_L_line.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps/38_C_L_line.mjs @@ -1,497 +1,497 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate( - { - data: data_6, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line', - geometry: 'line' - }, - style: { - title: { - fontSize: '2em' - } - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + data: data_6, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line', + geometry: 'line' + }, + style: { + title: { + fontSize: '2em' + } + } + }, + { + delay: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area / Sum(?), Stack(?)', - geometry: 'area' - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area / Sum(?), Stack(?)', + geometry: 'area' + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line / Comparison(?), Components(?)', - geometry: 'line', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line / Comparison(?), Components(?)', + geometry: 'line', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Trellis Area / Trellis(?), Components(?), Part-to-whole(?) (sort???)', - geometry: 'area', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Trellis Area / Trellis(?), Components(?), Part-to-whole(?) (sort???)', + geometry: 'area', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line / Comparison(?)', - geometry: 'line', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line / Comparison(?)', + geometry: 'line', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area / Ratio(?)', - geometry: 'area', - align: 'stretch' - } - }, - { - delay: 1, - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 0.75 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 0.5 - // easing: 'ease-out' - }, - y: { - delay: 0, - duration: 0.75 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area / Ratio(?)', + geometry: 'area', + align: 'stretch' + } + }, + { + delay: 1, + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 0.75 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 0.5 + // easing: 'ease-out' + }, + y: { + delay: 0, + duration: 0.75 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line / Comparison(?), Components(?)', - geometry: 'line', - align: 'min' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line / Comparison(?), Components(?)', + geometry: 'line', + align: 'min' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - size: { set: null }, - color: { set: 'Country' } - }, - title: 'Line / Aggregate(?), - Discrete(?)', - geometry: 'area', - align: 'min', - legend: null - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + size: { set: null }, + color: { set: 'Country' } + }, + title: 'Line / Aggregate(?), - Discrete(?)', + geometry: 'area', + align: 'min', + legend: null + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - size: { set: null }, - color: { set: null } - }, - title: '2222 Line / Aggregate(?), - Discrete(?)', - geometry: 'line', - align: 'min' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + size: { set: null }, + color: { set: null } + }, + title: '2222 Line / Aggregate(?), - Discrete(?)', + geometry: 'line', + align: 'min' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: null } - }, - title: 'Line / Drill down(?), + Discrete(?)', - geometry: 'line', - align: 'min' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: null } + }, + title: 'Line / Drill down(?), + Discrete(?)', + geometry: 'line', + align: 'min' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: 'Country' }, - color: { set: null } - }, - title: 'Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - legend: null - } - }, - { - geometry: { - delay: 0.5, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0.5, - duration: 1 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: 'Country' }, + color: { set: null } + }, + title: 'Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + legend: null + } + }, + { + geometry: { + delay: 0.5, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0.5, + duration: 1 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - y: { set: 'Country' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: 'Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - legend: null - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + y: { set: 'Country' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: 'Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + legend: null + } + }, + { + delay: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: 'Country' }, - color: { set: null }, - label: { set: null } - }, - title: 'Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - legend: null - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: 'Country' }, + color: { set: null }, + label: { set: null } + }, + title: 'Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + legend: null + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: null } - }, - title: 'Line / Drill down timeseries(?), + Discrete(?)', - geometry: 'line', - align: 'min', - legend: 'color' - } - }, - { - delay: 0, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: null } + }, + title: 'Line / Drill down timeseries(?), + Discrete(?)', + geometry: 'line', + align: 'min', + legend: 'color' + } + }, + { + delay: 0, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - align: 'min', - legend: 'color' - } - }, - { - delay: 1, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + align: 'min', + legend: 'color' + } + }, + { + delay: 1, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line / Comparison(?), + Components(?)', - geometry: 'line', - align: 'min' - } - }, - { - delay: 0, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-in' - }, - y: { - delay: 0.5, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line / Comparison(?), + Components(?)', + geometry: 'line', + align: 'min' + } + }, + { + delay: 0, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-in' + }, + y: { + delay: 0.5, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Line / Comparison(?), + Components(?)', - geometry: 'line', - split: true - } - }, - { - delay: 0, - geometry: { - delay: 0, - duration: 1 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 1 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 1 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Line / Comparison(?), + Components(?)', + geometry: 'line', + split: true + } + }, + { + delay: 0, + geometry: { + delay: 0, + duration: 1 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 1 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 1 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: null }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Heatmap / (?), (?), (sort???)', - geometry: 'rectangle', - legend: null, - split: false - }, - style: { - plot: { - marker: { - rectangleSpacing: 0 - } - } - } - }, - { - delay: 0, - style: { - delay: 0, - duration: 0.25 - }, - geometry: { - delay: 0, - duration: 0.5 - // easing: 'linear' - }, - x: { - delay: 0, - duration: 0.5 - // easing: 'ease-in' - }, - y: { - delay: 0, - duration: 0.5 - // easing: 'cubic-bezier(.39,0,.35,.99)' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: null }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Heatmap / (?), (?), (sort???)', + geometry: 'rectangle', + legend: null, + split: false + }, + style: { + plot: { + marker: { + rectangleSpacing: 0 + } + } + } + }, + { + delay: 0, + style: { + delay: 0, + duration: 0.25 + }, + geometry: { + delay: 0, + duration: 0.5 + // easing: 'linear' + }, + x: { + delay: 0, + duration: 0.5 + // easing: 'ease-in' + }, + y: { + delay: 0, + duration: 0.5 + // easing: 'cubic-bezier(.39,0,.35,.99)' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs index 588e14893..d98261658 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs @@ -1,197 +1,197 @@ import { data_8 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - config: { - channels: { - x: { set: 'Country' }, - y: { set: 'Value 2 (+)' }, - label: { set: 'Value 2 (+)' } - }, - title: '1 Column', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - }, - style: { - plot: { - xAxis: { - label: { - angle: '2.5' - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country' }, - y: { set: ['Value 2 (+)', 'Joy factors'] }, - color: { set: 'Joy factors' }, - label: { set: 'Value 2 (+)' } - }, - title: '2 Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: 'color' - }, - style: { - plot: { - marker: { - label: { - fontSize: 9 - } - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country' }, - y: { set: 'Value 2 (+)' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: '3 Column / Aggregate(?), - Discrete(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - }, - style: { - plot: { - marker: { - label: { - fontSize: null - } - } - } - } - }), + (chart) => + chart.animate({ + data: data_8, + config: { + channels: { + x: { set: 'Country' }, + y: { set: 'Value 2 (+)' }, + label: { set: 'Value 2 (+)' } + }, + title: '1 Column', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + }, + style: { + plot: { + xAxis: { + label: { + angle: '2.5' + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country' }, + y: { set: ['Value 2 (+)', 'Joy factors'] }, + color: { set: 'Joy factors' }, + label: { set: 'Value 2 (+)' } + }, + title: '2 Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: 'color' + }, + style: { + plot: { + marker: { + label: { + fontSize: 9 + } + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country' }, + y: { set: 'Value 2 (+)' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: '3 Column / Aggregate(?), - Discrete(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + }, + style: { + plot: { + marker: { + label: { + fontSize: null + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: 'Value 2 (+)' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: '4 Stacked Column / Total(?), Aggregate(?), - Discrete(?), Total(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: 'Value 2 (+)' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: '4 Stacked Column / Total(?), Aggregate(?), - Discrete(?), Total(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: null }, - label: { set: null } - }, - title: '5 Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: null }, + label: { set: null } + }, + title: '5 Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country' }, - y: { set: 'Value 2 (+)' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: '6 Column - Group(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country' }, + y: { set: 'Value 2 (+)' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: '6 Column - Group(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 5 (+/-)' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - label: { set: null } - }, - title: '7 Bubble plot / + Continuous(?)', - geometry: 'circle', - orientation: 'horizontal', - legend: 'color' - }, - style: { - plot: { - xAxis: { - label: { - angle: '3.14' - } - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 5 (+/-)' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + label: { set: null } + }, + title: '7 Bubble plot / + Continuous(?)', + geometry: 'circle', + orientation: 'horizontal', + legend: 'color' + }, + style: { + plot: { + xAxis: { + label: { + angle: '3.14' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - color: null, - label: 'Value 2 (+)' - }, - title: '8 Column / - Continuous(?)', - geometry: 'rectangle', - orientation: 'horizontal', - legend: null - }, - style: { - plot: { - xAxis: { - label: { - angle: null - } - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + color: null, + label: 'Value 2 (+)' + }, + title: '8 Column / - Continuous(?)', + geometry: 'rectangle', + orientation: 'horizontal', + legend: null + }, + style: { + plot: { + xAxis: { + label: { + angle: null + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, - y: null, - color: null, - label: 'Value 2 (+)' - }, - title: '9 Bar / Total(?)', - geometry: 'rectangle', - orientation: 'vertical', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 2 (+)'], range: { min: '0%', max: '110%' } }, + y: null, + color: null, + label: 'Value 2 (+)' + }, + title: '9 Bar / Total(?)', + geometry: 'rectangle', + orientation: 'vertical', + legend: null + } + }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum.mjs index c2ac57a2d..ed35d7883 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum.mjs @@ -1,67 +1,67 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Country === 'Belgium' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 5 (+/-)' }, - color: { - set: 'Value 5 (+/-)', - range: { min: '-45', max: '45' } - }, - noop: { set: 'Country' }, - label: { set: 'Value 5 (+/-)' } - }, - title: '1 Column (+,-)', - legend: 'color' - }, - style: { - plot: { - marker: { - colorGradient: [ - '#ac1727 0', - '#e36c56 0.15', - '#f4b096 0.35', - '#d5d7d9 0.5', - '#9fbffa 0.65', - '#6389ec 0.85', - '#3d51b8 1' - ].join(), - label: { position: 'top' } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Country === 'Belgium' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 5 (+/-)' }, + color: { + set: 'Value 5 (+/-)', + range: { min: '-45', max: '45' } + }, + noop: { set: 'Country' }, + label: { set: 'Value 5 (+/-)' } + }, + title: '1 Column (+,-)', + legend: 'color' + }, + style: { + plot: { + marker: { + colorGradient: [ + '#ac1727 0', + '#e36c56 0.15', + '#f4b096 0.35', + '#d5d7d9 0.5', + '#9fbffa 0.65', + '#6389ec 0.85', + '#3d51b8 1' + ].join(), + label: { position: 'top' } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Year', 'Value 5 (+/-)'] } - }, - title: '2 Waterfall / Sum?, Comparison?' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Year', 'Value 5 (+/-)'] } + }, + title: '2 Waterfall / Sum?, Comparison?' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Value 5 (+/-)'] } - }, - title: '3 Column (+,-) / Goroup?' - } - }, - { - delay: 2 - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Value 5 (+/-)'] } + }, + title: '3 Column (+,-) / Goroup?' + } + }, + { + delay: 2 + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs index 2ae46ac93..fdc699bbb 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs @@ -1,214 +1,214 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: '1 Groupped Column', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: '1 Groupped Column', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: '2 Stacked Column / Sum(?) sub-elements', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: '3 Groupped Column / Comparison(?), Group(?)', - geometry: 'rectangle', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: '2 Stacked Column / Sum(?) sub-elements', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: '3 Groupped Column / Comparison(?), Group(?)', + geometry: 'rectangle', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - label: { set: ['Value 2 (+)'] } - }, - title: '5 Stacked Column / Aggregate(?), Sum(?), - Discrete(?) elements', - geometry: 'rectangle', - split: false - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + label: { set: ['Value 2 (+)'] } + }, + title: '5 Stacked Column / Aggregate(?), Sum(?), - Discrete(?) elements', + geometry: 'rectangle', + split: false + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: ['Year', 'Country'], - y: ['Value 2 (+)'], - color: 'Country', - label: null - }, - title: '7 Groupped Column / Drill down(?), + Discrete(?), Groupped(?)', - geometry: 'rectangle', - legend: null - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: ['Year', 'Country'], + y: ['Value 2 (+)'], + color: 'Country', + label: null + }, + title: '7 Groupped Column / Drill down(?), + Discrete(?), Groupped(?)', + geometry: 'rectangle', + legend: null + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: '8 Stacked Percentage Column / Ratio%(?)', - align: 'stretch', - legend: 'color' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: '8 Stacked Percentage Column / Ratio%(?)', + align: 'stretch', + legend: 'color' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' } - }, - title: '9 Groupped Column / Comparison(?), Group(?)', - align: 'min' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' } + }, + title: '9 Groupped Column / Comparison(?), Group(?)', + align: 'min' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: '11 Column / Total(?) Aggregate(?) - Discrete(?)', - align: 'min', - legend: null - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: '11 Column / Total(?) Aggregate(?) - Discrete(?)', + align: 'min', + legend: null + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' }, - label: null - }, - title: '13 Groupped Column / Comparison(?), Group(?)', - align: 'min', - legend: 'color' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' }, + label: null + }, + title: '13 Groupped Column / Comparison(?), Group(?)', + align: 'min', + legend: 'color' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: null, range: { min: '0%', max: '100%' } }, - color: { set: 'Country' }, - label: { set: 'Value 2 (+)' } - }, - title: '15 Stacked Bar / Sum(?)', - align: 'min' - }, - style: { - plot: { - marker: { - label: { - fontSize: 9 - } - } - } - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: null, range: { min: '0%', max: '100%' } }, + color: { set: 'Country' }, + label: { set: 'Value 2 (+)' } + }, + title: '15 Stacked Bar / Sum(?)', + align: 'min' + }, + style: { + plot: { + marker: { + label: { + fontSize: 9 + } + } + } + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs index b864c9914..79acb63d7 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs @@ -1,394 +1,394 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate( - { - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: '1 Stacked Column', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: '1 Stacked Column', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - label: { set: ['Value 2 (+)'] } - }, - title: '2 Stacked Column / Aggregate(?), Sum(?), - Discrete(?)', - geometry: 'rectangle', - split: false - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + label: { set: ['Value 2 (+)'] } + }, + title: '2 Stacked Column / Aggregate(?), Sum(?), - Discrete(?)', + geometry: 'rectangle', + split: false + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - label: null - }, - title: '3 Stacked Column', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + label: null + }, + title: '3 Stacked Column', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: null }, - label: { set: ['Value 2 (+)'] } - }, - title: '4 Bar / Aggregate(?), Sum(?)', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: null }, + label: { set: ['Value 2 (+)'] } + }, + title: '4 Bar / Aggregate(?), Sum(?)', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - label: null - }, - title: '5 Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + label: null + }, + title: '5 Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: ['Country'] } - }, - title: '6 Column / Total(?), Aggregate', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: ['Country'] } + }, + title: '6 Column / Total(?), Aggregate', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: ['Value 2 (+)'] }, - color: { set: null }, - label: { set: ['Value 2 (+)'] } - }, - title: '7 Column / Total(?), Aggregate', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: ['Value 2 (+)'] }, + color: { set: null }, + label: { set: ['Value 2 (+)'] } + }, + title: '7 Column / Total(?), Aggregate', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - label: null - }, - title: '9 Stacked Column / Drill down(?), + Discrete(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + label: null + }, + title: '9 Stacked Column / Drill down(?), + Discrete(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' } - }, - title: '10 Groupped Column / Comparison(?), Group(?)', - geometry: 'rectangle', - split: false, - legend: null - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' } + }, + title: '10 Groupped Column / Comparison(?), Group(?)', + geometry: 'rectangle', + split: false, + legend: null + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: '11 Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: '11 Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: '12 Splitted Column / Components(?)', - geometry: 'rectangle', - split: true, - legend: 'color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: '12 Splitted Column / Components(?)', + geometry: 'rectangle', + split: true, + legend: 'color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: '13 Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - split: false, - legend: 'color' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: '13 Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + split: false, + legend: 'color' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: '14 Stacked Percentage Column / Ratio%(?)', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: '14 Stacked Percentage Column / Ratio%(?)', + align: 'stretch' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: '15 Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - split: false, - legend: 'color', - align: 'min' - } - }, - { - delay: 0, - duration: 1 - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 5 (+/-)' }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: '16 Scatter plot / + Continuous(?)', - geometry: 'circle', - split: false, - legend: 'color', - align: 'min' - } - }, - { - delay: 0, - duration: 1 - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' }, - noop: { set: null } - }, - title: '17 Stacked Column / - Continuous(?)', - geometry: 'rectangle', - split: false, - legend: 'color', - align: 'min' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: '15 Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + split: false, + legend: 'color', + align: 'min' + } + }, + { + delay: 0, + duration: 1 + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 5 (+/-)' }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: '16 Scatter plot / + Continuous(?)', + geometry: 'circle', + split: false, + legend: 'color', + align: 'min' + } + }, + { + delay: 0, + duration: 1 + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' }, + noop: { set: null } + }, + title: '17 Stacked Column / - Continuous(?)', + geometry: 'rectangle', + split: false, + legend: 'color', + align: 'min' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' } - }, - title: '18 Lollipop / Distribute(?)', - geometry: 'circle', - split: false - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' } + }, + title: '18 Lollipop / Distribute(?)', + geometry: 'circle', + split: false + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs index 48513b025..0d71783e1 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs @@ -1,226 +1,226 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: '1 Splitted Column', - geometry: 'rectangle', - orientation: 'horizontal', - split: true - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: '1 Splitted Column', + geometry: 'rectangle', + orientation: 'horizontal', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Country'] }, - y: { set: ['Value 2 (+)'], range: { min: '0%', max: '100%' } }, - color: { set: 'Country' } - }, - title: '2 Groupped Column / Comparison(?), Group(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: false - }, - style: { - title: { - fontSize: '2em' - } - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: '3 Splitted Column / Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Country'] }, + y: { set: ['Value 2 (+)'], range: { min: '0%', max: '100%' } }, + color: { set: 'Country' } + }, + title: '2 Groupped Column / Comparison(?), Group(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: false + }, + style: { + title: { + fontSize: '2em' + } + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: '3 Splitted Column / Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Country', 'Year'] }, - y: { set: ['Value 2 (+)'], range: { min: '0%', max: '100%' } }, - color: { set: 'Country' } - }, - title: '4 Groupped Column / Comparison(?), Group(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: '5 Splitted Column / Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: true - } - }, - { - delay: 1 - } - ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: '6 Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: false - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: '7 Splitted Column / Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Country', 'Year'] }, + y: { set: ['Value 2 (+)'], range: { min: '0%', max: '100%' } }, + color: { set: 'Country' } + }, + title: '4 Groupped Column / Comparison(?), Group(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: '5 Splitted Column / Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: true + } + }, + { + delay: 1 + } + ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: '6 Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: false + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: '7 Splitted Column / Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: '8 Stacked Percentage Column / Ratio%(?)', - geometry: 'rectangle', - orientation: 'horizontal', - align: 'stretch', - split: false - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: '9 Splitted Column / Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - align: 'min', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: '8 Stacked Percentage Column / Ratio%(?)', + geometry: 'rectangle', + orientation: 'horizontal', + align: 'stretch', + split: false + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: '9 Splitted Column / Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + align: 'min', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 5 (+/-)' }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: '10 Scatter plot / + Continuous(?)', - geometry: 'circle', - orientation: 'horizontal', - align: 'min', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' }, - noop: { set: null } - }, - title: '11 Splitted Column / - Continuous(?), Components(?), Part-to-whole(?), Split(?)', - geometry: 'rectangle', - orientation: 'horizontal', - align: 'min', - split: true - }, - style: { - title: { - fontSize: '1.8em' - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 5 (+/-)' }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: '10 Scatter plot / + Continuous(?)', + geometry: 'circle', + orientation: 'horizontal', + align: 'min', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' }, + noop: { set: null } + }, + title: '11 Splitted Column / - Continuous(?), Components(?), Part-to-whole(?), Split(?)', + geometry: 'rectangle', + orientation: 'horizontal', + align: 'min', + split: true + }, + style: { + title: { + fontSize: '1.8em' + } + } + }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs index 450a20d16..f52622634 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs @@ -1,39 +1,39 @@ import { data_1974_1990 } from '../../../test_data/IMDB_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_1974_1990, - config: { - channels: { - x: 'Year', - y: { set: 'Index', range: { max: '110%' } } - }, - title: 'Dot plot', - align: 'none', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: data_1974_1990, + config: { + channels: { + x: 'Year', + y: { set: 'Index', range: { max: '110%' } } + }, + title: 'Dot plot', + align: 'none', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: { set: 'IMDb Rating', range: { max: '110%' } }, - noop: 'Index' - }, - title: 'Dot plot / + Continuous(?), Distribution(?)', - align: 'none', - orientation: 'vertical', - split: true, - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: { set: 'IMDb Rating', range: { max: '110%' } }, + noop: 'Index' + }, + title: 'Dot plot / + Continuous(?), Distribution(?)', + align: 'none', + orientation: 'vertical', + split: true, + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs index 75dc42c8d..3eeb7f6ae 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs @@ -1,333 +1,333 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: ['Year'] } - }, - title: '1 Scatter plot', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - }, - style: { - title: { - fontSize: '2em' - } - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: ['Year'] } + }, + title: '1 Scatter plot', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + }, + style: { + title: { + fontSize: '2em' + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - size: { set: 'Value 2 (+)' }, - noop: { set: 'Year' } - }, - title: '2 Bubble plot / + Continuous(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + size: { set: 'Value 2 (+)' }, + noop: { set: 'Year' } + }, + title: '2 Bubble plot / + Continuous(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - size: { set: null }, - noop: { set: 'Year' } - }, - title: '3 Scatter plot / - Continuous(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + size: { set: null }, + noop: { set: 'Year' } + }, + title: '3 Scatter plot / - Continuous(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: '5 Scatter plot / Drill down(?), + Discrete(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: '5 Scatter plot / Drill down(?), + Discrete(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: '6 Dot plot / Distribution(?) - Continuous(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: '6 Dot plot / Distribution(?) - Continuous(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Country' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: '7 Dot plot / Distribution(?) - Continuous(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Country' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: '7 Dot plot / Distribution(?) - Continuous(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: '8 Scatter plot / Drill down(?), + Discrete(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: '8 Scatter plot / Drill down(?), + Discrete(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Value 1 (+)', 'Country'] }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - color: { set: 'Country' } - }, - title: '9 Trellis Scatter / Components(?), Part-to-whole(?), Split(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian', - orientation: 'vertical', - split: true - } - }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - color: { set: 'Country' } - }, - title: '10 Scatter plot / Trellis off(?), Merge(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Value 1 (+)', 'Country'] }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + color: { set: 'Country' } + }, + title: '9 Trellis Scatter / Components(?), Part-to-whole(?), Split(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian', + orientation: 'vertical', + split: true + } + }), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + color: { set: 'Country' } + }, + title: '10 Scatter plot / Trellis off(?), Merge(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: '11 Bubble plot / + Continuous(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: '11 Bubble plot / + Continuous(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: null }, - size: { set: 'Value 2 (+)' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: '13 Bubble / Total(?), Aggregate(?), - Disc(?), - Conti(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - }, - style: { - plot: { - marker: { - label: { - fontSize: '1.5em' - } - } - } - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: null }, + size: { set: 'Value 2 (+)' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: '13 Bubble / Total(?), Aggregate(?), - Disc(?), - Conti(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + }, + style: { + plot: { + marker: { + label: { + fontSize: '1.5em' + } + } + } + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Country' }, - size: { set: 'Value 2 (+)' }, - color: { set: 'Year' }, - label: null - }, - title: '15 Bubble plot / + Continuous(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Country' }, + size: { set: 'Value 2 (+)' }, + color: { set: 'Year' }, + label: null + }, + title: '15 Bubble plot / + Continuous(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Year' } - }, - title: '16 Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Year' } + }, + title: '16 Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - size: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: '17 Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + size: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: '17 Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - size: { set: null }, - noop: { set: 'Year' } - }, - title: '18 Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', - legend: null, - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + size: { set: null }, + noop: { set: 'Year' } + }, + title: '18 Scatter plot / Merge(?), Aggregate(?), - Discrete(?)', + legend: null, + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 0 + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs index 351a57c92..c46f94028 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs @@ -1,328 +1,328 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: null } - }, - title: '1 Area', - geometry: 'area' - }, - style: { - title: { - fontSize: '2em' - } - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: null } + }, + title: '1 Area', + geometry: 'area' + }, + style: { + title: { + fontSize: '2em' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '2 Stacked Area / Drill down(?), + Discrete(?)', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '2 Stacked Area / Drill down(?), + Discrete(?)', + geometry: 'area' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: '3 Line Chart / Comparison(?), Components(?), ', - geometry: 'line' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: '3 Line Chart / Comparison(?), Components(?), ', + geometry: 'line' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '4 Trellis Area / Trellis(?), Components(?), Part-to-whole(?) (sort???)', - geometry: 'area', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '4 Trellis Area / Trellis(?), Components(?), Part-to-whole(?) (sort???)', + geometry: 'area', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '5 Stacked Area / Trellis off(?), Merge(?)', - geometry: 'area', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '5 Stacked Area / Trellis off(?), Merge(?)', + geometry: 'area', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '6 Stacked Area / Ratio(?)', - geometry: 'area', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '6 Stacked Area / Ratio(?)', + geometry: 'area', + align: 'stretch' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '7 Stacked Area / Ratio off(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '7 Stacked Area / Ratio off(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Value 2 (+)', 'Country'], - range: { min: '0%', max: '100%' } - }, - color: { set: 'Country' } - }, - title: '8 Bar / Sum(?)', - geometry: 'area', - align: 'min', - split: true - } - }, - { - delay: 1, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Value 2 (+)', 'Country'], + range: { min: '0%', max: '100%' } + }, + color: { set: 'Country' } + }, + title: '8 Bar / Sum(?)', + geometry: 'area', + align: 'min', + split: true + } + }, + { + delay: 1, + duration: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: null } - }, - title: '9 Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: null } + }, + title: '9 Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + split: false + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: '10 Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - split: false - } - }, - { - delay: 0, - duration: 0.3 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: '10 Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + split: false + } + }, + { + delay: 0, + duration: 0.3 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: ['Country'] }, - color: { set: null }, - label: { set: null } - }, - title: '11 Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: ['Country'] }, + color: { set: null }, + label: { set: null } + }, + title: '11 Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + split: false + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { - set: ['Value 2 (+)', 'Country'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: '12 Area / Time distribution(?)', - geometry: 'area', - align: 'min', - split: true - } - }, - { - delay: 0, - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { + set: ['Value 2 (+)', 'Country'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: '12 Area / Time distribution(?)', + geometry: 'area', + align: 'min', + split: true + } + }, + { + delay: 0, + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '13 Stacked Area / Time distribution(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '13 Stacked Area / Time distribution(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)'] }, - color: { set: null } - }, - title: '14 Area / Total timeseries(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)'] }, + color: { set: null } + }, + title: '14 Area / Total timeseries(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '15 Stacked Area / Time distribution(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '15 Stacked Area / Time distribution(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: '16 Lollipop / Distribution(?)', - geometry: 'circle', - align: 'min', - split: false - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: '16 Lollipop / Distribution(?)', + geometry: 'circle', + align: 'min', + split: false + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '17 Stacked Area / Sum(?), Sum timeseries(?)', - geometry: 'area', - align: 'min', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '17 Stacked Area / Sum(?), Sum timeseries(?)', + geometry: 'area', + align: 'min', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs index 8660d9814..e0fa48063 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs @@ -1,311 +1,311 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate( - { - data: data_6, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: '1 Line', - geometry: 'line' - }, - style: { - title: { - fontSize: '2em' - } - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + data: data_6, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: '1 Line', + geometry: 'line' + }, + style: { + title: { + fontSize: '2em' + } + } + }, + { + delay: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '2 Stacked Area / Sum(?), Stack(?)', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '2 Stacked Area / Sum(?), Stack(?)', + geometry: 'area' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: '3 Line / Comparison(?), Components(?)', - geometry: 'line', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: '3 Line / Comparison(?), Components(?)', + geometry: 'line', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '4 Trellis Area / Trellis(?), Components(?), Part-to-whole(?) (sort???)', - geometry: 'area', - split: true - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '4 Trellis Area / Trellis(?), Components(?), Part-to-whole(?) (sort???)', + geometry: 'area', + split: true + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: '5 Line / Comparison(?)', - geometry: 'line', - split: false - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: '5 Line / Comparison(?)', + geometry: 'line', + split: false + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Value 2 (+)', 'Country'] }, - color: { set: 'Country' } - }, - title: '6 Stacked Area / Ratio(?)', - geometry: 'area', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Value 2 (+)', 'Country'] }, + color: { set: 'Country' } + }, + title: '6 Stacked Area / Ratio(?)', + geometry: 'area', + align: 'stretch' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: '7 Line / Comparison(?), Components(?)', - geometry: 'line', - align: 'min' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: '7 Line / Comparison(?), Components(?)', + geometry: 'line', + align: 'min' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - size: { set: 'Country' }, - color: { set: null } - }, - title: '8 Line / Aggregate(?), - Discrete(?)', - geometry: 'line', - align: 'min' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + size: { set: 'Country' }, + color: { set: null } + }, + title: '8 Line / Aggregate(?), - Discrete(?)', + geometry: 'line', + align: 'min' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: null } - }, - title: '9 Line / Drill down(?), + Discrete(?)', - geometry: 'line', - align: 'min' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: null } + }, + title: '9 Line / Drill down(?), + Discrete(?)', + geometry: 'line', + align: 'min' + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: 'Country' }, - color: { set: null } - }, - title: '10 Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - legend: null - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: 'Country' }, + color: { set: null } + }, + title: '10 Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + legend: null + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 2 (+)'] }, - y: { set: 'Country' }, - color: { set: null }, - label: { set: 'Value 2 (+)' } - }, - title: '11 Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - legend: null - } - }, - { - delay: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 2 (+)'] }, + y: { set: 'Country' }, + color: { set: null }, + label: { set: 'Value 2 (+)' } + }, + title: '11 Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + legend: null + } + }, + { + delay: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 2 (+)'] }, - y: { set: 'Country' }, - color: { set: null }, - label: { set: null } - }, - title: '12 Bar / Sum(?)', - geometry: 'rectangle', - align: 'min', - legend: null - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 2 (+)'] }, + y: { set: 'Country' }, + color: { set: null }, + label: { set: null } + }, + title: '12 Bar / Sum(?)', + geometry: 'rectangle', + align: 'min', + legend: null + } + }, + { + delay: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: null } - }, - title: '13 Line / Drill down timeseries(?), + Discrete(?)', - geometry: 'line', - align: 'min', - legend: 'color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: null } + }, + title: '13 Line / Drill down timeseries(?), + Discrete(?)', + geometry: 'line', + align: 'min', + legend: 'color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: '14 Stacked Column / Sum(?), Stack(?)', - geometry: 'rectangle', - align: 'min', - legend: 'color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: '14 Stacked Column / Sum(?), Stack(?)', + geometry: 'rectangle', + align: 'min', + legend: 'color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: '15 Line / Comparison(?), + Components(?)', - geometry: 'line', - align: 'min' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: '15 Line / Comparison(?), + Components(?)', + geometry: 'line', + align: 'min' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: '16 Line / Comparison(?), + Components(?)', - geometry: 'line', - split: true - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: '16 Line / Comparison(?), + Components(?)', + geometry: 'line', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: null }, - lightness: { set: 'Value 2 (+)' } - }, - title: '17 Heatmap / (?), (?), (sort???)', - geometry: 'rectangle', - legend: null, - split: false - }, - style: { - plot: { - marker: { - rectangleSpacing: 0 - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: null }, + lightness: { set: 'Value 2 (+)' } + }, + title: '17 Heatmap / (?), (?), (sort???)', + geometry: 'rectangle', + legend: null, + split: false + }, + style: { + plot: { + marker: { + rectangleSpacing: 0 + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/axisLabel_problem.mjs b/test/integration/test_cases/ww_next_steps/next_steps_Tests/axisLabel_problem.mjs index 676f47b33..ad6e3c454 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_Tests/axisLabel_problem.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_Tests/axisLabel_problem.mjs @@ -1,51 +1,51 @@ import { data_6 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Country' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: '2 Dot plot / Distribution(?) - Continuous(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian', - orientation: 'vertical' - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Country' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: '2 Dot plot / Distribution(?) - Continuous(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian', + orientation: 'vertical' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: 'Value 3 (+)' }, - noop: { set: 'Year' }, - size: { set: null }, - color: { set: 'Country' } - }, - title: 'Scatter plot / Drill down(?), + Discrete(?)', - legend: 'color', - geometry: 'circle', - coordSystem: 'cartesian' - } - }, - { - delay: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: 'Value 3 (+)' }, + noop: { set: 'Year' }, + size: { set: null }, + color: { set: 'Country' } + }, + title: 'Scatter plot / Drill down(?), + Discrete(?)', + legend: 'color', + geometry: 'circle', + coordSystem: 'cartesian' + } + }, + { + delay: 1 + } + ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_01.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_01.mjs index b06a4a6a7..e427df2fe 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_01.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_01.mjs @@ -1,56 +1,56 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Country === 'Belgium' - }), - config: { - channels: { - x: 'Year', - y: ['Year', 'Value 5 (+/-)'], - color: { - set: 'Value 5 (+/-)', - range: { min: '-45', max: '45' } - }, - noop: 'Country', - label: 'Value 5 (+/-)' - }, - title: 'Waterfall', - legend: 'color' - }, - style: { - plot: { - marker: { - colorGradient: [ - '#ac1727 0', - '#e36c56 0.15', - '#f4b096 0.35', - '#d5d7d9 0.5', - '#9fbffa 0.65', - '#6389ec 0.85', - '#3d51b8 1' - ].join(), - label: { position: 'top' } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Country === 'Belgium' + }), + config: { + channels: { + x: 'Year', + y: ['Year', 'Value 5 (+/-)'], + color: { + set: 'Value 5 (+/-)', + range: { min: '-45', max: '45' } + }, + noop: 'Country', + label: 'Value 5 (+/-)' + }, + title: 'Waterfall', + legend: 'color' + }, + style: { + plot: { + marker: { + colorGradient: [ + '#ac1727 0', + '#e36c56 0.15', + '#f4b096 0.35', + '#d5d7d9 0.5', + '#9fbffa 0.65', + '#6389ec 0.85', + '#3d51b8 1' + ].join(), + label: { position: 'top' } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Value 5 (+/-)'] } - }, - title: 'Unstack Markers to Compare + & - Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Value 5 (+/-)'] } + }, + title: 'Unstack Markers to Compare + & - Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_02.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_02.mjs index 00369aece..755b666b4 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_02.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_02.mjs @@ -1,34 +1,34 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)' - }, - title: 'Group Marker to Compare Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)' + }, + title: 'Group Marker to Compare Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_03.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_03.mjs index 6b1ed7814..e1860e5bb 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_03.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_03.mjs @@ -1,34 +1,34 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, - title: 'Change & Unstack Geometry to Compare Components', - geometry: 'line' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, + title: 'Change & Unstack Geometry to Compare Components', + geometry: 'line' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_04.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_04.mjs index ce5d5aae4..589a3b208 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_04.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_04.mjs @@ -1,36 +1,36 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column', - align: 'stretch' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column', + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)' - }, - title: 'Group and Align min Markers to Compare Values', - align: 'min' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)' + }, + title: 'Group and Align min Markers to Compare Values', + align: 'min' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_05.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_05.mjs index c595cfc97..6421b7ec4 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_05.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_05.mjs @@ -1,48 +1,48 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Splitted Column', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Splitted Column', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - label: null - }, - title: 'Split off & Group Markers to Compare Values', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + label: null + }, + title: 'Split off & Group Markers to Compare Values', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_06.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_06.mjs index 7530b3ead..2322200ed 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_06.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_06.mjs @@ -1,48 +1,48 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Splitted Column', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Splitted Column', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country', 'Year'], - y: 'Value 2 (+)', - label: null - }, - title: 'Split off & Group Markers to See Trends by Components', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country', 'Year'], + y: 'Value 2 (+)', + label: null + }, + title: 'Split off & Group Markers to See Trends by Components', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_09.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_09.mjs index fe86f04b3..e69296896 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_09.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_09.mjs @@ -1,37 +1,37 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Trellis Area', - geometry: 'area', - split: true - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Trellis Area', + geometry: 'area', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, - title: 'CHG Geom., Split off & Unstack to Compare Components', - geometry: 'line', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, + title: 'CHG Geom., Split off & Unstack to Compare Components', + geometry: 'line', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_10.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_10.mjs index c45b2d29c..7cfe3c731 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_10.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_10.mjs @@ -1,41 +1,41 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: 'Value 2 (+)' - }, - title: 'Change Geom. & Unstack to Compare Components', - geometry: 'line', - align: 'min' - } - }, - { - delay: 1 - } - ), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate( + { + config: { + channels: { + y: 'Value 2 (+)' + }, + title: 'Change Geom. & Unstack to Compare Components', + geometry: 'line', + align: 'min' + } + }, + { + delay: 1 + } + ), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_11.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_11.mjs index 7d551260b..5cda7ce04 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_11.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_11.mjs @@ -1,37 +1,37 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Percentage Stacked Area', - geometry: 'area', - align: 'stretch' - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Percentage Stacked Area', + geometry: 'area', + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, - title: 'Align min, CHG Geom. & Unstack to Comp. Components', - geometry: 'line', - align: 'min' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, + title: 'Align min, CHG Geom. & Unstack to Comp. Components', + geometry: 'line', + align: 'min' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_01.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_01.mjs index 151e4cf77..a2d4536e1 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_01.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_01.mjs @@ -1,46 +1,46 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Groupped Column', - geometry: 'rectangle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Split Components to See them Separately', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Groupped Column', + geometry: 'rectangle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Split Components to See them Separately', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_02.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_02.mjs index dbd325895..c157abce9 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_02.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_02.mjs @@ -1,46 +1,46 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: ['Country', 'Year'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Groupped Column by Countries and Time', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Split Components to Compare Components Year by Year', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: { + channels: { + x: ['Country', 'Year'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Groupped Column by Countries and Time', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Split Components to Compare Components Year by Year', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_03.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_03.mjs index f66203005..f2d34f360 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_03.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_03.mjs @@ -1,44 +1,44 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: 'Value 2 (+)' - }, - title: 'Split Components to See them Separately', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: 'Value 2 (+)' + }, + title: 'Split Components to See them Separately', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_04.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_04.mjs index 824c634cc..d8d522119 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_04.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_04.mjs @@ -1,46 +1,46 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Percentage Column', - align: 'stretch', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - label: 'Value 2 (+)' - }, - title: 'ALign min & Split Components to See them Separately', - align: 'min', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Percentage Column', + align: 'stretch', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + label: 'Value 2 (+)' + }, + title: 'ALign min & Split Components to See them Separately', + align: 'min', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_05.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_05.mjs index d438aaf79..43aa81e09 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_05.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_05.mjs @@ -1,39 +1,39 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - noop: 'Year', - size: null, - color: 'Country' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + noop: 'Year', + size: null, + color: 'Country' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 1 (+)', 'Country'] - }, - title: 'Split Components to See them Separately', - geometry: 'circle', - orientation: 'vertical', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 1 (+)', 'Country'] + }, + title: 'Split Components to See them Separately', + geometry: 'circle', + orientation: 'vertical', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_06.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_06.mjs index 9d9f51179..5c101ae2e 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_06.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_06.mjs @@ -1,32 +1,32 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Split Components to See them Separately', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + title: 'Split Components to See them Separately', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_07.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_07.mjs index 42cd09339..be5ecd8f4 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_07.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_07.mjs @@ -1,36 +1,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Country'] - }, - title: 'Split Components to See them Separately', - geometry: 'area', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Country'] + }, + title: 'Split Components to See them Separately', + geometry: 'area', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_01.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_01.mjs index 0562d1d2a..3b322f92c 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_01.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_01.mjs @@ -1,34 +1,34 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, - title: 'Change Geometry & Unstack to See Distribution of Values', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, + title: 'Change Geometry & Unstack to See Distribution of Values', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_02.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_02.mjs index f3a6fa4ee..a37af113d 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_02.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_02.mjs @@ -1,35 +1,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)' - }, - title: 'Change Geometry & Unstack to See Distribution of Values', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)' + }, + title: 'Change Geometry & Unstack to See Distribution of Values', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_03.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_03.mjs index cf0a76f2c..7260f0279 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_03.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_03.mjs @@ -1,36 +1,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Column' - } - }), + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 4 (+/-)', - color: 'Country', - label: 'Country' - }, - title: 'Change Geom. to See Distribution by a New Measure', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 4 (+/-)', + color: 'Country', + label: 'Country' + }, + title: 'Change Geom. to See Distribution by a New Measure', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_04.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_04.mjs index 979bf0b91..8cde073b9 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_04.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_04.mjs @@ -1,36 +1,36 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 2 (+)', - noop: 'Year', - label: 'Year' - }, - title: 'Change Geom. to See Distribution by a New Measure', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 2 (+)', + noop: 'Year', + label: 'Year' + }, + title: 'Change Geom. to See Distribution by a New Measure', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_05.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_05.mjs index c036579a3..f4c1e64b0 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_05.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_05.mjs @@ -1,50 +1,50 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Splitted Column', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Splitted Column', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 2 (+)', - noop: 'Year', - label: null - }, - title: 'Change Geom. to See Distribution by a New Measure', - geometry: 'circle', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 2 (+)', + noop: 'Year', + label: null + }, + title: 'Change Geom. to See Distribution by a New Measure', + geometry: 'circle', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_06.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_06.mjs index 2d55cb8a5..2ba1f5565 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_06.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_06.mjs @@ -1,35 +1,35 @@ import { data_1974_1990 } from '../../../../test_data/IMDB_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_1974_1990, - config: { - channels: { - x: 'Year', - y: { set: 'Index', range: { max: '105%' } } - }, - title: 'Dot plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: data_1974_1990, + config: { + channels: { + x: 'Year', + y: { set: 'Index', range: { max: '105%' } } + }, + title: 'Dot plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'IMDb Rating', range: { max: '105%' } }, - noop: 'Index' - }, - title: "Let's See the Distribution by a New Measure", - orientation: 'vertical', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'IMDb Rating', range: { max: '105%' } }, + noop: 'Index' + }, + title: "Let's See the Distribution by a New Measure", + orientation: 'vertical', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_07.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_07.mjs index 1be756cf6..d9ed17690 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_07.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_07.mjs @@ -1,36 +1,36 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Country', - noop: ['Year', 'Country'] - }, - title: 'Dot plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 1 (+)', + y: 'Country', + noop: ['Year', 'Country'] + }, + title: 'Dot plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 3 (+)', - noop: 'Year', - color: 'Country' - }, - title: "Let's See the Distribution by a New Measure" - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 3 (+)', + noop: 'Year', + color: 'Country' + }, + title: "Let's See the Distribution by a New Measure" + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_08.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_08.mjs index 4b6085a5b..8c4ee71a6 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_08.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_08.mjs @@ -1,37 +1,37 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: ['Value 1 (+)', 'Country'], - y: 'Value 3 (+)', - noop: 'Year', - color: 'Country' - }, - title: 'Trellis Scatter plot', - geometry: 'circle', - split: true, - orientation: 'vertical' - } - }), + config: { + channels: { + x: ['Value 1 (+)', 'Country'], + y: 'Value 3 (+)', + noop: 'Year', + color: 'Country' + }, + title: 'Trellis Scatter plot', + geometry: 'circle', + split: true, + orientation: 'vertical' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 1 (+)' - }, - title: 'Split off Components to Compare Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 1 (+)' + }, + title: 'Split off Components to Compare Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_01.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_01.mjs index b63337c17..4ee4b3414 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_01.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_01.mjs @@ -1,32 +1,32 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Column' - } - }), + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Country' - }, - title: 'DD & Group for Categories of New Main Dimension' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Country' + }, + title: 'DD & Group for Categories of New Main Dimension' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_02.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_02.mjs index 1994cb293..5d30133c4 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_02.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_02.mjs @@ -1,40 +1,40 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Column' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors' - }, - title: 'Drill Down for Components of New 2nd Dimension' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Column' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors' + }, + title: 'Drill Down for Components of New 2nd Dimension' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_03.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_03.mjs index ade6d9a82..8f2544b3c 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_03.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_03.mjs @@ -1,35 +1,35 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Column' - } - }), + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: null - }, - title: 'DD & Group Subcategories by Main Dimension Categories' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: null + }, + title: 'DD & Group Subcategories by Main Dimension Categories' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_04.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_04.mjs index 3be8287bf..a678610c6 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_04.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_04.mjs @@ -1,35 +1,35 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Column' - } - }), + config: { + channels: { + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country', - label: null - }, - title: 'Drill Down, then Group New Categories' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country', + label: null + }, + title: 'Drill Down, then Group New Categories' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_05.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_05.mjs index eb0a8e0be..a31711140 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_05.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_05.mjs @@ -1,34 +1,34 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Stacked Column' - } - }), + config: { + channels: { + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Stacked Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - label: null - }, - title: 'DD & Group Existed Categories by New Main Dimension' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + label: null + }, + title: 'DD & Group Existed Categories by New Main Dimension' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_06.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_06.mjs index 804806ca7..f4f2d90a3 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_06.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_06.mjs @@ -1,36 +1,36 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Stacked Column' - } - }), + config: { + channels: { + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Stacked Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country', - label: null - }, - title: 'Drill Down, then Group New Categories' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country', + label: null + }, + title: 'Drill Down, then Group New Categories' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_07.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_07.mjs index a25aae2ee..0ea07cc4d 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_07.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_07.mjs @@ -1,36 +1,36 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Value 2 (+)', - y: 'Country', - label: 'Value 2 (+)' - }, - title: 'Stacked Column' - } - }), + config: { + channels: { + x: 'Value 2 (+)', + y: 'Country', + label: 'Value 2 (+)' + }, + title: 'Stacked Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: null - }, - title: 'Drill Down, then Stacked Values by the New Category' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: null + }, + title: 'Drill Down, then Stacked Values by the New Category' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_10.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_10.mjs index d3cb304b3..fafca627c 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_10.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_10.mjs @@ -1,36 +1,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - noop: 'Joy factors', - label: 'Joy factors' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + noop: 'Joy factors', + label: 'Joy factors' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Country', - label: null - }, - title: 'Drill Down, then Unstack new Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + color: 'Country', + label: null + }, + title: 'Drill Down, then Unstack new Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_11.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_11.mjs index b34e51780..069f0b830 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_11.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_11.mjs @@ -1,37 +1,37 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - noop: 'Country', - size: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Bubble', - geometry: 'circle' - } - }), + config: { + channels: { + noop: 'Country', + size: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Bubble', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - color: 'Year', - label: null - }, - title: 'Drill Down & Add +1 Measure to See Distribution by New Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + color: 'Year', + label: null + }, + title: 'Drill Down & Add +1 Measure to See Distribution by New Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_12.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_12.mjs index f2868f349..556e3c399 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_12.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_12.mjs @@ -1,34 +1,34 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)' - }, - title: 'Area', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)' + }, + title: 'Area', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Drill Down to See New Components' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Drill Down to See New Components' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_13.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_13.mjs index 0aea00840..86ce46862 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_13.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_13.mjs @@ -1,35 +1,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - size: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + size: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Country', - size: null - }, - title: 'Drill Down to Compare New Components' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + color: 'Country', + size: null + }, + title: 'Drill Down to Compare New Components' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/other/other_add_measure_01.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/other/other_add_measure_01.mjs index fca168c26..afccd5a50 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/other/other_add_measure_01.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/other/other_add_measure_01.mjs @@ -1,46 +1,46 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 3 (+)', - noop: 'Country', - label: 'Country' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 3 (+)', + noop: 'Country', + label: 'Country' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: 'Value 2 (+)', - label: ['Country', 'Value 2 (+)'] - }, - title: 'A New Measure is Added to Size Channel', - legend: 'size' - }, - style: { - plot: { - marker: { - label: { - format: 'dimensionsFirst' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + size: 'Value 2 (+)', + label: ['Country', 'Value 2 (+)'] + }, + title: 'A New Measure is Added to Size Channel', + legend: 'size' + }, + style: { + plot: { + marker: { + label: { + format: 'dimensionsFirst' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs index e54799cfc..161a480fd 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs @@ -1,31 +1,31 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Stretch Markers to See Ratio of Categories', - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + title: 'Stretch Markers to See Ratio of Categories', + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs index 92d7e1010..0a53f8dc6 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs @@ -1,35 +1,35 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Groupped Column' - } - }), + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Groupped Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'] - }, - title: 'Stack & Stretch Markers to See Ratio of Categories', - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'] + }, + title: 'Stack & Stretch Markers to See Ratio of Categories', + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs index c85915739..857e1325f 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs @@ -1,47 +1,47 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Splitted Column', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Splitted Column', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - label: null - }, - title: 'Split off & Stretch Markers to See Ratio of Categories', - align: 'stretch', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + label: null + }, + title: 'Split off & Stretch Markers to See Ratio of Categories', + align: 'stretch', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs index b5bef34f6..56661ca2b 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs @@ -1,32 +1,32 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Stretch Markers to See Ratio of Categories', - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + title: 'Stretch Markers to See Ratio of Categories', + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs index 803a691a8..2ee8f40fa 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs @@ -1,36 +1,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Value 2 (+)', 'Country'] - }, - title: 'CHG Geom. & Stretch Markers to See Ratio of Categories', - geometry: 'area', - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: ['Value 2 (+)', 'Country'] + }, + title: 'CHG Geom. & Stretch Markers to See Ratio of Categories', + geometry: 'area', + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_01.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_01.mjs index 636fa6e9c..bdc2cd194 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_01.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_01.mjs @@ -1,38 +1,38 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 4 (+/-)', - y: 'Value 2 (+)', - color: 'Country', - label: 'Value 4 (+/-)' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 4 (+/-)', + y: 'Value 2 (+)', + color: 'Country', + label: 'Value 4 (+/-)' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Country', - color: null, - label: 'Value 2 (+)' - }, - title: 'If Remove a Measure, then a Column Chart is Better', - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Country', + color: null, + label: 'Value 2 (+)' + }, + title: 'If Remove a Measure, then a Column Chart is Better', + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_02.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_02.mjs index ecb29cd1b..7545af75a 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_02.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_02.mjs @@ -1,38 +1,38 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 2 (+)', - color: 'Country', - noop: 'Year' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - noop: null - }, - title: 'If Remove a Measure, then a Stacked Column is Better', - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 2 (+)', + color: 'Country', + noop: 'Year' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + noop: null + }, + title: 'If Remove a Measure, then a Stacked Column is Better', + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_03.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_03.mjs index ed41b2332..d2b92ecba 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_03.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_03.mjs @@ -1,50 +1,50 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 2 (+)', - color: 'Country', - noop: 'Year' - }, - title: 'Scatter plot', - geometry: 'circle', - split: false - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - noop: null, - label: 'Value 2 (+)' - }, - title: 'If Remove a Measure, then a Splitted Column is Better', - geometry: 'rectangle', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 2 (+)', + color: 'Country', + noop: 'Year' + }, + title: 'Scatter plot', + geometry: 'circle', + split: false + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + noop: null, + label: 'Value 2 (+)' + }, + title: 'If Remove a Measure, then a Splitted Column is Better', + geometry: 'rectangle', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_04.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_04.mjs index 87c5af4e7..204824d3b 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_04.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_04.mjs @@ -1,36 +1,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - noop: 'Year', - color: 'Country' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + noop: 'Year', + color: 'Country' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year' - }, - title: 'If Remove a Measure, then a Dot plot is Better', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year' + }, + title: 'If Remove a Measure, then a Dot plot is Better', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_05.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_05.mjs index 862d1ba29..3b3e9190f 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_05.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_05.mjs @@ -1,39 +1,39 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - size: 'Value 2 (+)', - noop: 'Year', - label: ['Year', 'Value 2 (+)'] - }, - title: 'Bubble plot', - geometry: 'circle', - legend: 'size' - } - }), + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + size: 'Value 2 (+)', + noop: 'Year', + label: ['Year', 'Value 2 (+)'] + }, + title: 'Bubble plot', + geometry: 'circle', + legend: 'size' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: null, - label: 'Year' - }, - title: 'If Remove a Measure, then a Scatter plot is Better' - // legend: null - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + size: null, + label: 'Year' + }, + title: 'If Remove a Measure, then a Scatter plot is Better' + // legend: null + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_07.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_07.mjs index 8c40051dd..ce0eedc17 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_07.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_07.mjs @@ -1,36 +1,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)', - noop: 'Year', - color: 'Country' - }, - title: 'Dot plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)', + noop: 'Year', + color: 'Country' + }, + title: 'Dot plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 1 (+)', - y: 'Country' - }, - title: 'Dot plot, Oriented by the Other Category' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 1 (+)', + y: 'Country' + }, + title: 'Dot plot, Oriented by the Other Category' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs index 3cc7f8a90..7ae06acee 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs @@ -1,35 +1,35 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Column' - } - }), + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column to Sum of the Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column to Sum of the Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs index 9aa4df9b8..42b8191d3 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs @@ -1,52 +1,52 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => record.Country === 'Belgium' - }), - config: { - channels: { - x: 'Year', - y: 'Value 5 (+/-)', - color: { - set: 'Value 5 (+/-)', - range: { min: '-45', max: '45' } - }, - noop: 'Country', - label: 'Value 5 (+/-)' - }, - title: 'Column (+,-)', - legend: 'color' - }, - style: { - plot: { - marker: { - colorGradient: [ - '#ac1727 0', - '#e36c56 0.15', - '#f4b096 0.35', - '#d5d7d9 0.5', - '#9fbffa 0.65', - '#6389ec 0.85', - '#3d51b8 1' - ].join(), - label: { position: 'top' } - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => record.Country === 'Belgium' + }), + config: { + channels: { + x: 'Year', + y: 'Value 5 (+/-)', + color: { + set: 'Value 5 (+/-)', + range: { min: '-45', max: '45' } + }, + noop: 'Country', + label: 'Value 5 (+/-)' + }, + title: 'Column (+,-)', + legend: 'color' + }, + style: { + plot: { + marker: { + colorGradient: [ + '#ac1727 0', + '#e36c56 0.15', + '#f4b096 0.35', + '#d5d7d9 0.5', + '#9fbffa 0.65', + '#6389ec 0.85', + '#3d51b8 1' + ].join(), + label: { position: 'top' } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Year', 'Value 5 (+/-)'] - }, - title: 'Sum + & - Values is a Waterfall' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Year', 'Value 5 (+/-)'] + }, + title: 'Sum + & - Values is a Waterfall' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs index ab9ccbb70..58391f63d 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs @@ -1,34 +1,34 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Groupped Column' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Groupped Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - label: 'Value 2 (+)' - }, - title: 'Stacked Column to Sum of the Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + label: 'Value 2 (+)' + }, + title: 'Stacked Column to Sum of the Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs index e1dc5a130..751e68c2d 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs @@ -1,35 +1,35 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: ['Value 2 (+)', 'Joy factors'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Stacked Column' - } - }), + config: { + channels: { + x: 'Country', + y: ['Value 2 (+)', 'Joy factors'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Stacked Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - color: null - }, - title: 'Remove a Category to Aggregate they Values(' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + color: null + }, + title: 'Remove a Category to Aggregate they Values(' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs index fca48153c..7dc98633e 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs @@ -1,36 +1,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: 'Country', - color: null, - label: 'Value 2 (+)' - }, - title: 'Remove Category to Aggregate Components into Bar' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: 'Country', + color: null, + label: 'Value 2 (+)' + }, + title: 'Remove Category to Aggregate Components into Bar' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs index cac71476a..72a147940 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs @@ -1,35 +1,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Groupped Column' - } - }), + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Groupped Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column to Sum of the Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column to Sum of the Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs index 4bd083332..4fe9314f7 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs @@ -1,35 +1,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Groupped Column' - } - }), + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Groupped Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: ['Country', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Stacked Column to Sum of the Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: ['Country', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Stacked Column to Sum of the Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs index 7b9e081a1..e17753ee1 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs @@ -1,36 +1,36 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country', - label: null - }, - title: 'Groupped Column' - } - }), + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country', + label: null + }, + title: 'Groupped Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: null, - label: 'Value 2 (+)' - }, - title: 'Stacked Column to Sum Bar of the Values' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: null, + label: 'Value 2 (+)' + }, + title: 'Stacked Column to Sum Bar of the Values' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs index 92a2502b7..d8a26096c 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs @@ -1,32 +1,32 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Percentage Stacked Column', - align: 'stretch' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Percentage Stacked Column', + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Align min to Sum of the Values(Components?)', - align: 'min' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + title: 'Align min to Sum of the Values(Components?)', + align: 'min' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs index 707b48026..4f67c0378 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs @@ -1,46 +1,46 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Splitted Column', - split: true - }, - style: { - plot: { - marker: { - label: { - position: 'top', - fontSize: '0.6em' - } - } - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Splitted Column', + split: true + }, + style: { + plot: { + marker: { + label: { + position: 'top', + fontSize: '0.6em' + } + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - label: null - }, - title: 'Split off to Sum of Components(Values?)', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + label: null + }, + title: 'Split off to Sum of Components(Values?)', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs index 946b31860..28a38ee26 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs @@ -1,36 +1,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Lollipop', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Lollipop', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 2 (+)'], - noop: null - }, - title: 'Change and Stack Geometry to Sum of Components(Values?)', - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 2 (+)'], + noop: null + }, + title: 'Change and Stack Geometry to Sum of Components(Values?)', + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs index ef40f6564..14952f733 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs @@ -1,35 +1,35 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Lollipop', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Lollipop', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 2 (+)'] - }, - title: 'Change and Stack Geometry to Sum of Components', - geometry: 'area' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 2 (+)'] + }, + title: 'Change and Stack Geometry to Sum of Components', + geometry: 'area' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs index d99a845a7..a14845905 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs @@ -1,36 +1,36 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - color: 'Country', - label: 'Year' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + color: 'Country', + label: 'Year' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - // color: null, - label: 'Country' - }, - title: 'Remove Category to Aggregate & See Sum of Components' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + // color: null, + label: 'Country' + }, + title: 'Remove Category to Aggregate & See Sum of Components' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs index c22ea468c..6a64aee0d 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs @@ -1,37 +1,37 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - size: 'Value 2 (+)', - color: 'Year', - label: 'Country_code' - }, - title: 'Bubble plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + size: 'Value 2 (+)', + color: 'Year', + label: 'Country_code' + }, + title: 'Bubble plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - size: 'Value 2 (+)', - label: 'Year' - }, - title: 'Remove Category to Aggregate & See Sum of Components' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + size: 'Value 2 (+)', + label: 'Year' + }, + title: 'Remove Category to Aggregate & See Sum of Components' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs index 59a57ef71..31938849e 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs @@ -1,35 +1,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - color: null - }, - title: 'Remove Category to Aggregate & See Sum of Components' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + color: null + }, + title: 'Remove Category to Aggregate & See Sum of Components' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs index 66521db8b..3e54f73b2 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs @@ -1,38 +1,38 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: 'Country', - color: null, - label: 'Value 2 (+)' - }, - title: 'Remove Category to Aggregate & See Sum of Components in a Bar', - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: 'Country', + color: null, + label: 'Value 2 (+)' + }, + title: 'Remove Category to Aggregate & See Sum of Components in a Bar', + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs index 7064e08a5..b4ae93062 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs @@ -1,33 +1,33 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Splitted Area', - geometry: 'area', - split: true - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Splitted Area', + geometry: 'area', + split: true + } + }), - (chart) => - chart.animate({ - config: { - title: 'Split off to Sum of the Components', - split: false - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + title: 'Split off to Sum of the Components', + split: false + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs index f6e2579b4..ba27df69a 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs @@ -1,33 +1,33 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Percentage Stacked Area', - geometry: 'area', - align: 'stretch' - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Percentage Stacked Area', + geometry: 'area', + align: 'stretch' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Align min to See Sum instead of Ratio of Components', - align: 'min' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + title: 'Align min to See Sum instead of Ratio of Components', + align: 'min' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs index d9348ac90..4f62d740f 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs @@ -1,34 +1,34 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Percentage Stacked Area', - geometry: 'line' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Percentage Stacked Area', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: null - }, - title: 'Remove Category to Aggregate & to See Sum of Components' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + color: null + }, + title: 'Remove Category to Aggregate & to See Sum of Components' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs index 3df4e0a60..47652e0fc 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs @@ -1,38 +1,38 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Percentage Stacked Area', - geometry: 'line' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Percentage Stacked Area', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: 'Country', - color: null, - label: 'Value 2 (+)' - }, - title: 'Remove Category to Aggregate & See Sum of Components in a Bar', - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: 'Country', + color: null, + label: 'Value 2 (+)' + }, + title: 'Remove Category to Aggregate & See Sum of Components in a Bar', + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs index 87d4b90ff..1cc7cd782 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs @@ -1,35 +1,35 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 2 (+)'] - }, - title: 'Change & Stack Geometry to See Sum of Components', - geometry: 'area' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 2 (+)'] + }, + title: 'Change & Stack Geometry to See Sum of Components', + geometry: 'area' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_01.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_01.mjs index fb3152f5c..d6a7b01bb 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_01.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_01.mjs @@ -1,33 +1,33 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Column' - } - }), + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null - }, - title: 'Remove Category to Aggregate of Components' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null + }, + title: 'Remove Category to Aggregate of Components' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_02.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_02.mjs index 3a03608e0..210f1caeb 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_02.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_02.mjs @@ -1,35 +1,35 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - title: 'Column' - } - }), + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + title: 'Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: null - // label: 'Value 2 (+)' - }, - title: 'Remove Category to Aggregate of Components' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: null + // label: 'Value 2 (+)' + }, + title: 'Remove Category to Aggregate of Components' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_03.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_03.mjs index f42cf0c7f..e628f3e0c 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_03.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_03.mjs @@ -1,36 +1,36 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Groupped Column' - } - }), + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Groupped Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - color: null, - label: 'Value 2 (+)' - }, - title: 'Remove Category to Aggregate of Components', - legend: null - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + color: null, + label: 'Value 2 (+)' + }, + title: 'Remove Category to Aggregate of Components', + legend: null + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_04.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_04.mjs index 7c501ad8f..90cd2f285 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_04.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_04.mjs @@ -1,36 +1,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Groupped Column' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Groupped Column' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: 'Value 2 (+)', - color: null, - label: 'Value 2 (+)' - }, - title: 'Remove Category to Aggregate of Components' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: 'Value 2 (+)', + color: null, + label: 'Value 2 (+)' + }, + title: 'Remove Category to Aggregate of Components' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_05.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_05.mjs index eb68384d8..902765a19 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_05.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_05.mjs @@ -1,51 +1,51 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - noop: 'Year', - size: 'Value 2 (+)', - color: 'Country' - }, - title: 'Bubble plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + noop: 'Year', + size: 'Value 2 (+)', + color: 'Country' + }, + title: 'Bubble plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: null, - color: null, - label: 'Value 2 (+)' - }, - title: 'Remove Categ. & CHG Coord. Sys. to Aggregate of Components', - legend: null, - geometry: 'circle' - }, - style: { - plot: { - marker: { - label: { - fontSize: '1.5em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: null, + color: null, + label: 'Value 2 (+)' + }, + title: 'Remove Categ. & CHG Coord. Sys. to Aggregate of Components', + legend: null, + geometry: 'circle' + }, + style: { + plot: { + marker: { + label: { + fontSize: '1.5em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs index ce7d71345..6883a4b1a 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs @@ -1,38 +1,38 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate( - { - data: data_6, + (chart) => + chart.animate( + { + data: data_6, - config: { - channels: { - x: ['Value 2 (+)', 'Country'], - y: { range: { min: '-200%' } }, - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Donat Chart', - coordSystem: 'polar' - // sort: 'byValue', - // reverse: true - } - } - // {regroupStrategy: 'fade'} - ), + config: { + channels: { + x: ['Value 2 (+)', 'Country'], + y: { range: { min: '-200%' } }, + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Donat Chart', + coordSystem: 'polar' + // sort: 'byValue', + // reverse: true + } + } + // {regroupStrategy: 'fade'} + ), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 2 (+)', 'Country'], - y: { set: 'Value 3 (+)', range: { min: '0' } } - // label: null - }, - title: 'Coxcomb to Show One More Measure ' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 2 (+)', 'Country'], + y: { set: 'Value 3 (+)', range: { min: '0' } } + // label: null + }, + title: 'Coxcomb to Show One More Measure ' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot.mjs index 7e0199c54..761a61f83 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot.mjs @@ -1,40 +1,40 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Joy factors', - y: 'Value 5 (+/-)', - color: 'Joy factors', - /* The noop channel (no operation) splits the markers as all the other channels + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Joy factors', + y: 'Value 5 (+/-)', + color: 'Joy factors', + /* The noop channel (no operation) splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Country_code' - }, - title: 'Dot plot', - geometry: 'circle' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + noop: 'Country_code' + }, + title: 'Dot plot', + geometry: 'circle' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Joy factors', 'Value 6 (+/-)'], - label: 'Country_code' - }, - title: 'Value Distribution with Additional Measure' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Joy factors', 'Value 6 (+/-)'], + label: 'Country_code' + }, + title: 'Value Distribution with Additional Measure' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line.mjs index af4a1888d..cd526475e 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line.mjs @@ -1,30 +1,30 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 3 (+)'], - color: 'Country' - }, - title: 'Drill Down for Components of New 2nd Category', - geometry: 'area' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 3 (+)'], + color: 'Country' + }, + title: 'Drill Down for Components of New 2nd Category', + geometry: 'area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs index d7e6a253a..7e7ccbd42 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs @@ -1,33 +1,33 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - const f = data_8.filter - return chart.animate({ - data: Object.assign(data_8, { - filter: (record) => f(record) && record.Year >= 15 - }), - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: { - set: 'Year', - range: { min: '-3' } - }, - color: 'Country' - }, - title: 'Radial Bar Chart', - coordSystem: 'polar' - } - }) - }, - (chart) => - chart.animate({ - config: { - title: 'Split Bars to Show/See Values of 2nd Categories', - split: true - } - }) + (chart) => { + const f = data_8.filter + return chart.animate({ + data: Object.assign(data_8, { + filter: (record) => f(record) && record.Year >= 15 + }), + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: { + set: 'Year', + range: { min: '-3' } + }, + color: 'Country' + }, + title: 'Radial Bar Chart', + coordSystem: 'polar' + } + }) + }, + (chart) => + chart.animate({ + config: { + title: 'Split Bars to Show/See Values of 2nd Categories', + split: true + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle.mjs index e248b3d13..1c52945c1 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle.mjs @@ -1,69 +1,69 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 6 (+/-)', - /* The noop channel splits the markers as all the other channels + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 6 (+/-)', + /* The noop channel splits the markers as all the other channels but will have no effect on the markers’ appearance. */ - noop: 'Joy factors', - /* Lightness channel is used to assist the viewer + noop: 'Joy factors', + /* Lightness channel is used to assist the viewer in following the animation. */ - lightness: 'Year' - }, - title: 'Scatter Plot', - geometry: 'circle' - } - }), + lightness: 'Year' + }, + title: 'Scatter Plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year' - }, - title: 'Dot Plot', - legend: 'lightness' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year' + }, + title: 'Dot Plot', + legend: 'lightness' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 6 (+/-)' - }, - title: 'Scatter Plot' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 6 (+/-)' + }, + title: 'Scatter Plot' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Joy factors', - noop: null - }, - title: 'Dot Plot' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: 'Joy factors', + noop: null + }, + title: 'Dot Plot' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 5 (+/-)', - y: 'Value 6 (+/-)', - noop: 'Joy factors' - }, - title: 'Scatter Plot' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 5 (+/-)', + y: 'Value 6 (+/-)', + noop: 'Joy factors' + }, + title: 'Scatter Plot' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs index 8df408018..06dbce452 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs @@ -1,30 +1,30 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: ['Joy factors', 'Value 3 (+)'], - color: 'Joy factors', - label: 'Country', - lightness: 'Country' - }, - title: 'Marimekko Chart', - align: 'stretch', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_4, + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: ['Joy factors', 'Value 3 (+)'], + color: 'Joy factors', + label: 'Country', + lightness: 'Country' + }, + title: 'Marimekko Chart', + align: 'stretch', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - title: 'Marimekko with Other Orientation II', - orientation: 'vertical' - } - }) + (chart) => + chart.animate({ + config: { + title: 'Marimekko with Other Orientation II', + orientation: 'vertical' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02.mjs index 9d2d5cdfb..f4123ea54 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02.mjs @@ -1,43 +1,43 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - config: { - channels: { - x: 'Value 2 (+)', - y: 'Country', - color: 'Country' - }, - title: 'Treemap' - } - }), + (chart) => + chart.animate({ + data: data_8, + config: { + channels: { + x: 'Value 2 (+)', + y: 'Country', + color: 'Country' + }, + title: 'Treemap' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 2 (+)'], - y: { - set: 'Country', - /* Setting the radius of + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 2 (+)'], + y: { + set: 'Country', + /* Setting the radius of the empty circle in the centre. */ - range: { - min: '-30%' - } - }, - size: null - }, - title: 'Radial Chart', - coordSystem: 'polar' - }, - style: { - plot: { - paddingLeft: '25em' - } - } - }) + range: { + min: '-30%' + } + }, + size: null + }, + title: 'Radial Chart', + coordSystem: 'polar' + }, + style: { + plot: { + paddingLeft: '25em' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial.mjs index 0784e78b0..59650a1d6 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial.mjs @@ -1,38 +1,38 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - color: 'Joy factors', - size: ['Country', 'Value 2 (+)'], - lightness: 'Value 3 (+)' - }, - title: 'Treemap' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + color: 'Joy factors', + size: ['Country', 'Value 2 (+)'], + lightness: 'Value 3 (+)' + }, + title: 'Treemap' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: { - set: 'Joy factors', - /* Setting the radius of + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: { + set: 'Joy factors', + /* Setting the radius of the empty circle in the centre. */ - range: { - min: '-100%' - } - }, - size: null - }, - title: 'Radial Chart', - coordSystem: 'polar' - } - }) + range: { + min: '-100%' + } + }, + size: null + }, + title: 'Radial Chart', + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area.mjs index 117ed17c1..82ce2ccdd 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area.mjs @@ -1,28 +1,28 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - config: { - channels: { - x: ['Year'], - y: ['Value 2 (+)', 'Country_code'], - color: 'Country_code' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => data_8.filter(record) && record.Year < 21 && record.Year > 14 - }, - config: { - title: 'Zoomed Stacked Area' - } - }) + (chart) => + chart.animate({ + data: data_8, + config: { + channels: { + x: ['Year'], + y: ['Value 2 (+)', 'Country_code'], + color: 'Country_code' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => data_8.filter(record) && record.Year < 21 && record.Year > 14 + }, + config: { + title: 'Zoomed Stacked Area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar.mjs index 07353bc61..206c9eefa 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar.mjs @@ -1,30 +1,30 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country_code'], - color: 'Country_code' - }, - title: 'Polar Stacked Area', - geometry: 'area', - coordSystem: 'polar' - } - }), + (chart) => + chart.animate({ + data: data_8, + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country_code'], + color: 'Country_code' + }, + title: 'Polar Stacked Area', + geometry: 'area', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - data: { - filter: (record) => data_8.filter(record) && record.Year < 21 && record.Year > 14 - }, - config: { - title: 'Zoomed Polar Stacked Area' - } - }) + (chart) => + chart.animate({ + data: { + filter: (record) => data_8.filter(record) && record.Year < 21 && record.Year > 14 + }, + config: { + title: 'Zoomed Polar Stacked Area' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line.mjs index 8eb3c3866..7c1ad4dde 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line.mjs @@ -1,28 +1,28 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)', - color: 'Country_code' - }, - title: 'Line chart', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => data_6.filter(record) && record.Year < 14 && record.Year > 8 - }, - config: { - title: 'Zoomed Line chart' - } - }) + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)', + color: 'Country_code' + }, + title: 'Line chart', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => data_6.filter(record) && record.Year < 14 && record.Year > 8 + }, + config: { + title: 'Zoomed Line chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar.mjs index 5671ee238..9f3c13fa3 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar.mjs @@ -1,29 +1,29 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)', - color: 'Country_code' - }, - title: 'Polar Line chart', - geometry: 'line', - coordSystem: 'polar' - } - }), - (chart) => - chart.animate({ - data: { - filter: (record) => data_6.filter(record) && record.Year < 14 && record.Year > 8 - }, - config: { - title: 'Zoomed Polar Line chart' - } - }) + (chart) => + chart.animate({ + data: data_6, + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)', + color: 'Country_code' + }, + title: 'Polar Line chart', + geometry: 'line', + coordSystem: 'polar' + } + }), + (chart) => + chart.animate({ + data: { + filter: (record) => data_6.filter(record) && record.Year < 14 && record.Year > 8 + }, + config: { + title: 'Zoomed Polar Line chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs index 80926edf0..306c66335 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs @@ -1,30 +1,30 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - noop: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Dot plot', - geometry: 'circle' - } - }), + config: { + channels: { + noop: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Dot plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 3 (+)' - }, - title: 'Add +1 Measure' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 3 (+)' + }, + title: 'Add +1 Measure' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs index 8259194dc..d82b37fd8 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs @@ -1,36 +1,36 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - size: 'Year' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + size: 'Year' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'FORDITVA: CHG Geom. & Coord.Sys. to See Values in Time', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'FORDITVA: CHG Geom. & Coord.Sys. to See Values in Time', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs index 070583070..1e22f5d00 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs @@ -1,32 +1,32 @@ import { data_14 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, + (chart) => + chart.animate({ + data: data_14, - config: { - channels: { - y: null, - noop: ['Year', 'Country'], - size: 'Value 2 (+)' - }, - title: 'Bubble Chart', - geometry: 'circle' - } - }), + config: { + channels: { + y: null, + noop: ['Year', 'Country'], + size: 'Value 2 (+)' + }, + title: 'Bubble Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: ['Year', 'Country'], - y: 'Value 2 (+)', - size: null - }, - title: 'Change Coord. Sys. to See Distribution of Values' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: ['Year', 'Country'], + y: 'Value 2 (+)', + size: null + }, + title: 'Change Coord. Sys. to See Distribution of Values' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs index 85b9e2ce5..e4f900be3 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs @@ -1,34 +1,34 @@ import { data_3 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_3, + (chart) => + chart.animate({ + data: data_3, - config: { - channels: { - x: 'Year', - y: 'Value 1 (+)', - color: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 1 (+)', + color: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - size: ['Year', 'Value 1 (+)'], - label: 'Value 1 (+)' - }, - title: 'FORDITVA: CHG Geom. & Coord.Sys. to See Values in Time', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + size: ['Year', 'Value 1 (+)'], + label: 'Value 1 (+)' + }, + title: 'FORDITVA: CHG Geom. & Coord.Sys. to See Values in Time', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs index 823bf8988..0036c9ecc 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs @@ -1,35 +1,35 @@ import { data_3 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_3, + (chart) => + chart.animate({ + data: data_3, - config: { - channels: { - x: null, - y: null, - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Treemap' - } - }), + config: { + channels: { + x: null, + y: null, + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Treemap' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: null - }, - title: 'Then Show the Sum of The Values by Time Distribution', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: null + }, + title: 'Then Show the Sum of The Values by Time Distribution', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs index ecefeeb63..97a80058c 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs @@ -1,35 +1,35 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Country', - noop: 'Year', - size: ['Year', 'Value 3 (+)'] - }, - title: 'FORDITVA: CHG Geom. & Coord.Sys. to See Values in Time', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Country', + noop: 'Year', + size: ['Year', 'Value 3 (+)'] + }, + title: 'FORDITVA: CHG Geom. & Coord.Sys. to See Values in Time', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs index b8ef715da..aaea1f25f 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs @@ -1,35 +1,35 @@ import { data_14 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, + (chart) => + chart.animate({ + data: data_14, - config: { - channels: { - y: 'Value 4 (+/-)', - x: 'Value 2 (+)', - color: 'Country', - label: 'Country' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + config: { + channels: { + y: 'Value 4 (+/-)', + x: 'Value 2 (+)', + color: 'Country', + label: 'Country' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 4 (+/-)', - x: 'Value 2 (+)', - color: 'Country', - noop: 'Year', - label: null - }, - title: 'Drill Down to See the Distribution of Detailed Values' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 4 (+/-)', + x: 'Value 2 (+)', + color: 'Country', + noop: 'Year', + label: null + }, + title: 'Drill Down to See the Distribution of Detailed Values' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs index 565b80f8e..3c8556ae8 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs @@ -1,42 +1,42 @@ import { data_14 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, + (chart) => + chart.animate({ + data: data_14, - config: { - channels: { - y: 'Value 6 (+/-)', - x: 'Value 2 (+)', - color: 'Joy factors', - noop: 'Joy factors', - size: null - }, - title: 'Scatter plot', - geometry: 'circle' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + config: { + channels: { + y: 'Value 6 (+/-)', + x: 'Value 2 (+)', + color: 'Joy factors', + noop: 'Joy factors', + size: null + }, + title: 'Scatter plot', + geometry: 'circle' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 6 (+/-)', - x: 'Value 2 (+)', - color: 'Joy factors', - noop: 'Year' - }, - title: 'Drill Down to See the Distribution of Detailed Values' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 6 (+/-)', + x: 'Value 2 (+)', + color: 'Joy factors', + noop: 'Year' + }, + title: 'Drill Down to See the Distribution of Detailed Values' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs index cab8e5a14..5269db3be 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs @@ -1,38 +1,38 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Joy factors', 'Value 3 (+)'], - color: 'Joy factors' - }, - title: 'CHG Measure & 2nd Category but x Axis Stay the Same' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Joy factors', 'Value 3 (+)'], + color: 'Joy factors' + }, + title: 'CHG Measure & 2nd Category but x Axis Stay the Same' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs index 833c3bc6f..dce0969ba 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs @@ -1,38 +1,38 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 3 (+)', - color: 'Joy factors' - }, - title: 'CHG Measure & 2nd Category but x Axis Stay the Same' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 3 (+)', + color: 'Joy factors' + }, + title: 'CHG Measure & 2nd Category but x Axis Stay the Same' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs index b5fee2fae..1a5c51809 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs @@ -1,44 +1,44 @@ import { data_6 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Joy factors' - }, - title: 'Line Chart', - geometry: 'line' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Joy factors' + }, + title: 'Line Chart', + geometry: 'line' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Country' - }, - title: 'Change 2nd Category, but x Axis Stay the Same' - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + color: 'Country' + }, + title: 'Change 2nd Category, but x Axis Stay the Same' + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs index a1e559387..30c61381d 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs @@ -1,44 +1,44 @@ import { data_6 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 1 (+)'], - color: 'Joy factors' - }, - title: 'Stacked Column' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 1 (+)'], + color: 'Joy factors' + }, + title: 'Stacked Column' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'CHG Measure & 2nd Category, but x Axis Stay the Same' - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'CHG Measure & 2nd Category, but x Axis Stay the Same' + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs index c663bfaa3..67124aa16 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs @@ -1,38 +1,38 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, + (chart) => + chart.animate({ + data, - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stacked Column' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stacked Column' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: ['Joy factors'], - label: 'Value 2 (+)' - }, - title: 'Change Orientation to See Sum of the Components' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: ['Joy factors'], + label: 'Value 2 (+)' + }, + title: 'Change Orientation to See Sum of the Components' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs index 9e0b4be7b..12307da6d 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs @@ -1,34 +1,34 @@ import { data_6 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => { - const f = data_6.filter - return chart.animate({ - data: Object.assign(data_6, { - filter: (record) => f(record) && record.Year >= 10 - }), + (chart) => { + const f = data_6.filter + return chart.animate({ + data: Object.assign(data_6, { + filter: (record) => f(record) && record.Year >= 10 + }), - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Column' - } - }) - }, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Column' + } + }) + }, - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Change Main Category on the x Axis' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Change Main Category on the x Axis' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs index 24c1aa070..6521be535 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs @@ -1,31 +1,31 @@ import { data_8 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors', - label: 'Country' - }, - title: 'Change Main Category on the x Axis' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors', + label: 'Country' + }, + title: 'Change Main Category on the x Axis' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs index 37621fce5..d82afdf4b 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs @@ -1,30 +1,30 @@ import { data_4 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - y: 'Value 3 (+)', - x: 'Value 2 (+)', - color: 'Country' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + config: { + channels: { + y: 'Value 3 (+)', + x: 'Value 2 (+)', + color: 'Country' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: 'Year' - }, - title: 'Anim. Aids Drilling for Following New Value Distribution' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: 'Year' + }, + title: 'Anim. Aids Drilling for Following New Value Distribution' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs index 3ee0b9871..85d79f0d7 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs @@ -1,32 +1,32 @@ import { data_6 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Bubble Chart', - geometry: 'circle' - } - }), + config: { + channels: { + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Bubble Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: { set: 'Country', range: { max: '110%' } }, - label: null - }, - title: 'Then Show the Time Distribution of The Values' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: { set: 'Country', range: { max: '110%' } }, + label: null + }, + title: 'Then Show the Time Distribution of The Values' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs index 7be423720..1af834312 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs @@ -1,44 +1,44 @@ import { data_4 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Treemap' - } - }), + config: { + channels: { + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Treemap' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - size: null, - label: null - }, - title: 'Then Show the Sum of The Values by Time Distribution ' - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + size: null, + label: null + }, + title: 'Then Show the Sum of The Values by Time Distribution ' + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs index 121a60602..2e82c29c4 100755 --- a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs @@ -1,46 +1,46 @@ import { data_4 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Bubble chart', - geometry: 'circle' - } - }), + config: { + channels: { + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Bubble chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - size: null, - label: null - }, - title: 'Then Show the Sum of The Values by Time Distribution', - geometry: 'rectangle' - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + size: null, + label: null + }, + title: 'Then Show the Sum of The Values by Time Distribution', + geometry: 'rectangle' + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs index e625ce4e3..482b53aff 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs @@ -1,30 +1,30 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 3 (+)'] - }, - title: 'Change Y Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 3 (+)'] + }, + title: 'Change Y Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs index 3cd9d7d1d..c31eb90ae 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs @@ -1,31 +1,31 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Add previous Conti', - align: 'min' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Add previous Conti', + align: 'min' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs index db282a176..3cc99a1e3 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs @@ -1,30 +1,30 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stacked Area Chart' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stacked Area Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs index 02bfbd2b8..207598fb7 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs @@ -1,31 +1,31 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Add Conti', - align: 'min' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Add Conti', + align: 'min' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs index c92f76523..e0172d014 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs @@ -1,31 +1,31 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change Conti & Add Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change Conti & Add Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs index a62512017..9721a0362 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: '+ Continuous', - geometry: 'rectangle', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: '+ Continuous', + geometry: 'rectangle', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs index 0dd46b7e3..33d5607c9 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 3 (+)'], - color: 'Country' - }, - title: 'Change Continuous', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 3 (+)'], + color: 'Country' + }, + title: 'Change Continuous', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs index 212ca38ef..4fc224764 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - size: null - }, - title: 'Lollipop Chart', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + size: null + }, + title: 'Lollipop Chart', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs index d750f7d1a..1b12395de 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Joy factors' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Joy factors' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 3 (+)'], - x: ['Year', 'Value 2 (+)'], - size: null, - noop: null - }, - title: 'Group new Discrete.', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 3 (+)'], + x: ['Year', 'Value 2 (+)'], + size: null, + noop: null + }, + title: 'Group new Discrete.', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs index 5bace31ee..5eae4e8c5 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: 'Value 6 (+/-)', - x: 'Value 2 (+)', - color: 'Country', - noop: 'Year' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: 'Value 6 (+/-)', + x: 'Value 2 (+)', + color: 'Country', + noop: 'Year' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 3 (+)'], - x: ['Joy factors', 'Value 5 (+/-)'], - size: null, - noop: null - }, - title: 'Group new Discrete', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 3 (+)'], + x: ['Joy factors', 'Value 5 (+/-)'], + size: null, + noop: null + }, + title: 'Group new Discrete', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs index d7d21d2c3..465fcce6f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs @@ -1,52 +1,52 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: 'Value 1 (+)', - x: 'Value 2 (+)', - color: 'Country', - noop: 'Year', - size: 'Value 3 (+)' - }, - title: 'Dot plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: 'Value 1 (+)', + x: 'Value 2 (+)', + color: 'Country', + noop: 'Year', + size: 'Value 3 (+)' + }, + title: 'Dot plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 1 (+)', - x: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - size: 'Value 3 (+)', - noop: null - }, - title: 'Group new Discrete & Change Geoms', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 1 (+)', + x: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + size: 'Value 3 (+)', + noop: null + }, + title: 'Group new Discrete & Change Geoms', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs index e4ae1ac79..383144fdd 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs @@ -1,52 +1,52 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: 'Value 4 (+/-)', - x: 'Value 2 (+)', - color: 'Country', - noop: 'Year' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: 'Value 4 (+/-)', + x: 'Value 2 (+)', + color: 'Country', + noop: 'Year' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 3 (+)', - x: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - size: null, - noop: null - }, - title: 'Group new Discrete & Change Geoms', - geometry: 'rectangle', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 3 (+)', + x: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + size: null, + noop: null + }, + title: 'Group new Discrete & Change Geoms', + geometry: 'rectangle', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs index 24f0b004c..982379263 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs @@ -1,52 +1,52 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: 'Value 3 (+)', - x: 'Value 2 (+)', - color: 'Country', - noop: 'Year', - size: 'Value 1 (+)' - }, - title: 'Dot plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: 'Value 3 (+)', + x: 'Value 2 (+)', + color: 'Country', + noop: 'Year', + size: 'Value 1 (+)' + }, + title: 'Dot plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: ['Joy factors', 'Value 3 (+)'], - noop: 'Joy factors', - size: 'Value 1 (+)' - }, - title: 'Change Geometry', - geometry: 'rectangle', - orientation: 'vertical' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: ['Joy factors', 'Value 3 (+)'], + noop: 'Joy factors', + size: 'Value 1 (+)' + }, + title: 'Change Geometry', + geometry: 'rectangle', + orientation: 'vertical' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs index 1668edab2..3c2e2b146 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: 'Value 3 (+)', - x: 'Value 2 (+)', - color: 'Country', - noop: 'Year' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: 'Value 3 (+)', + x: 'Value 2 (+)', + color: 'Country', + noop: 'Year' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Joy factors', 'Value 3 (+)'], - x: ['Country', 'Value 2 (+)'], - color: 'Country', - noop: null - }, - title: 'Change Geometry', - geometry: 'rectangle', - orientation: 'vertical' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Joy factors', 'Value 3 (+)'], + x: ['Country', 'Value 2 (+)'], + color: 'Country', + noop: null + }, + title: 'Change Geometry', + geometry: 'rectangle', + orientation: 'vertical' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs index a80b493d7..d3bc21edb 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: 'Value 1 (+)', - x: 'Value 2 (+)', - color: 'Country', - noop: 'Year' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: 'Value 1 (+)', + x: 'Value 2 (+)', + color: 'Country', + noop: 'Year' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 1 (+)', - x: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - noop: null - }, - title: 'Group new Discrete & Change Geoms', - geometry: 'rectangle', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 1 (+)', + x: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + noop: null + }, + title: 'Group new Discrete & Change Geoms', + geometry: 'rectangle', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs index 8a9c05e32..f86adc6d2 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: ['Country'] } - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: ['Country'] } + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: 'Year' }, - x: { set: 'Value 3 (+)' }, - y: { set: 'Value 2 (+)' }, - color: { set: ['Country'] } - }, - title: '+ Continuous', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: 'Year' }, + x: { set: 'Value 3 (+)' }, + y: { set: 'Value 2 (+)' }, + color: { set: ['Country'] } + }, + title: '+ Continuous', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs index 6678a3d01..a0f7e006e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Country' } - }, - title: 'Change Continuous', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Country' } + }, + title: 'Change Continuous', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs index 7c272ce27..3b670dc1e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs @@ -1,47 +1,47 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 4 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 4 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs index 22d880d63..bb7ebf1a6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - label: 'Country_code' - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + label: 'Country_code' + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - noop: { set: 'Country' }, - size: { set: null } - }, - title: 'Group new Disc & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + noop: { set: 'Country' }, + size: { set: null } + }, + title: 'Group new Disc & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs index db97c9270..f5dbbfbf5 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs index 7bb8578c0..b3d7ba405 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Joy factors' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Joy factors' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - noop: { set: 'Year' }, - size: { set: null } - }, - title: 'Group new Discrete.' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + noop: { set: 'Year' }, + size: { set: null } + }, + title: 'Group new Discrete.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs index dc4beead9..f7c4fbb0e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - noop: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Group new Discrete & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + noop: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Group new Discrete & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs index 385d9bc9c..e29705a96 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Add new Disc Color & Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Add new Disc Color & Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs index e7b139fbd..d1121a1ff 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 5 (+/-)' }, - noop: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Discrete' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 5 (+/-)' }, + noop: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Discrete' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs index 465986e1e..6a3a2b863 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - noop: { set: 'Country' }, - size: { set: null } - }, - title: 'Group new Discrete & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + noop: { set: 'Country' }, + size: { set: null } + }, + title: 'Group new Discrete & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs index 911de9828..a08681386 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Add new Disc Color & Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Add new Disc Color & Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs index 220f3bbb5..63cc7ab00 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 4 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 4 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { range: { min: '-10%', max: '110%' } }, - x: { range: { min: '0%', max: '110%' } }, - color: { set: 'Joy factors' }, - size: { set: null }, - noop: { set: null } - }, - title: 'Group new Discrete' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { range: { min: '-10%', max: '110%' } }, + x: { range: { min: '0%', max: '110%' } }, + color: { set: 'Joy factors' }, + size: { set: null }, + noop: { set: null } + }, + title: 'Group new Discrete' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs index 7901c10ca..72a5b1b77 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 4 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 4 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 5 (+/-)', range: { min: '-10%', max: '110%' } }, - x: { range: { min: '0%', max: '110%' } }, - color: { set: 'Joy factors' }, - size: { set: null }, - noop: { set: null } - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 5 (+/-)', range: { min: '-10%', max: '110%' } }, + x: { range: { min: '0%', max: '110%' } }, + color: { set: 'Joy factors' }, + size: { set: null }, + noop: { set: null } + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs index 2c5e69e18..0fd6b59f5 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs @@ -1,32 +1,32 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Change Continuous on Size' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Change Continuous on Size' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs index 4d4a5da63..f396d0332 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs @@ -1,31 +1,31 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - color: { set: 'Country' } - }, - title: 'Change Continuous' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + color: { set: 'Country' } + }, + title: 'Change Continuous' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs index 9acb7fac9..9d2290f59 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs @@ -1,31 +1,31 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Country' } - }, - title: 'Change Continuous' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Country' } + }, + title: 'Change Continuous' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs index 4678271ec..fb80d0b81 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs @@ -1,31 +1,31 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add previous Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add previous Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs index 148719d55..f23d7ad36 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs @@ -1,30 +1,30 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Disc & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + color: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Disc & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs index 6ea939fad..9d87c42bc 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Group new Disc & Add new Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Group new Disc & Add new Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs index b49837f7a..0932acce3 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs @@ -1,31 +1,31 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Group new Disk & Add new Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + color: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Group new Disk & Add new Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs index a40bc30bf..8cbf70d2e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs @@ -1,32 +1,32 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Disc, Add new Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Disc, Add new Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs index 68c5c17a8..9b20cf2e3 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs @@ -1,32 +1,32 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Disc & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Disc & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs index 53c72b79a..73bdf05bd 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Mekko Chart (Add Conti)', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Mekko Chart (Add Conti)', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs index 2ad621b62..b29b20642 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs @@ -1,54 +1,54 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { - set: ['Country', 'Value 1 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { + set: ['Country', 'Value 1 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { - set: ['Country', 'Value 2 (+)'], - range: { min: '0%', max: '110%' } - }, - color: { set: 'Country' } - }, - title: 'Mekko Chart Change Y Conti', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { + set: ['Country', 'Value 2 (+)'], + range: { min: '0%', max: '110%' } + }, + color: { set: 'Country' } + }, + title: 'Mekko Chart Change Y Conti', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs index 022489a8a..51550de39 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs @@ -1,47 +1,47 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 4 (+/-)'] }, - color: { set: 'Country' } - }, - title: '(negative sum) Change Y Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 4 (+/-)'] }, + color: { set: 'Country' } + }, + title: '(negative sum) Change Y Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs index a3686b812..3db87bbfe 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs @@ -1,47 +1,47 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs index 1a2a74eb1..c5cf9b4fe 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Group new Disc', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Group new Disc', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs index 10ebbb407..f96a39435 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add Y Disc & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add Y Disc & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs index a4c172211..2d18a131d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Year' } - }, - title: 'Add new Disc & Add new Disc Color', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Year' } + }, + title: 'Add new Disc & Add new Disc Color', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs index 184b4e576..f271c1131 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 2 (+)'] }, - y: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Group new Disc', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 2 (+)'] }, + y: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Group new Disc', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs index acc6c639f..95c703ef2 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs index 42ad67326..20afdee5a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs @@ -1,47 +1,47 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors'] }, - y: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors'] }, + y: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs index 9fa3d6c93..34bc308cd 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs @@ -1,47 +1,47 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Joy factors', 'Value 1 (+)'], - y: ['Country', 'Value 5 (+/-)'] - }, - title: 'Group new Disc', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Joy factors', 'Value 1 (+)'], + y: ['Country', 'Value 5 (+/-)'] + }, + title: 'Group new Disc', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs index cc32b1b13..4ed4beef4 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs index 39e4f5992..c1d8048f8 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 1 (+)'], - y: ['Joy factors', 'Value 5 (+/-)'], - color: 'Joy factors' - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 1 (+)'], + y: ['Joy factors', 'Value 5 (+/-)'], + color: 'Joy factors' + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs index 7ed92b69e..b08d7d342 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs @@ -1,46 +1,46 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs index 9a2ef7cc2..f733837a6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color & Add previous Conti', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color & Add previous Conti', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs index 114f25673..f8b9b3a2d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs @@ -1,47 +1,47 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & add new Disc Color & Add new Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & add new Disc Color & Add new Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs index a74b1c522..dc0703522 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs @@ -1,34 +1,34 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Country', - noop: 'Year', - size: ['Year', 'Value 3 (+)'] - }, - title: 'Change Geoms & coordSys.', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Country', + noop: 'Year', + size: ['Year', 'Value 3 (+)'] + }, + title: 'Change Geoms & coordSys.', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are.mjs index e3af2206b..7117ee194 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Country_code', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Country_code', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: 'Year', - size: ['Year', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Change CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: 'Year', + size: ['Year', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Change CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are.mjs index c67bfca93..a2f405870 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - size: ['Year', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Change CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + size: ['Year', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Change CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are.mjs index 0bfc8ce4f..196e4d8a3 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Country_code', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Country_code', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: 'Year', - size: ['Year', 'Value 3 (+)'], - color: 'Joy factors' - }, - title: 'Change CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: 'Year', + size: ['Year', 'Value 3 (+)'], + color: 'Joy factors' + }, + title: 'Change CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are.mjs index 1e5bd806b..1c06acea3 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are.mjs @@ -1,34 +1,34 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Year', 'Value 3 (+)'] - }, - title: 'Change Geoms & CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Year', 'Value 3 (+)'] + }, + title: 'Change Geoms & CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs index 0134d73d2..9acb789f0 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs @@ -1,51 +1,51 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, + (chart) => + chart.animate({ + data: data_14, - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - noop: 'Year', - size: 'Value 2 (+)' - }, - title: 'Stacked Area Chart', - geometry: 'area', - align: 'center', - split: true - } - }), + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + noop: 'Year', + size: 'Value 2 (+)' + }, + title: 'Stacked Area Chart', + geometry: 'area', + align: 'center', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: 'Year', - size: ['Year', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Bubble', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: 'Year', + size: ['Year', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Bubble', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: ['Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Bubble' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: ['Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Bubble' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs index 3b8cc24c7..c6eb40e92 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs @@ -1,34 +1,34 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Country' }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'Change Geoms & coordSys.', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Country' }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'Change Geoms & coordSys.', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs index 6fc2b4495..4ef034438 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Country_code', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Country_code', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: 'Year', - size: ['Year', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Change CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: 'Year', + size: ['Year', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Change CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs index b3181d68f..2207578fa 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs @@ -1,34 +1,34 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs index d56057687..b3d6a2c64 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs index 22993600c..5865179e6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs @@ -1,35 +1,35 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter.mjs index 6f1ab6071..9195244c2 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter.mjs @@ -1,39 +1,39 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - data: { - filter: (record) => - record['Joy factors'] !== 'Creativity' && record['Joy factors'] !== 'Love' - }, - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data: { + filter: (record) => + record['Joy factors'] !== 'Creativity' && record['Joy factors'] !== 'Love' + }, + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs index 8eef3c47f..4889fdcc1 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: null, - size: ['Country', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stack new Disc & Change CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: null, + size: ['Country', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stack new Disc & Change CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs index 59435d9e4..656c37897 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: 'Year' }, - size: { set: 'Value 3 (+)' }, - color: { set: ['Country'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: 'Year' }, + size: { set: 'Value 3 (+)' }, + color: { set: ['Country'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs index a142e8b0b..1fb94fa5c 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs index ae5b4e7d5..97249c98d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: null }, - size: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stack new Disc & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: null }, + size: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stack new Disc & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs index a62cc385e..90b1c0faa 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs index bccf7edd5..2e2eb29d7 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs index b6df1262f..5690a590f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 1 (+)', - color: 'Country', - size: 'Value 2 (+)' - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 1 (+)', + color: 'Country', + size: 'Value 2 (+)' + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: null, - lightness: 'Value 3 (+)', - size: ['Country', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stack new Disc & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: null, + lightness: 'Value 3 (+)', + size: ['Country', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stack new Disc & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs index 3bbb729a8..4a7b40245 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country', - size: 'Value 3 (+)' - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country', + size: 'Value 3 (+)' + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - noop: 'Joy factors', - size: ['Year', 'Value 3 (+)'], - lightness: 'Value 1 (+)' - }, - title: 'Stack new Disc, Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + noop: 'Joy factors', + size: ['Year', 'Value 3 (+)'], + lightness: 'Value 1 (+)' + }, + title: 'Stack new Disc, Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs index f1706371d..4e253035b 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 1 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 1 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs index fd36d5284..458c48343 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Country' } - // size: { set: 'Year' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Country' } + // size: { set: 'Year' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: null }, - size: { set: ['Country', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stack new Disc & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: null }, + size: { set: ['Country', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stack new Disc & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs index 7c4f4f0a7..608c51752 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Year', 'Value 1 (+)'] - }, - title: 'Stack new Disc, Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Year', 'Value 1 (+)'] + }, + title: 'Stack new Disc, Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs index dd198c219..f312fe1dea 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: 'Value 3 (+)', - x: 'Value 2 (+)', - color: 'Country', - noop: 'Year' - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: 'Value 3 (+)', + x: 'Value 2 (+)', + color: 'Country', + noop: 'Year' + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - noop: null, - lightness: 'Value 2 (+)', - size: 'Value 3 (+)' - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + noop: null, + lightness: 'Value 2 (+)', + size: 'Value 3 (+)' + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs index a1d6df739..b75f19ef6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: null }, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: null }, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs index f41bdc263..974254045 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs @@ -1,40 +1,40 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country', - size: 'Value 1 (+)' - }, - title: 'Line Chart', - geometry: 'line' - }, - style: { - plot: { - marker: { lineMaxWidth: 0.02 } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country', + size: 'Value 1 (+)' + }, + title: 'Line Chart', + geometry: 'line' + }, + style: { + plot: { + marker: { lineMaxWidth: 0.02 } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: 'Year', - lightness: 'Value 3 (+)', - size: ['Year', 'Value 1 (+)'] - }, - title: 'Change Geoms & CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: 'Year', + lightness: 'Value 3 (+)', + size: ['Year', 'Value 1 (+)'] + }, + title: 'Change Geoms & CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs index abd87aeb0..f2d645191 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: 'Year', - size: ['Year', 'Value 1 (+)'] - }, - title: 'Change Geoms & CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: 'Year', + size: ['Year', 'Value 1 (+)'] + }, + title: 'Change Geoms & CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs index 9fbe1e66d..534156a87 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Joy factors' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Joy factors' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Country_code', 'Value 2 (+)'] - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Country_code', 'Value 2 (+)'] + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs index f90bf5929..0ba118f6d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Year', 'Value 2 (+)'] - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Year', 'Value 2 (+)'] + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs index 46dccc6a5..4885b1f9d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Joy factors', - size: 'Value 3 (+)' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Joy factors', + size: 'Value 3 (+)' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Country_code', 'Value 1 (+)'], - lightness: 'Value 3 (+)' - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Country_code', 'Value 1 (+)'], + lightness: 'Value 3 (+)' + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs index 0c3fba30f..db8837dfb 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs @@ -1,35 +1,35 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country', - size: 'Value 3 (+)' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country', + size: 'Value 3 (+)' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Year', 'Value 3 (+)'], - lightness: 'Value 1 (+)' - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Year', 'Value 3 (+)'], + lightness: 'Value 1 (+)' + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs index b341c46b8..9120ef5ab 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Country', - size: ['Joy factors', 'Value 3 (+)'] - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Country', + size: ['Joy factors', 'Value 3 (+)'] + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs index c9dcb8b84..1102a9556 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs @@ -1,34 +1,34 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: 'Year', - size: ['Year', 'Value 1 (+)'], - color: { set: 'Joy factors' } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: 'Year', + size: ['Year', 'Value 1 (+)'], + color: { set: 'Joy factors' } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs index 672eca349..8e68ee55d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs @@ -1,40 +1,40 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - }, - style: { - plot: { - marker: { lineMaxWidth: 0.02 } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + }, + style: { + plot: { + marker: { lineMaxWidth: 0.02 } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: 'Year' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: 'Year' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs index 70579ed79..0bd4892c6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs index dabe13dfb..81835c8c0 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - size: { set: ['Country_code', 'Value 2 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + size: { set: ['Country_code', 'Value 2 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs index 37f5cb74e..c67d8a0ae 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs index 63063a4f4..2e47922e6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs @@ -1,51 +1,51 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - size: { set: ['Country_code', 'Value 1 (+)'] }, - lightness: { set: 'Value 3 (+)' } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + size: { set: ['Country_code', 'Value 1 (+)'] }, + lightness: { set: 'Value 3 (+)' } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs index b6f7e5902..c89b083e6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs @@ -1,35 +1,35 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 3 (+)'] }, - lightness: { set: 'Value 1 (+)' } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 3 (+)'] }, + lightness: { set: 'Value 1 (+)' } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs index 0f1888b19..0536234fb 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs @@ -1,33 +1,33 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs index e616fddb4..ad8930e6e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs @@ -1,34 +1,34 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs index b00385267..02b78a793 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Country' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Treemap Add Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Country' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Treemap Add Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs index d70fc7032..685cd474e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Country' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Country' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs index e553f4bb6..cd31d18c4 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs index 7e133222c..8ceb76693 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Country' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Country' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs index f3cbf8d74..38ad89ba9 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs index e0bd6f24e..7db464268 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs index a30ff1565..bdbd60521 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Country' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Country' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs index abd84d420..dbc8c45da 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: ['Country', 'Value 3 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: ['Country', 'Value 3 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Year' }, - lightness: { set: 'Value 1 (+)' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Add new Conti & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Year' }, + lightness: { set: 'Value 1 (+)' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Add new Conti & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs index 9e4879a93..ed690dc86 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs index b81602a3e..d775083d7 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change CoordSys', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change CoordSys', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs index 92f40eb85..1b1411436 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - lightness: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change CoordSys', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + lightness: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change CoordSys', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs index af8d6d6a7..5e439a704 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - size: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + size: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs index 4b5065fe9..c8c43733b 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs index 1beeac04d..58dd25c30 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: null }, - y: { set: null }, - color: { set: 'Joy factors' }, - size: { set: 'Value 2 (+)' }, - lightness: { set: 'Value 1 (+)' } - }, - title: 'Change CoordSys', - align: 'min' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: null }, + y: { set: null }, + color: { set: 'Joy factors' }, + size: { set: 'Value 2 (+)' }, + lightness: { set: 'Value 1 (+)' } + }, + title: 'Change CoordSys', + align: 'min' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs index f5b4c2406..29c3a6c86 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs @@ -1,54 +1,54 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country !== 'Germany' && - record.Country !== 'Italy' && - record.Country !== 'Hungary' && - record.Country !== 'Netherlands' && - record.Country !== 'Estonia' && - record.Country !== 'Belgium' && - record.Country !== 'Sweden' && - record.Country !== 'Poland' && - record.Country !== 'Malta' && - record.Country !== 'Romania' && - record.Country !== 'Greece' && - record.Country !== 'Slovakia' && - record.Country !== 'Ireland' && - record.Country !== 'Lithuania' && - record.Country !== 'Croatia' && - record.Country !== 'Slovenia' && - record.Country !== 'Portugal' && - record.Country !== 'Finland' && - record.Country !== 'United Kingdom' + record.Country !== 'Germany' && + record.Country !== 'Italy' && + record.Country !== 'Hungary' && + record.Country !== 'Netherlands' && + record.Country !== 'Estonia' && + record.Country !== 'Belgium' && + record.Country !== 'Sweden' && + record.Country !== 'Poland' && + record.Country !== 'Malta' && + record.Country !== 'Romania' && + record.Country !== 'Greece' && + record.Country !== 'Slovakia' && + record.Country !== 'Ireland' && + record.Country !== 'Lithuania' && + record.Country !== 'Croatia' && + record.Country !== 'Slovenia' && + record.Country !== 'Portugal' && + record.Country !== 'Finland' && + record.Country !== 'United Kingdom' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { set: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: 'Country', - color: 'Country', - label: 'Value 5 (+/-)' - }, - title: 'Rectangle Marker Label Positions - Center', - angle: Math.PI / 2 - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { set: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: 'Country', + color: 'Country', + label: 'Value 5 (+/-)' + }, + title: 'Rectangle Marker Label Positions - Center', + angle: Math.PI / 2 + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { range: { min: 'auto', max: 'auto' } }, - x: ['Country', 'Value 2 (+)'], - label: { attach: ['Value 5 (+/-)', 'Country'] } - }, - title: 'Polar Coordinate', - angle: (Math.PI * 3) / 2, - coordSystem: 'polar' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { range: { min: 'auto', max: 'auto' } }, + x: ['Country', 'Value 2 (+)'], + label: { attach: ['Value 5 (+/-)', 'Country'] } + }, + title: 'Polar Coordinate', + angle: (Math.PI * 3) / 2, + coordSystem: 'polar' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs index 1baa6d0a0..ceb895e34 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs @@ -7,42 +7,42 @@ const description = `- Move the Size channel's Dimension to the X-axis - switch the Geometry from Circle to Area` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: null, - y: null, - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Title', - geometry: 'circle' - } - }), + config: { + channels: { + x: null, + y: null, + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Title', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - size: null, - label: null - }, - title: 'Title', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + size: null, + label: null + }, + title: 'Title', + geometry: 'area' + } + }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs index 78c422e01..86df2e58a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs @@ -6,42 +6,42 @@ const description = `- Move the Size channel's Dimension to the X-axis - switch the Geometry from Line to Circle CHANGE DIRECTION IN THE CODE` const testSteps = [ - (chart) => - chart.animate({ - data: data_3, + (chart) => + chart.animate({ + data: data_3, - config: { - channels: { - x: null, - y: null, - color: 'Country', - size: ['Year', 'Value 1 (+)'], - label: 'Value 1 (+)' - }, - title: 'Title', - geometry: 'circle' - } - }), + config: { + channels: { + x: null, + y: null, + color: 'Country', + size: ['Year', 'Value 1 (+)'], + label: 'Value 1 (+)' + }, + title: 'Title', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: 'Value 1 (+)', - color: 'Country', - size: null, - label: null - }, - title: 'Title', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: 'Value 1 (+)', + color: 'Country', + size: null, + label: null + }, + title: 'Title', + geometry: 'line' + } + }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs index 846893524..2d43a0dda 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs @@ -6,42 +6,42 @@ const description = `- Move the Size channel's Dimension to the X-axis - Null the Label channel - switch the Geometry from Rectangle to Area` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: null, - y: null, - color: 'Country', - size: ['Year', 'Value 3 (+)'], - label: 'Year' - }, - title: 'Title', - geometry: 'rectangle' - } - }), + config: { + channels: { + x: null, + y: null, + color: 'Country', + size: ['Year', 'Value 3 (+)'], + label: 'Year' + }, + title: 'Title', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - size: null, - label: null - }, - title: 'Title', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + size: null, + label: null + }, + title: 'Title', + geometry: 'area' + } + }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum.mjs index 549fabd8c..4bf8069e7 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum.mjs @@ -1,34 +1,34 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - x: 'Year', - color: 'Joy factors' - }, - title: 'Split Area Chart', - geometry: 'area', - split: true - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + x: 'Year', + color: 'Joy factors' + }, + title: 'Split Area Chart', + geometry: 'area', + split: true + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - x: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Column Chart', - geometry: 'rectangle', - split: false - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + x: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Column Chart', + geometry: 'rectangle', + split: false + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation.mjs index 69b12e361..490562818 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation.mjs @@ -1,31 +1,31 @@ import { data } from '../../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Timeseries', - y: ['Values 1', 'Categ. Parent'], - color: 'Categ. Parent', - label: 'Values 1' - }, - title: 'Operations: Area - Orientation Change - No:1.', - geometry: 'area' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Timeseries', 'Values 1'], - y: 'Categ. Parent', - color: 'Timeseries' - }, - title: 'Operations: Area - Orientation Change - No:2' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Timeseries', + y: ['Values 1', 'Categ. Parent'], + color: 'Categ. Parent', + label: 'Values 1' + }, + title: 'Operations: Area - Orientation Change - No:1.', + geometry: 'area' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: ['Timeseries', 'Values 1'], + y: 'Categ. Parent', + color: 'Timeseries' + }, + title: 'Operations: Area - Orientation Change - No:2' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs index b9f223e17..bc6c4bfaf 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs @@ -1,31 +1,31 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 2 (+)', - x: 'Year', - color: 'Joy factors' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 2 (+)', + x: 'Year', + color: 'Joy factors' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Joy factors', - x: 'Value 2 (+)', - label: 'Value 2 (+)' - }, - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Joy factors', + x: 'Value 2 (+)', + label: 'Value 2 (+)' + }, + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum.mjs index 3c2438dd7..304a3e975 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum.mjs @@ -1,31 +1,31 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 2 (+)', - x: 'Year', - color: 'Joy factors' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 2 (+)', + x: 'Year', + color: 'Joy factors' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - x: 'Joy factors', - label: 'Value 2 (+)' - }, - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + x: 'Joy factors', + label: 'Value 2 (+)' + }, + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x.mjs index 24ee34f01..83ea2c7ea 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x.mjs @@ -1,28 +1,28 @@ import { data } from '../../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Timeseries', 'Categ. Parent'], - y: 'Values 1', - label: 'Values 1' - }, - title: 'Operations: Line - Drilled Down - X axis.', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Timeseries' - }, - title: 'Operations: Line - Aggregated - X axis.' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Timeseries', 'Categ. Parent'], + y: 'Values 1', + label: 'Values 1' + }, + title: 'Operations: Line - Drilled Down - X axis.', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Timeseries' + }, + title: 'Operations: Line - Aggregated - X axis.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation.mjs index 5ea79b759..52e765b33 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation.mjs @@ -1,33 +1,33 @@ import { data } from '../../../../test_data/tutorial.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Timeseries', - y: 'Values 1', - color: 'Categ. Parent', - label: 'Values 1' - }, - title: 'Operations: Line - Orientation Change - No:1.', - geometry: 'line', - orientation: 'horizontal' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Values 1', - y: ['Categ. Parent', 'Values 1'], - color: 'Timeseries' - }, - title: 'Operations: Line - Orientation Change - No:2', - orientation: 'vertical' - } - }) + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Timeseries', + y: 'Values 1', + color: 'Categ. Parent', + label: 'Values 1' + }, + title: 'Operations: Line - Orientation Change - No:1.', + geometry: 'line', + orientation: 'horizontal' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Values 1', + y: ['Categ. Parent', 'Values 1'], + color: 'Timeseries' + }, + title: 'Operations: Line - Orientation Change - No:2', + orientation: 'vertical' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs index e92be1c3c..478e610ba 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs @@ -1,24 +1,24 @@ import { data } from '../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 5 (+/-)'] }, - color: { set: ['Country'] }, - size: { set: ['Value 5 (+/-)'] } - }, - title: 'Line Chart', - geometry: 'line' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 5 (+/-)'] }, + color: { set: ['Country'] }, + size: { set: ['Value 5 (+/-)'] } + }, + title: 'Line Chart', + geometry: 'line' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown.mjs b/test/integration/test_cases/ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown.mjs index 584001889..c9dbf8419 100644 --- a/test/integration/test_cases/ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown.mjs @@ -1,36 +1,36 @@ import { data } from '../../../../test_data/infinite_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Value 1', 'Joy factors'], - color: 'Joy factors', - label: 'Value 1' - }, - title: 'Pie Chart', - coordSystem: 'polar' - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Value 1', 'Joy factors'], + color: 'Joy factors', + label: 'Value 1' + }, + title: 'Pie Chart', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Value 1', 'Joy factors', 'Region', 'Country code'], - y: { - set: 'Value 3', - /* Setting the radius of the empty circle + (chart) => + chart.animate({ + config: { + channels: { + x: ['Value 1', 'Joy factors', 'Region', 'Country code'], + y: { + set: 'Value 3', + /* Setting the radius of the empty circle in the centre. */ - range: { min: '-60%' } - }, - label: null - }, - title: 'Coxcomb Chart' - } - }) + range: { min: '-60%' } + }, + label: null + }, + title: 'Coxcomb Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs index da286df5f..4329c756c 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs @@ -1,63 +1,63 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Country_code', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Country_code', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Country_code', - y: 'Joy factors' - }, - title: 'Remove Conti', - align: 'stretch', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Country_code', + y: 'Joy factors' + }, + title: 'Remove Conti', + align: 'stretch', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Year', - y: 'Joy factors' - }, - title: 'Change Discrete', - orientation: 'horizontal' - } - }, - { - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Year', + y: 'Joy factors' + }, + title: 'Change Discrete', + orientation: 'horizontal' + } + }, + { + duration: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 2 (+)'] - }, - title: 'Add previous Conti', - align: 'min', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 2 (+)'] + }, + title: 'Add previous Conti', + align: 'min', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs index 981bc8e59..06ce0a110 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs @@ -1,41 +1,41 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs index e7a6f2b57..2993e52c4 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs @@ -1,59 +1,59 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Country_code', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Country_code', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Country_code', - y: 'Joy factors' - }, - title: 'Remove Conti', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Country_code', + y: 'Joy factors' + }, + title: 'Remove Conti', + align: 'stretch' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Year', - y: 'Joy factors' - }, - title: 'Change Discrete' - } - }, - { - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Year', + y: 'Joy factors' + }, + title: 'Change Discrete' + } + }, + { + duration: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 3 (+)'] - }, - title: 'Add Conti', - align: 'min' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 3 (+)'] + }, + title: 'Add Conti', + align: 'min' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs index 600a962be..96b2f5c23 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs @@ -1,53 +1,53 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: null - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: null + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs index 2944510d2..c36ee64d5 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs @@ -1,42 +1,42 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change Conti & Add new DiscColor' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change Conti & Add new DiscColor' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs index ad0cec884..222387eda 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs @@ -1,57 +1,57 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: '+ Continuous', - geometry: 'rectangle', - orientation: 'horizontal' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - /* + (chart) => + chart.animate( + { + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: '+ Continuous', + geometry: 'rectangle', + orientation: 'horizontal' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + /* , { geometry: { @@ -66,7 +66,7 @@ const testSteps = [ } } */ - ) + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs index c6d050531..98b94ba6c 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs @@ -1,56 +1,56 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 3 (+)'], - color: 'Country' - }, - title: 'Change Continuous', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - /* + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 3 (+)'], + color: 'Country' + }, + title: 'Change Continuous', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + /* , { geometry: { @@ -65,7 +65,7 @@ const testSteps = [ } } */ - ) + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs index 2d8ebadc8..7e38e33e7 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs @@ -1,83 +1,83 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Country' } - }, - title: 'Stack Lollipop' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Country' } + }, + title: 'Stack Lollipop' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Lollipop Chart', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Lollipop Chart', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs index 1c46ee10e..b0267b848 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs @@ -1,95 +1,95 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Joy factors' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Joy factors' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Year'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Year'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' } - }, - title: 'Change Continuous' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' } + }, + title: 'Change Continuous' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Country', 'Value 3 (+)'] }, - x: { set: ['Year', 'Value 2 (+)'] }, - size: null - }, - title: 'Group new Discrete.', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Country', 'Value 3 (+)'] }, + x: { set: ['Year', 'Value 2 (+)'] }, + size: null + }, + title: 'Group new Discrete.', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs index a6f9d01dd..a7ef85fbc 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs @@ -1,95 +1,95 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 5 (+/-)' } - }, - title: 'Change Continuous' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 5 (+/-)' } + }, + title: 'Change Continuous' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Country', 'Value 3 (+)'] }, - x: { set: ['Joy factors', 'Value 5 (+/-)'] }, - size: null - }, - title: 'Group new Discrete', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Country', 'Value 3 (+)'] }, + x: { set: ['Joy factors', 'Value 5 (+/-)'] }, + size: null + }, + title: 'Group new Discrete', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs index c7dc3dcef..543bb2c40 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs @@ -1,89 +1,89 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 1 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Dot plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 1 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Dot plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 1 (+)' }, - x: { set: 'Value 2 (+)' }, - color: null, - noop: null, - size: { set: ['Value 3 (+)', 'Year', 'Country'] } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 1 (+)' }, + x: { set: 'Value 2 (+)' }, + color: null, + noop: null, + size: { set: ['Value 3 (+)', 'Year', 'Country'] } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Value 3 (+)', 'Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Value 3 (+)', 'Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: 'Value 1 (+)' }, - x: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Group new Discrete & Change Geoms', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: 'Value 1 (+)' }, + x: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Group new Discrete & Change Geoms', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs index 6dc6e60a9..f218bbb1b 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs @@ -1,99 +1,99 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 4 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 4 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 4 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: null, - noop: null, - size: { set: ['Year', 'Country'] } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 4 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: null, + noop: null, + size: { set: ['Year', 'Country'] } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' } - }, - title: 'Change Continuous' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' } + }, + title: 'Change Continuous' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Discrete & Change Geoms', - geometry: 'rectangle', - orientation: 'horizontal' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Discrete & Change Geoms', + geometry: 'rectangle', + orientation: 'horizontal' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs index eb3e2ce49..d739ced18 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs @@ -1,87 +1,87 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Dot plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Dot plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: ['Value 1 (+)', 'Year'] } - }, - title: 'Change Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: ['Value 1 (+)', 'Year'] } + }, + title: 'Change Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Value 1 (+)', 'Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Value 1 (+)', 'Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Joy factors', 'Value 3 (+)'] }, - noop: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Change Geometry', - geometry: 'rectangle', - orientation: 'vertical' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Joy factors', 'Value 3 (+)'] }, + noop: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Change Geometry', + geometry: 'rectangle', + orientation: 'vertical' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs index 1b4f6e077..7afceeb77 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs @@ -1,85 +1,85 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Change Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Change Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Country', 'Value 2 (+)'] }, - y: { set: ['Joy factors', 'Value 3 (+)'] }, - size: null - }, - title: 'Change Geometry', - geometry: 'rectangle', - orientation: 'vertical' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Country', 'Value 2 (+)'] }, + y: { set: ['Joy factors', 'Value 3 (+)'] }, + size: null + }, + title: 'Change Geometry', + geometry: 'rectangle', + orientation: 'vertical' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs index 21b3c4268..ec04b197a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs @@ -1,89 +1,89 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 1 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 1 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 1 (+)' }, - x: { set: 'Value 2 (+)' }, - color: null, - noop: null, - size: { set: ['Year', 'Country'] } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 1 (+)' }, + x: { set: 'Value 2 (+)' }, + color: null, + noop: null, + size: { set: ['Year', 'Country'] } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: 'Value 1 (+)' }, - x: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Discrete & Change Geoms', - geometry: 'rectangle', - orientation: 'horizontal' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: 'Value 1 (+)' }, + x: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Discrete & Change Geoms', + geometry: 'rectangle', + orientation: 'horizontal' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs index b4233d0a2..486dcf795 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs @@ -1,74 +1,74 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 4 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 4 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs index ec61e43ad..b6d660a28 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs @@ -1,82 +1,82 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Year' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Year' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - noop: { set: 'Country' }, - size: null - }, - title: 'Group new Disc & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + noop: { set: 'Country' }, + size: null + }, + title: 'Group new Disc & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs index 271182fbc..4d90b3416 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs @@ -1,74 +1,74 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs index 2700536c5..5e30411f1 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs @@ -1,85 +1,85 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Joy factors' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Joy factors' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Year'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Year'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' } - }, - title: 'Change Continuous' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' } + }, + title: 'Change Continuous' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: 'Year' }, - size: null - }, - title: 'Group new Discrete.' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: 'Year' }, + size: null + }, + title: 'Group new Discrete.' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs index 179ef171f..b4262d677 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs @@ -1,97 +1,97 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Stack Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Stack Discrete & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 3 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 3 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - noop: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Group new Discrete & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + noop: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Group new Discrete & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs index 75180bf1a..2000c83d4 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs @@ -1,93 +1,93 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Add new Disc Color & Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Add new Disc Color & Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs index 35d9f827c..773c63b12 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs @@ -1,85 +1,85 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 5 (+/-)' } - }, - title: 'Change Continuous' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 5 (+/-)' } + }, + title: 'Change Continuous' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Discrete' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Discrete' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs index 1ec78538e..6c11c176c 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs @@ -1,64 +1,64 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Year' } - }, - title: 'Stack Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Year' } + }, + title: 'Stack Discrete & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }), - /* + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }), + /* chart => chart.animate({ config: { channels: { @@ -73,19 +73,19 @@ const testSteps = [ } ), */ - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - noop: { set: 'Country' }, - size: null - }, - title: 'Group new Discrete & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + noop: { set: 'Country' }, + size: null + }, + title: 'Group new Discrete & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs index 76d7fe6d1..afeb12969 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs @@ -1,92 +1,92 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Add new Disc Color & Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Add new Disc Color & Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs index 7c4e60433..4e5500754 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs @@ -1,79 +1,79 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 4 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 4 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { range: { min: '-100%', max: '200%' } }, - x: { range: { min: '0%', max: '200%' } }, - color: null, - noop: null, - size: { set: ['Year', 'Country'] } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { range: { min: '-100%', max: '200%' } }, + x: { range: { min: '0%', max: '200%' } }, + color: null, + noop: null, + size: { set: ['Year', 'Country'] } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { range: { min: '-10%', max: '110%' } }, - x: { range: { min: '0%', max: '110%' } }, - color: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Discrete' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { range: { min: '-10%', max: '110%' } }, + x: { range: { min: '0%', max: '110%' } }, + color: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Discrete' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs index b40697478..d6511ffdb 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs @@ -1,84 +1,84 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 4 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 4 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { range: { min: '-150%', max: '150%' } }, - x: { range: { min: '0%', max: '150%' } }, - color: null, - noop: null, - size: { set: ['Year', 'Country'] } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { range: { min: '-150%', max: '150%' } }, + x: { range: { min: '0%', max: '150%' } }, + color: null, + noop: null, + size: { set: ['Year', 'Country'] } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 5 (+/-)' } - }, - title: 'Change Continuous' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 5 (+/-)' } + }, + title: 'Change Continuous' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { range: { min: '-10%', max: '110%' } }, - x: { range: { min: '0%', max: '110%' } }, - color: { set: 'Joy factors' }, - size: { set: null } - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: { range: { min: '-10%', max: '110%' } }, + x: { range: { min: '0%', max: '110%' } }, + color: { set: 'Joy factors' }, + size: { set: null } + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs index b0fe8c8e5..973c2c1b8 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs @@ -1,60 +1,60 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors'] }, - color: { set: 'Joy factors' } - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors'] }, + color: { set: 'Joy factors' } + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors'] }, - color: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors'] }, + color: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add previous Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add previous Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs index 0b748fe52..3af3ad84d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs @@ -1,59 +1,59 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - color: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Disc & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + color: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Disc & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs index 55c9005dc..e31ad407f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs @@ -1,60 +1,60 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - }, - style: { - plot: { - marker: { lineMaxWidth: 0.02 } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + }, + style: { + plot: { + marker: { lineMaxWidth: 0.02 } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' } - }, - title: 'Stack Disc, Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' } + }, + title: 'Stack Disc, Remove Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Group new Disc & Add new Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Group new Disc & Add new Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs index 255cc0e40..182f6177e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs @@ -1,73 +1,73 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - }, - style: { - plot: { - marker: { lineMaxWidth: 0.02 } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + }, + style: { + plot: { + marker: { lineMaxWidth: 0.02 } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: { set: null }, - size: { set: ['Country', 'Value 1 (+)'] } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + color: { set: null }, + size: { set: ['Country', 'Value 1 (+)'] } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: { set: null }, - size: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + color: { set: null }, + size: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - color: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Group new Disk & Add new Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + color: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Group new Disk & Add new Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs index cbc5e293d..1705296ff 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs @@ -1,52 +1,52 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Joy factors' } - }, - title: 'Stack Discrete & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Joy factors' } + }, + title: 'Stack Discrete & Remove Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Country_code'] } - }, - title: 'Change Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Country_code'] } + }, + title: 'Change Discrete' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Disc, Add new Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Disc, Add new Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs index 45601d258..522aca3aa 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs @@ -1,70 +1,70 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Disc & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Disc & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs index 16153866b..90edf28fa 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs @@ -1,68 +1,68 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Year', 'Value 2 (+)'] } - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Year', 'Value 2 (+)'] } + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs index c735ebb92..bbbe600f1 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs @@ -1,75 +1,75 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Year', 'Value 2 (+)'] } - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Year', 'Value 2 (+)'] } + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Group new Disc', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Group new Disc', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs index e488debdc..8d839c739 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs @@ -1,59 +1,59 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs index e343d98c4..c12b76ff4 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs @@ -1,61 +1,61 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Year' } - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Year' } + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs index 156c119ba..71d4b5aa8 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs @@ -1,86 +1,86 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Year', 'Value 2 (+)'] } - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Year', 'Value 2 (+)'] } + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Joy factors', 'Value 3 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Joy factors', 'Value 3 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 2 (+)'] }, - y: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Group new Disc', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 2 (+)'] }, + y: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Group new Disc', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs index e450e658a..8bbc41c79 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs @@ -1,74 +1,74 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Joy factors', 'Value 2 (+)'], - color: null - }, - title: 'Change Disc & Remove Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Joy factors', 'Value 2 (+)'], + color: null + }, + title: 'Change Disc & Remove Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Joy factors', 'Value 1 (+)'], - color: null - }, - title: 'Change Conti', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Joy factors', 'Value 1 (+)'], + color: null + }, + title: 'Change Conti', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Joy factors', 'Value 1 (+)'], - color: 'Joy factors' - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Joy factors', 'Value 1 (+)'], + color: 'Joy factors' + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs index 9acf7db7e..81838e49b 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs @@ -1,78 +1,78 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Year', 'Value 2 (+)'] } - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Year', 'Value 2 (+)'] } + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Country', 'Joy factors', 'Value 3 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Country', 'Joy factors', 'Value 3 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors'] }, - y: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Group new Disc' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors'] }, + y: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Group new Disc' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs index 0dd9e1e1d..74a10b7da 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs @@ -1,85 +1,85 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: ['Country', 'Year', 'Value 2 (+)'] - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: ['Country', 'Year', 'Value 2 (+)'] + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: ['Country', 'Joy factors', 'Value 2 (+)'] - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: ['Country', 'Joy factors', 'Value 2 (+)'] + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: ['Country', 'Joy factors', 'Value 5 (+/-)'] - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: ['Country', 'Joy factors', 'Value 5 (+/-)'] + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Joy factors', 'Value 1 (+)'], - y: ['Country', 'Value 5 (+/-)'] - }, - title: 'Group new Disc', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Joy factors', 'Value 1 (+)'], + y: ['Country', 'Value 5 (+/-)'] + }, + title: 'Group new Disc', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs index cd27cfc14..7d62c959f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs @@ -1,74 +1,74 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: null - }, - title: 'Change Conti', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: null + }, + title: 'Change Conti', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs index 8ea6d8b5a..6cdce5229 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs @@ -1,74 +1,74 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 3 (+)'], - y: ['Joy factors', 'Value 2 (+)'], - color: null - }, - title: 'Change Disc & Remove Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 3 (+)'], + y: ['Joy factors', 'Value 2 (+)'], + color: null + }, + title: 'Change Disc & Remove Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 1 (+)'], - y: ['Joy factors', 'Value 5 (+/-)'], - color: null - }, - title: 'Change Conti', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 1 (+)'], + y: ['Joy factors', 'Value 5 (+/-)'], + color: null + }, + title: 'Change Conti', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Value 1 (+)'], - y: ['Joy factors', 'Value 5 (+/-)'], - color: 'Joy factors' - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Value 1 (+)'], + y: ['Joy factors', 'Value 5 (+/-)'], + color: 'Joy factors' + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs index 73611ba41..63c668ef6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs @@ -1,73 +1,73 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Year', 'Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Year', 'Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs index 208708acb..5098808d2 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs @@ -1,77 +1,77 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Year', 'Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Year', 'Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color & Add previous Conti', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color & Add previous Conti', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs index f21050cc4..36824cf9b 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs @@ -1,75 +1,75 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Year', 'Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Year', 'Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & add new Disc Color & Add new Conti' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & add new Disc Color & Add new Conti' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution.mjs index cd59e2559..78bde3493 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution.mjs @@ -3,239 +3,239 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' /* eslint-disable no-template-curly-in-string */ const testSteps = [ - (chart) => - chart.animate( - { - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), + (chart) => + chart.animate( + { + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Value', - geometry: 'area', - legend: null, - orientation: 'horizontal', - align: 'stretch', - split: false - }, - style: { - plot: { - marker: { rectangleSpacing: 0 } - } - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - }, - x: { - delay: 0, - duration: 0 - }, - y: { - delay: 0, - duration: 1 - } - } - ), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Value', + geometry: 'area', + legend: null, + orientation: 'horizontal', + align: 'stretch', + split: false + }, + style: { + plot: { + marker: { rectangleSpacing: 0 } + } + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + }, + x: { + delay: 0, + duration: 0 + }, + y: { + delay: 0, + duration: 1 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal', - align: 'min', - legend: null - }, - style: { - plot: { - marker: { rectangleSpacing: null } - } - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - }, - x: { - delay: 0, - duration: 1, - easing: 'cubic-bezier(${65},${0},${65},${1})' - }, - y: { - delay: 0, - duration: 1, - easing: 'cubic-bezier(${65},${0},${65},${1})' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal', + align: 'min', + legend: null + }, + style: { + plot: { + marker: { rectangleSpacing: null } + } + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + }, + x: { + delay: 0, + duration: 1, + easing: 'cubic-bezier(${65},${0},${65},${1})' + }, + y: { + delay: 0, + duration: 1, + easing: 'cubic-bezier(${65},${0},${65},${1})' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Overlay Area Chart', - geometry: 'area', - orientation: 'horizontal', - align: 'min', - legend: null - }, - style: { - plot: { - marker: { - fillOpacity: 0.5, - borderWidth: 0 - } - } - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - }, - x: { - delay: 0, - duration: 1, - easing: 'cubic-bezier(${65},${0},${65},${1})' - }, - y: { - delay: 0.5, - duration: 1, - easing: 'cubic-bezier(${65},${0},${65},${1})' - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Overlay Area Chart', + geometry: 'area', + orientation: 'horizontal', + align: 'min', + legend: null + }, + style: { + plot: { + marker: { + fillOpacity: 0.5, + borderWidth: 0 + } + } + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + }, + x: { + delay: 0, + duration: 1, + easing: 'cubic-bezier(${65},${0},${65},${1})' + }, + y: { + delay: 0.5, + duration: 1, + easing: 'cubic-bezier(${65},${0},${65},${1})' + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Splitted Area Chart', - geometry: 'area', - orientation: 'horizontal', - align: 'min', - split: true, - legend: null - }, - style: { - plot: { - marker: { - rectangleSpacing: null, - fillOpacity: null, - borderWidth: null - } - } - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0.5, - duration: 1 - }, - x: { - delay: 0, - duration: 1, - easing: 'cubic-bezier(${65},${0},${65},${1})' - }, - y: { - delay: 0, - duration: 1, - easing: 'cubic-bezier(${65},${0},${65},${1})' - } - } - ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year'] }, - y: { set: ['Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line', - orientation: 'horizontal', - align: 'min', - split: false, - legend: null - } - }, - { - coordSystem: { - delay: 0, - duration: 1 - }, - geometry: { - delay: 0, - duration: 1 - }, - x: { - delay: 0, - duration: 1, - easing: 'cubic-bezier(${65},${0},${65},${1})' - }, - y: { - delay: 0.2, - duration: 1, - easing: 'cubic-bezier(${65},${0},${65},${1})' - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Splitted Area Chart', + geometry: 'area', + orientation: 'horizontal', + align: 'min', + split: true, + legend: null + }, + style: { + plot: { + marker: { + rectangleSpacing: null, + fillOpacity: null, + borderWidth: null + } + } + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0.5, + duration: 1 + }, + x: { + delay: 0, + duration: 1, + easing: 'cubic-bezier(${65},${0},${65},${1})' + }, + y: { + delay: 0, + duration: 1, + easing: 'cubic-bezier(${65},${0},${65},${1})' + } + } + ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year'] }, + y: { set: ['Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line', + orientation: 'horizontal', + align: 'min', + split: false, + legend: null + } + }, + { + coordSystem: { + delay: 0, + duration: 1 + }, + geometry: { + delay: 0, + duration: 1 + }, + x: { + delay: 0, + duration: 1, + easing: 'cubic-bezier(${65},${0},${65},${1})' + }, + y: { + delay: 0.2, + duration: 1, + easing: 'cubic-bezier(${65},${0},${65},${1})' + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs index 6716d2ffe..a653c308f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs @@ -1,61 +1,61 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color & Change Conti', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color & Change Conti', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs index 81db46c9e..2c63bf473 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs @@ -1,58 +1,58 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Discrete & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change Conti & Add new Disc Color' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change Conti & Add new Disc Color' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs index 8dd4f6bce..8a703ac14 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs @@ -1,105 +1,105 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Remove Conti' - }, - style: { - plot: { - marker: { rectangleSpacing: '0' } - } - } - }, + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Remove Conti' + }, + style: { + plot: { + marker: { rectangleSpacing: '0' } + } + } + }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ), + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Add previous Conti', - orientation: 'horizontal' - }, - style: { - plot: { - marker: { rectangleSpacing: null } - } - } - }, + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Add previous Conti', + orientation: 'horizontal' + }, + style: { + plot: { + marker: { rectangleSpacing: null } + } + } + }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ) + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs index b3fe272e6..39cf6cc6f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs @@ -1,95 +1,95 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch & axisLabel off', - align: 'stretch', - orientation: 'vertical' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }, - { - // easing: 'cubic-bezier(.39,0,.35,.99)', - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch & axisLabel off', + align: 'stretch', + orientation: 'vertical' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }, + { + // easing: 'cubic-bezier(.39,0,.35,.99)', + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch off & axisLabel on', - orientation: 'horizontal', - align: 'none' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch off & axisLabel on', + orientation: 'horizontal', + align: 'none' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs index be34a205b..03649774a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs @@ -1,103 +1,103 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch & axisLabel off', - align: 'stretch', - orientation: 'vertical' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch & axisLabel off', + align: 'stretch', + orientation: 'vertical' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 1 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 1 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 1 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch off & axisLabel on', - orientation: 'horizontal', - align: 'none' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 1 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch off & axisLabel on', + orientation: 'horizontal', + align: 'none' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs index 8317a4afb..ead66fe0a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs @@ -1,103 +1,103 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Remove Conti' - }, - style: { - plot: { - marker: { rectangleSpacing: '0' } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Remove Conti' + }, + style: { + plot: { + marker: { rectangleSpacing: '0' } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: ['Country', 'Value 3 (+)'] }, - color: { set: 'Country' } - }, - title: 'Add previous Conti', - orientation: 'horizontal' - }, - style: { - plot: { - marker: { rectangleSpacing: null } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: ['Country', 'Value 3 (+)'] }, + color: { set: 'Country' } + }, + title: 'Add previous Conti', + orientation: 'horizontal' + }, + style: { + plot: { + marker: { rectangleSpacing: null } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs index cde108c1d..4ca157988 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs @@ -1,87 +1,87 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Year' } - }, - title: 'Mekko Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Year' } + }, + title: 'Mekko Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 3 (+)' }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color & Stretch & axisLabel off', - align: 'stretch' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 3 (+)' }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color & Stretch & axisLabel off', + align: 'stretch' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 3 (+)'] }, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 3 (+)'] }, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)', range: { max: '125%' } }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color & Stretch off & axisLabel on', - align: 'min' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)', range: { max: '125%' } }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color & Stretch off & axisLabel on', + align: 'min' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs index 7742ab6c1..020cfe5f3 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs @@ -1,87 +1,87 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Remove Color & Stretch & axisLabel off', - align: 'stretch' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Remove Color & Stretch & axisLabel off', + align: 'stretch' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: null - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: null + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color & Stretch off & axisLabel on', - align: 'none' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color & Stretch off & axisLabel on', + align: 'none' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs index 3e2b9704e..89d570a27 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs @@ -1,87 +1,87 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Year' } - }, - title: 'Mekko Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Year' } + }, + title: 'Mekko Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color & change Conti & Stretch & axisLabel off', - align: 'stretch' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color & change Conti & Stretch & axisLabel off', + align: 'stretch' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 1 (+)'] }, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 1 (+)'] }, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color & Stretch off & axisLabel on', - align: 'min' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color & Stretch off & axisLabel on', + align: 'min' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs index 84bc5c514..ca3504c53 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs @@ -1,57 +1,57 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 3 (+)'], - color: 'Country' - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 3 (+)'], + color: 'Country' + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: 'Country', - noop: 'Year', - size: ['Year', 'Value 3 (+)'] - }, - title: 'Change Geoms & coordSys.', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - // delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: 'Country', + noop: 'Year', + size: ['Year', 'Value 3 (+)'] + }, + title: 'Change Geoms & coordSys.', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + // delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are.mjs index b32b5907e..4b1ffd050 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are.mjs @@ -1,100 +1,100 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' } - }, - title: 'Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' } + }, + title: 'Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Add previous Conti', - align: 'min' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Add previous Conti', + align: 'min' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - // delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + // delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are.mjs index 48ca02938..98ac60a9a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are.mjs @@ -1,68 +1,68 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - // delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + // delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are.mjs index 21c783065..68c80a177 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are.mjs @@ -1,99 +1,99 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' } - }, - title: 'Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' } + }, + title: 'Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Add new Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Add new Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - // delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + // delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are.mjs index ef565b55e..dfdf11f5e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are.mjs @@ -1,78 +1,78 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: null - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: null + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - // delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + // delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs index a5dce85ca..530edac67 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs @@ -1,62 +1,62 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, + (chart) => + chart.animate({ + data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' }, - noop: { set: 'Year' }, - size: { set: ['Value 2 (+)'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - align: 'center', - split: true - } - }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' }, + noop: { set: 'Year' }, + size: { set: ['Value 2 (+)'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + align: 'center', + split: true + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Bubble', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 0.5 - }, - x: { - // delay: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Bubble', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 0.5 + }, + x: { + // delay: 1 + } + } + ), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: ['Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Bubble' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: ['Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Bubble' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs index 452380815..64bc0bdce 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs @@ -1,56 +1,56 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 3 (+)'], - color: 'Country' - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 3 (+)'], + color: 'Country' + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: 'Country', - noop: 'Year', - size: ['Year', 'Value 3 (+)'] - }, - title: 'Change Geoms & coordSys.', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: 'Country', + noop: 'Year', + size: ['Year', 'Value 3 (+)'] + }, + title: 'Change Geoms & coordSys.', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs index f08c2535a..bc60c74bd 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs @@ -1,99 +1,99 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' } - }, - title: 'Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' } + }, + title: 'Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Add previous Conti', - align: 'min' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Add previous Conti', + align: 'min' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs index 5b5c09a0f..4d4c0a1ae 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs @@ -1,67 +1,67 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs index 620353eef..fbb36f7c7 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs @@ -1,98 +1,98 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' } - }, - title: 'Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' } + }, + title: 'Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 1 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Add new Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Add new Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs index 7e75ca62f..6cec56674 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs @@ -1,77 +1,77 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - orientation: 'horizontal', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + orientation: 'horizontal', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: null - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: null + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs index c29e0ee5a..c1789983c 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs @@ -1,69 +1,69 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, + (chart) => + chart.animate({ + data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' }, - noop: { set: 'Year' }, - size: { set: ['Value 2 (+)'] } - }, - title: 'Stacked Area Chart', - geometry: 'area', - align: 'center', - split: true - } - }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' }, + noop: { set: 'Year' }, + size: { set: ['Value 2 (+)'] } + }, + title: 'Stacked Area Chart', + geometry: 'area', + align: 'center', + split: true + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Bubble', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Bubble', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Bubble', - geometry: 'circle' - } - }, - { - easing: 'cubic-bezier(0.65,0,0.65,1)', + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Bubble', + geometry: 'circle' + } + }, + { + easing: 'cubic-bezier(0.65,0,0.65,1)', - duration: 0.5 - } - ) + duration: 0.5 + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs index 625f52d68..443783583 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs @@ -1,44 +1,44 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: 'Country', - noop: 'Year', - size: ['Year', 'Value 3 (+)'] - }, - title: 'Change Conti. & Geoms & coordSys.', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: 'Country', + noop: 'Year', + size: ['Year', 'Value 3 (+)'] + }, + title: 'Change Conti. & Geoms & coordSys.', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs index 76b52e388..458e0f53d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs @@ -1,71 +1,71 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' } - }, - title: 'Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' } + }, + title: 'Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 1 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 1 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add previous Conti & Change CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add previous Conti & Change CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs index 0dadfe7e8..2e96746fb 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs @@ -1,55 +1,55 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs index 4418157aa..924ae1b9f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs @@ -1,68 +1,68 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: null - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: null + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'Change Geoms & Change CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'Change Geoms & Change CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs index abcd7ee41..69f6d42f6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs @@ -1,108 +1,108 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Area Chart', - geometry: 'area', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Area Chart', + geometry: 'area', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null - }, - title: 'Remove Discrete & Color', - geometry: 'area' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null + }, + title: 'Remove Discrete & Color', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: null - }, - title: 'Change Continuous' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: null + }, + title: 'Change Continuous' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 3 (+)'] }, - color: null, - noop: { set: 'Year' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Add Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 3 (+)'] }, + color: null, + noop: { set: 'Year' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Add Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ), - (chart) => - chart.animate({ - data: { - filter: (record) => - record['Joy factors'] !== 'Creativity' && record['Joy factors'] !== 'Love' - }, - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'circle' - } - }) + (chart) => + chart.animate({ + data: { + filter: (record) => + record['Joy factors'] !== 'Creativity' && record['Joy factors'] !== 'Love' + }, + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'circle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs index 7318b6d85..88aa45f64 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs @@ -1,105 +1,105 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: 'Value 2 (+)', - color: null, - noop: 'Country', - size: 'Year' - }, - title: 'Stack Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: 'Value 2 (+)', + color: null, + noop: 'Country', + size: 'Year' + }, + title: 'Stack Discrete & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: 'Value 2 (+)', - color: null, - noop: 'Country', - size: 'Joy factors' - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: 'Value 2 (+)', + color: null, + noop: 'Country', + size: 'Joy factors' + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - noop: 'Country', - size: null - }, - title: 'Group new Discrete & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + noop: 'Country', + size: null + }, + title: 'Group new Discrete & Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: null, - size: ['Country', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stack new Disc & Change CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: null, + size: ['Country', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stack new Disc & Change CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs index 161cf9040..9a65e90d2 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs @@ -1,91 +1,91 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Year' } - }, - title: 'Stack Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Year' } + }, + title: 'Stack Discrete & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: null, - size: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stack new Disc & Change CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.7, - duration: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: null, + size: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stack new Disc & Change CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.7, + duration: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs index 361a56031..bb89173f8 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs @@ -1,50 +1,50 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Bubble Chart' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Bubble Chart' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs index 3d3e4ba29..6a03d3784 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs @@ -1,61 +1,61 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: 'Value 3 (+)' }, - color: { set: ['Country'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: 'Value 3 (+)' }, + color: { set: ['Country'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs index f28340a3e..62998ce7c 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs @@ -1,88 +1,88 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - noop: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Discrete' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs index a05b9995a..d639242a6 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs @@ -1,96 +1,96 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: 'Value 2 (+)', - color: null, - noop: 'Country', - size: 'Year' - }, - title: 'Stack Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: 'Value 2 (+)', + color: null, + noop: 'Country', + size: 'Year' + }, + title: 'Stack Discrete & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: 'Value 2 (+)', - color: null, - noop: 'Country', - size: 'Joy factors' - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: 'Value 2 (+)', + color: null, + noop: 'Country', + size: 'Joy factors' + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors', - y: 'Value 2 (+)', - color: 'Joy factors', - noop: 'Country', - size: null - }, - title: 'Group new Discrete & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors', + y: 'Value 2 (+)', + color: 'Joy factors', + noop: 'Country', + size: null + }, + title: 'Group new Discrete & Add new Disc Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: null, - size: ['Country', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Stack new Disc & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: null, + size: ['Country', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Stack new Disc & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs index 7660ab3df..54ad0652f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs @@ -1,93 +1,93 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Discrete & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Discrete & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Discrete & Add new Disc Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs index 5d8a0ddde..84a71ef95 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs @@ -1,90 +1,90 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - noop: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Discrete & Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + noop: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Discrete & Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs index 5557497f1..7a3d98dc5 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs @@ -1,112 +1,112 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Country' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Country' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 1 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 1 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: 'Value 1 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: 'Value 1 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 3 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 3 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - noop: { set: 'Country' }, - size: { set: 'Value 2 (+)' } - }, - title: 'Group new Discrete & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + noop: { set: 'Country' }, + size: { set: 'Value 2 (+)' } + }, + title: 'Group new Discrete & Add new Disc Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: null, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stack new Disc & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: null, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stack new Disc & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs index e09e73901..f7849ef75 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs @@ -1,107 +1,107 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: null, - size: ['Joy factors', 'Value 3 (+)'] - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: null, + size: ['Joy factors', 'Value 3 (+)'] + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Add new Disc Color & Group new Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Add new Disc Color & Group new Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: 'Joy factors', - size: ['Year', 'Value 3 (+)'], - lightness: 'Value 1 (+)' - }, - title: 'Stack new Disc, Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: 'Joy factors', + size: ['Year', 'Value 3 (+)'], + lightness: 'Value 1 (+)' + }, + title: 'Stack new Disc, Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs index f8ed276d6..2b0ea30ad 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs @@ -1,103 +1,103 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 1 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 1 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - noop: null, - size: { set: ['Joy factors'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + noop: null, + size: { set: ['Joy factors'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - noop: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + noop: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Discrete' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs index 7073b03bd..0c60c7d79 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs @@ -1,111 +1,111 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Country' }, - size: { set: 'Year' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Country' }, + size: { set: 'Year' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 1 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Year' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 1 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Year' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: 'Value 1 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: 'Value 1 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 3 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Joy factors' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 3 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Joy factors' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - noop: { set: 'Country' }, - size: null - }, - title: 'Group new Discrete & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + noop: { set: 'Country' }, + size: null + }, + title: 'Group new Discrete & Add new Disc Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: null, - size: { set: ['Country', 'Value 3 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stack new Disc & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: null, + size: { set: ['Country', 'Value 3 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stack new Disc & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs index b2ee98429..8a866b865 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs @@ -1,105 +1,105 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Add new Disc Color & Group new Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Add new Disc Color & Group new Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Stack new Disc, Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Stack new Disc, Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs index 1bf9730d2..2a8b59203 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs @@ -1,95 +1,95 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)', range: { min: '-100%', max: '200%' } }, - x: { set: 'Value 2 (+)', range: { min: '0%', max: '200%' } }, - color: null, - noop: null, - size: { set: ['Year', 'Country'] } - }, - title: 'Stacked Discs', - align: 'center' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)', range: { min: '-100%', max: '200%' } }, + x: { set: 'Value 2 (+)', range: { min: '0%', max: '200%' } }, + color: null, + noop: null, + size: { set: ['Year', 'Country'] } + }, + title: 'Stacked Discs', + align: 'center' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discs' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discs' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)', range: { min: '-10%', max: '110%' } }, - x: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: null } - }, - title: 'Group new Disc & Add previous Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)', range: { min: '-10%', max: '110%' } }, + x: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: null } + }, + title: 'Group new Disc & Add previous Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Joy factors' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Joy factors' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs index 7e79e32bd..14434d78c 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs @@ -1,107 +1,107 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: null, range: { min: '0%', max: '800%' } }, - x: { set: 'Value 2 (+)', range: { min: '0%', max: '200%' } }, - color: null, - noop: null, - size: { set: ['Year', 'Country'] } - }, - title: 'Stack Discs', - align: 'center' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: null, range: { min: '0%', max: '800%' } }, + x: { set: 'Value 2 (+)', range: { min: '0%', max: '200%' } }, + color: null, + noop: null, + size: { set: ['Year', 'Country'] } + }, + title: 'Stack Discs', + align: 'center' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discs' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discs' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 1 (+)', range: { min: '-10%', max: '110%' } }, - x: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Joy factors' }, - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 1 (+)', range: { min: '-10%', max: '110%' } }, + x: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Joy factors' }, + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 1 (+)', range: { min: '-10%', max: '110%' } }, - x: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: null } - }, - title: 'Group new Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 1 (+)', range: { min: '-10%', max: '110%' } }, + x: { set: 'Value 2 (+)', range: { min: '0%', max: '110%' } }, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: null } + }, + title: 'Group new Discrete' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - size: { set: 'Value 1 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + size: { set: 'Value 1 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs index 8b64e3622..57e410da5 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - noop: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Distribution', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + noop: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Distribution', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: 'Value 3 (+)' }, - color: { set: ['Country'] } - }, - title: 'change Conti, change coordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: 'Value 3 (+)' }, + color: { set: ['Country'] } + }, + title: 'change Conti, change coordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs index dc55d39b1..0c9ae8aa0 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs @@ -1,77 +1,77 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Group new Disc, Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Group new Disc, Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs index aa27b1245..eaa92757d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs @@ -1,82 +1,82 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Year' } - }, - title: 'Stack Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Year' } + }, + title: 'Stack Discrete & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: 'Value 2 (+)' }, - color: null, - noop: { set: 'Country' }, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: 'Value 2 (+)' }, + color: null, + noop: { set: 'Country' }, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: null, - size: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Stack new Disc & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: null, + size: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Stack new Disc & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs index 86f34112f..530e0988a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs @@ -1,80 +1,80 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Discrete & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc, Add new Disc Color & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc, Add new Disc Color & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs index 133a7fb3a..f917cdaaf 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs @@ -1,77 +1,77 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 6 (+/-)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 6 (+/-)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Change Conti & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Change Conti & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs index 1e8b7f482..432a7b2ea 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs @@ -1,94 +1,94 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Lollipop Chart', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Lollipop Chart', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 3 (+)'] }, - lightness: { set: 'Value 1 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 3 (+)'] }, + lightness: { set: 'Value 1 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs index 063c4ea09..3657fdb9e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs @@ -1,77 +1,77 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 1 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 1 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - noop: null, - size: { set: 'Year' } - }, - title: 'Stack Discrete' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + noop: null, + size: { set: 'Year' } + }, + title: 'Stack Discrete' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: ['Joy factors'] } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: ['Joy factors'] } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' }, - lightness: { set: 'Value 2 (+)' } - }, - title: 'Change Conti & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' }, + lightness: { set: 'Value 2 (+)' } + }, + title: 'Change Conti & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs index 7f9bd927e..d4e2ae5c8 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs @@ -1,81 +1,81 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: 'Value 3 (+)', range: { min: '-100%', max: '200%' } }, - x: { set: 'Value 2 (+)', range: { min: '0%', max: '200%' } }, - color: null, - noop: null, - size: { set: ['Year', 'Country'] } - }, - title: 'Stack Discrete', - align: 'center' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: 'Value 3 (+)', range: { min: '-100%', max: '200%' } }, + x: { set: 'Value 2 (+)', range: { min: '0%', max: '200%' } }, + color: null, + noop: null, + size: { set: ['Year', 'Country'] } + }, + title: 'Stack Discrete', + align: 'center' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - lightness: 'Value 3 (+)', - size: 'Value 2 (+)' - }, - title: 'Add previous Conti & Change Geoms & CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + lightness: 'Value 3 (+)', + size: 'Value 2 (+)' + }, + title: 'Add previous Conti & Change Geoms & CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs index 721da2156..431819f10 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs @@ -1,81 +1,81 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: 'Value 3 (+)' }, - x: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - noop: { set: 'Year' } - }, - title: 'Scatter plot', - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: 'Value 3 (+)' }, + x: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + noop: { set: 'Year' } + }, + title: 'Scatter plot', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: null, range: { min: '0%', max: '800%' } }, - x: { set: 'Value 2 (+)', range: { min: '0%', max: '200%' } }, - color: null, - noop: null, - size: { set: ['Year', 'Country'] } - }, - title: 'Stack Discs', - align: 'center' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: null, range: { min: '0%', max: '800%' } }, + x: { set: 'Value 2 (+)', range: { min: '0%', max: '200%' } }, + color: null, + noop: null, + size: { set: ['Year', 'Country'] } + }, + title: 'Stack Discs', + align: 'center' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - noop: null, - size: { set: 'Joy factors' } - }, - title: 'Change Discs' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + noop: null, + size: { set: 'Joy factors' } + }, + title: 'Change Discs' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - noop: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Add new Conti & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + noop: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Add new Conti & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs index c89daaf4c..59e1e3bbb 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs @@ -1,60 +1,60 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - }, - style: { - plot: { - marker: { lineMaxWidth: 0.02 } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + }, + style: { + plot: { + marker: { lineMaxWidth: 0.02 } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 3 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 3 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs index 1cdb9eb8a..e928397cd 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs @@ -1,64 +1,64 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - }, - style: { - plot: { - marker: { lineMaxWidth: 0.02 } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + }, + style: { + plot: { + marker: { lineMaxWidth: 0.02 } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs index e4dfcdbd0..2442898a3 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs @@ -1,56 +1,56 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs index 7cb425cc0..8d581483a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs @@ -1,85 +1,85 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Joy factors' - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Joy factors' + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: 'Joy factors', - color: 'Joy factors' - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: 'Joy factors', + color: 'Joy factors' + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: 'Country_code', - y: 'Joy factors', - color: 'Joy factors' - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: 'Country_code', + y: 'Joy factors', + color: 'Joy factors' + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Country_code', - y: 'Value 2 (+)', - color: 'Joy factors' - }, - title: 'Group new Disc & Add previous Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Country_code', + y: 'Value 2 (+)', + color: 'Joy factors' + }, + title: 'Group new Disc & Add previous Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Country_code', 'Value 2 (+)'] - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Country_code', 'Value 2 (+)'] + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs index 1103edaf5..4b2e6c479 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs @@ -1,88 +1,88 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Disc & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Disc & Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs index 8a9731b05..cda62f56f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs @@ -1,106 +1,106 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Joy factors' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Joy factors' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Group new Disc & Add new Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Group new Disc & Add new Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Country_code', 'Value 1 (+)'] }, - lightness: { set: 'Value 3 (+)' } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Country_code', 'Value 1 (+)'] }, + lightness: { set: 'Value 3 (+)' } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs index 3b1353d61..0fce9d7eb 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs @@ -1,103 +1,103 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: null }, - size: { set: ['Country', 'Value 1 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: null }, + size: { set: ['Country', 'Value 1 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Group new Disc & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Group new Disc & Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 3 (+)'] }, - lightness: { set: 'Value 1 (+)' } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 3 (+)'] }, + lightness: { set: 'Value 1 (+)' } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs index 56fa44047..d8536fd64 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs @@ -1,85 +1,85 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Country' } - }, - title: 'Group new Disc & Add new Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Country' } + }, + title: 'Group new Disc & Add new Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs index ca1766f3d..4d24ee27b 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs @@ -1,101 +1,101 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Disc & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Disc & Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'rectangle' - } - }, - { - geometry: { - delay: 0.5, - duration: 1.5 - }, - x: { - delay: 1 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'rectangle' + } + }, + { + geometry: { + delay: 0.5, + duration: 1.5 + }, + x: { + delay: 1 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs index 82c6234ac..81b3d9b0b 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs @@ -1,63 +1,63 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - }, - style: { - plot: { - marker: { lineMaxWidth: 0.02 } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + }, + style: { + plot: { + marker: { lineMaxWidth: 0.02 } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs index 1fc780539..7fcf6f310 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs @@ -1,55 +1,55 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs index 0d234b32b..1d1ce4a90 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs @@ -1,84 +1,84 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors'] }, - color: { set: 'Joy factors' } - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors'] }, + color: { set: 'Joy factors' } + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: ['Joy factors'] }, - color: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: ['Joy factors'] }, + color: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add previous Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add previous Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Country_code', 'Value 2 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Country_code', 'Value 2 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs index 6b176afc2..ef03477a3 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs @@ -1,87 +1,87 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Disc & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Disc & Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs index f605b5499..46bfd278c 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs @@ -1,105 +1,105 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Joy factors' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Joy factors' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Group new Disc & Add new Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Group new Disc & Add new Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Country_code', 'Value 1 (+)'] }, - lightness: { set: 'Value 3 (+)' } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Country_code', 'Value 1 (+)'] }, + lightness: { set: 'Value 3 (+)' } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs index 8adbdb38a..5331571a5 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs @@ -1,102 +1,102 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: null }, - size: { set: ['Country', 'Value 1 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: null }, + size: { set: ['Country', 'Value 1 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Group new Disc & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Group new Disc & Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 3 (+)'] }, - lightness: { set: 'Value 1 (+)' } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 3 (+)'] }, + lightness: { set: 'Value 1 (+)' } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs index 703b3f4be..9a3ed270d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs @@ -1,84 +1,84 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 3 (+)' }, - color: { set: 'Country' } - }, - title: 'Group new Disc & Add new Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 3 (+)' }, + color: { set: 'Country' } + }, + title: 'Group new Disc & Add new Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs index 6e357f8ea..97b284980 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs @@ -1,100 +1,100 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: { set: 'Joy factors' }, - size: null - }, - title: 'Group new Disc & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: { set: 'Joy factors' }, + size: null + }, + title: 'Group new Disc & Add new Disc Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Stack new Disc & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Stack new Disc & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs index 0684aa3ee..a802147a7 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs @@ -1,50 +1,50 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - }, - style: { - plot: { - marker: { lineMaxWidth: 0.02 } - } - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + }, + style: { + plot: { + marker: { lineMaxWidth: 0.02 } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change Conti & Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change Conti & Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs index e9b6782ee..fa4802853 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs @@ -1,43 +1,43 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - noop: { set: 'Year' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change Conti & Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + noop: { set: 'Year' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change Conti & Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs index 973644671..1dbb9bb06 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs @@ -1,71 +1,71 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors'] }, - color: { set: 'Joy factors' } - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors'] }, + color: { set: 'Joy factors' } + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' }, - color: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' }, + color: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Country_code', 'Value 2 (+)'] } - }, - title: 'Add previous Conti & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Country_code', 'Value 2 (+)'] } + }, + title: 'Add previous Conti & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs index 86e1c6307..7a21e0d4e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs @@ -1,74 +1,74 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Stacked Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Stacked Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Add previous Conti & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Add previous Conti & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs index 3c213db7e..8f4524382 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs @@ -1,75 +1,75 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors'] }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors'] }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Country_code' }, - y: { set: 'Joy factors' }, - color: { set: 'Joy factors' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Country_code' }, + y: { set: 'Joy factors' }, + color: { set: 'Joy factors' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Country_code', 'Value 1 (+)'] }, - lightness: { set: 'Value 3 (+)' } - }, - title: 'Add new Conti & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Country_code', 'Value 1 (+)'] }, + lightness: { set: 'Value 3 (+)' } + }, + title: 'Add new Conti & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs index ee972d4e2..c57f70a50 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs @@ -1,89 +1,89 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: { set: null }, - size: { set: ['Country', 'Value 1 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: { set: null }, + size: { set: ['Country', 'Value 1 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 3 (+)' }, - color: null, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 3 (+)' }, + color: null, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 3 (+)'] }, - lightness: { set: 'Value 1 (+)' } - }, - title: 'Add new Disc Color & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 3 (+)'] }, + lightness: { set: 'Value 1 (+)' } + }, + title: 'Add new Disc Color & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs index 7d0cc37cb..8eefc07dd 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs @@ -1,87 +1,87 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 1 (+)' }, - color: null, - size: { set: 'Joy factors' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 1 (+)' }, + color: null, + size: { set: 'Joy factors' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Add new Disc Color & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Add new Disc Color & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs index a70479f2d..b23d2bf32 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs @@ -1,72 +1,72 @@ import { data_14 } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Country' } - }, - title: 'Line Chart', - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Country' } + }, + title: 'Line Chart', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Stack Disc & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Stack Disc & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Change Disc' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Change Disc' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Add new Conti & Change Geoms & CoordSys', - geometry: 'circle' - } - }, - { - geometry: { - duration: 1 - }, - x: { - delay: 0.5 - } - } - ) + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Add new Conti & Change Geoms & CoordSys', + geometry: 'circle' + } + }, + { + geometry: { + duration: 1 + }, + x: { + delay: 0.5 + } + } + ) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs index 1e3ba4d5f..70a7f11b7 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Add Conti & Change coordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Add Conti & Change coordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs index c6b4b3671..720ddbeeb 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs @@ -1,60 +1,60 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 3 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 3 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs index 1f7eeaec3..e968e9290 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs @@ -1,81 +1,81 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Year', 'Value 2 (+)'] } - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Year', 'Value 2 (+)'] } + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Group new Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Group new Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs index 6123c20c5..8b7b5edec 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs @@ -1,89 +1,89 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Year', 'Value 2 (+)'] } - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Year', 'Value 2 (+)'] } + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] } - }, - title: 'Group new Disc', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] } + }, + title: 'Group new Disc', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs index d9732b4e1..7c93a5b68 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs @@ -1,72 +1,72 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs index 3099bfb67..eb127c204 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs @@ -1,74 +1,74 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Year' } - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Year' } + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs index fcb4800f3..3fc6f0dd2 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs @@ -1,100 +1,100 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Year', 'Value 2 (+)'] } - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Year', 'Value 2 (+)'] } + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Joy factors', 'Value 1 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Joy factors', 'Value 1 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 1 (+)'] } - }, - title: 'Group new Disc', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 1 (+)'] } + }, + title: 'Group new Disc', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs index ac7c4f87c..592e25273 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs @@ -1,88 +1,88 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: ['Country', 'Value 3 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: ['Country', 'Value 3 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: ['Year', 'Value 3 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: ['Year', 'Value 3 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Conti', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Conti', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: { set: 'Year' } - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: { set: 'Year' } + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Year' }, - lightness: { set: 'Value 1 (+)' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Year' }, + lightness: { set: 'Value 1 (+)' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs index ee2d7de49..d5e90288d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs @@ -1,96 +1,96 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Country', 'Year', 'Value 2 (+)'] } - }, - title: 'Stack Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Country', 'Year', 'Value 2 (+)'] } + }, + title: 'Stack Disc' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Country', 'Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - y: { set: ['Country', 'Joy factors', 'Value 3 (+)'] } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: { set: ['Country', 'Joy factors', 'Value 3 (+)'] } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors'] }, - y: { set: ['Country', 'Value 3 (+)'] } - }, - title: 'Group new Disc' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors'] }, + y: { set: ['Country', 'Value 3 (+)'] } + }, + title: 'Group new Disc' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs index d9a29d72b..7cda11095 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs @@ -1,84 +1,84 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Discrete & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Discrete & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: null - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: null + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change CoordSys', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change CoordSys', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs index ed4dc1851..982e1ea84 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs @@ -1,89 +1,89 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Discrete & Remove Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Discrete & Remove Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: null - }, - title: 'Change Conti', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: null + }, + title: 'Change Conti', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Joy factors', 'Value 1 (+)'] }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Joy factors', 'Value 1 (+)'] }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - lightness: { set: 'Value 3 (+)' }, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 1 (+)'] } - }, - title: 'Change CoordSys', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + lightness: { set: 'Value 3 (+)' }, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 1 (+)'] } + }, + title: 'Change CoordSys', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs index 28282040d..08858abaf 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs @@ -1,87 +1,87 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Year', 'Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Year', 'Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs index b8533e51c..cebbe684e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs @@ -1,90 +1,90 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Year', 'Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Year', 'Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc', - orientation: 'horizontal' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc', + orientation: 'horizontal' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color & Add previous Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color & Add previous Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs index f234426ae..48dc2d798 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs @@ -1,90 +1,90 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: { set: ['Year', 'Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color & Remove Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: { set: ['Year', 'Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color & Remove Conti' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: null, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: null, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & add new Disc Color & Add new Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & add new Disc Color & Add new Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: 'Value 2 (+)' }, - lightness: { set: 'Value 1 (+)' } - }, - title: 'Change CoordSys', - align: 'min' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: 'Value 2 (+)' }, + lightness: { set: 'Value 1 (+)' } + }, + title: 'Change CoordSys', + align: 'min' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs index a82b026c1..6c68f646f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs @@ -1,49 +1,49 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Year', 'Value 3 (+)'] } - }, - title: 'Add Conti & change CoordSys', - geometry: 'rectangle' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Year', 'Value 3 (+)'] } + }, + title: 'Add Conti & change CoordSys', + geometry: 'rectangle' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs index 71fad8919..3360c6738 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs @@ -1,90 +1,90 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Remove Conti' - }, - style: { - plot: { - marker: { rectangleSpacing: '0' } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Remove Conti' + }, + style: { + plot: { + marker: { rectangleSpacing: '0' } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Add previous Conti & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Add previous Conti & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs index 58c90d9a8..2780de1be 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs @@ -1,94 +1,94 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch & axisLabel off', - align: 'stretch', - orientation: 'vertical' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch & axisLabel off', + align: 'stretch', + orientation: 'vertical' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Disc', - orientation: 'vertical' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Disc', + orientation: 'vertical' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs index 7317ccc94..ff959cc0a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs @@ -1,61 +1,61 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Add new Disc Color & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Add new Disc Color & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs index 97784245a..1e0d2d753 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs @@ -1,61 +1,61 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Disc & Remove Color', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Disc & Remove Color', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: ['Year', 'Value 2 (+)'] } - }, - title: 'Add new Disc Color & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: ['Year', 'Value 2 (+)'] } + }, + title: 'Add new Disc Color & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs index 911d6e596..12751a8a4 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs @@ -1,80 +1,80 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: ['Country', 'Value 3 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: ['Country', 'Value 3 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: 'Value 3 (+)' }, - color: null - }, - title: 'Remove Y Disc & Remove Color' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: 'Value 3 (+)' }, + color: null + }, + title: 'Remove Y Disc & Remove Color' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: ['Year', 'Value 3 (+)'] }, - color: null - }, - title: 'Add new Disc', - orientation: 'horizontal' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: ['Year', 'Value 3 (+)'] }, + color: null + }, + title: 'Add new Disc', + orientation: 'horizontal' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Year' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: ['Joy factors', 'Value 3 (+)'] } - }, - title: 'Add new Disc Color & Add new Conti & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Year' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: ['Joy factors', 'Value 3 (+)'] } + }, + title: 'Add new Disc Color & Add new Conti & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs index 8a83a7a10..0fe0d602c 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs @@ -1,87 +1,87 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 3 (+)' }, - y: { set: ['Year', 'Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color & Stretch & axisLabel off', - align: 'stretch' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 3 (+)' }, + y: { set: ['Year', 'Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color & Stretch & axisLabel off', + align: 'stretch' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 3 (+)' }, - y: { - set: ['Joy factors', 'Value 2 (+)'], - range: { min: '0%', max: '100%' } - } - }, - title: 'Change Disc', - orientation: 'auto' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 3 (+)' }, + y: { + set: ['Joy factors', 'Value 2 (+)'], + range: { min: '0%', max: '100%' } + } + }, + title: 'Change Disc', + orientation: 'auto' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: 'Value 3 (+)' } - }, - title: 'add new Disc Color & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: 'Value 3 (+)' } + }, + title: 'add new Disc Color & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs index 3b10df4f2..243308034 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs @@ -1,81 +1,81 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 3 (+)' }, - y: { set: ['Year', 'Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack, Remove Conti & Remove Color', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 3 (+)' }, + y: { set: ['Year', 'Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack, Remove Conti & Remove Color', + align: 'stretch' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Value 3 (+)' }, - y: { set: ['Joy factors', 'Value 2 (+)'] }, - color: null - }, - title: 'Change Discs', - orientation: 'auto' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Value 3 (+)' }, + y: { set: ['Joy factors', 'Value 2 (+)'] }, + color: null + }, + title: 'Change Discs', + orientation: 'auto' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: 'Value 2 (+)' }, - lightness: { set: 'Value 1 (+)' } - }, - title: 'Add Conti & add new Disc Color & Change CoordSys', - align: 'min' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: 'Value 2 (+)' }, + lightness: { set: 'Value 1 (+)' } + }, + title: 'Add Conti & add new Disc Color & Change CoordSys', + align: 'min' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs index 131a29a2a..4ef416167 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs @@ -1,116 +1,116 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Remove Conti' - }, - style: { - plot: { - marker: { rectangleSpacing: '0' } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Remove Conti' + }, + style: { + plot: { + marker: { rectangleSpacing: '0' } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Change Discrete' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Change Discrete' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Add previous Conti', - orientation: 'horizontal' - }, - style: { - plot: { - marker: { rectangleSpacing: null } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Add previous Conti', + orientation: 'horizontal' + }, + style: { + plot: { + marker: { rectangleSpacing: null } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs index b5118b008..c9b8fc9a1 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs @@ -1,105 +1,105 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch & axisLabel off', - align: 'stretch', - orientation: 'vertical' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch & axisLabel off', + align: 'stretch', + orientation: 'vertical' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch off & axisLabel on', - orientation: 'horizontal', - align: 'none' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch off & axisLabel on', + orientation: 'horizontal', + align: 'none' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs index 2ba055f37..67dfd2814 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs @@ -1,117 +1,117 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch & axisLabel off', - align: 'stretch', - orientation: 'vertical' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch & axisLabel off', + align: 'stretch', + orientation: 'vertical' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 1 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 1 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 1 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch off & axisLabel on', - orientation: 'horizontal', - align: 'none' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 1 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch off & axisLabel on', + orientation: 'horizontal', + align: 'none' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change CoordSys' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change CoordSys' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs index f854160a4..91e2ab459 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs @@ -1,116 +1,116 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Remove Conti & recSpacing on' - }, - style: { - plot: { - marker: { rectangleSpacing: '0' } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Remove Conti & recSpacing on' + }, + style: { + plot: { + marker: { rectangleSpacing: '0' } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Country' }, - color: { set: 'Country' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Country' }, + color: { set: 'Country' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: ['Country', 'Value 1 (+)'] }, - color: { set: 'Country' } - }, - title: 'Add new Conti & recSpacing off', - orientation: 'horizontal' - }, - style: { - plot: { - marker: { rectangleSpacing: null } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: ['Country', 'Value 1 (+)'] }, + color: { set: 'Country' } + }, + title: 'Add new Conti & recSpacing off', + orientation: 'horizontal' + }, + style: { + plot: { + marker: { rectangleSpacing: null } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs index 8f877d267..2993b564f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs @@ -1,125 +1,125 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch & axisLabel off', - align: 'stretch', - orientation: 'vertical' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch & axisLabel off', + align: 'stretch', + orientation: 'vertical' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0 + } + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 1 (+)'] }, - color: { set: 'Country' } - }, - title: 'Change Conti' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 1 (+)'] }, + color: { set: 'Country' } + }, + title: 'Change Conti' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 1 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stretch off & axisLabel on', - orientation: 'horizontal', - align: 'none' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 1 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stretch off & axisLabel on', + orientation: 'horizontal', + align: 'none' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Country' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: ['Joy factors', 'Value 1 (+)'] } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Country' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: ['Joy factors', 'Value 1 (+)'] } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs index 9ed368058..00d13aa1e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs @@ -1,101 +1,101 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Year' } - }, - title: 'Mekko Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Year' } + }, + title: 'Mekko Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 3 (+)' }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color & Stretch & axisLabel off', - align: 'stretch' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 3 (+)' }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color & Stretch & axisLabel off', + align: 'stretch' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 3 (+)'] }, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 3 (+)'] }, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)', range: { max: '125%' } }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color & Stretch off & axisLabel on', - align: 'min' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)', range: { max: '125%' } }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color & Stretch off & axisLabel on', + align: 'min' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: 'Value 1 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: 'Value 1 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs index 2f00895ba..95935071d 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs @@ -1,98 +1,98 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: null - }, - title: '1 Tile Stretch & Remove Color', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: null + }, + title: '1 Tile Stretch & Remove Color', + align: 'stretch' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '100%' } } - }, - title: '2 Tile Change Disc', - geometry: 'rectangle', - orientation: 'horizontal' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '100%' } } + }, + title: '2 Tile Change Disc', + geometry: 'rectangle', + orientation: 'horizontal' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Change CoordSys' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Change CoordSys' + } + }), - (chart) => - chart.animate({ - data: { - filter: (record) => record['Joy factors'] !== 'Happiness' - }, - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 2 (+)' }, - size: { set: 'Value 3 (+)' } - }, - title: 'Filter' - } - }) + (chart) => + chart.animate({ + data: { + filter: (record) => record['Joy factors'] !== 'Happiness' + }, + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 2 (+)' }, + size: { set: 'Value 3 (+)' } + }, + title: 'Filter' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs index 4334c610c..8af77476f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs @@ -1,110 +1,110 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: 'Year' }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Stacked Column Chart' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: 'Year' }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Stacked Column Chart' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Year' }, - y: { set: 'Country' }, - color: null - }, - title: 'Remove Color & Remove Conti & Change Orientation & recSpacing', - orientation: 'vertical' - }, - style: { - plot: { - marker: { rectangleSpacing: '0' } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Year' }, + y: { set: 'Country' }, + color: null + }, + title: 'Remove Color & Remove Conti & Change Orientation & recSpacing', + orientation: 'vertical' + }, + style: { + plot: { + marker: { rectangleSpacing: '0' } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: null, - color: null - }, - title: 'Change Discs & Change Orientation', - orientation: 'horizontal' - } - }, - { - duration: 0.5 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: null, + color: null + }, + title: 'Change Discs & Change Orientation', + orientation: 'horizontal' + } + }, + { + duration: 0.5 + } + ), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: 'Joy factors' }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color & Add previous Conti & recSpacing', - orientation: 'horizontal' - }, - style: { - plot: { - marker: { rectangleSpacing: null } - } - } - }, - { - easing: 'cubic-bezier(.39,0,.35,.99)', - y: { - delay: 0, - duration: 1 - } - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: 'Joy factors' }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color & Add previous Conti & recSpacing', + orientation: 'horizontal' + }, + style: { + plot: { + marker: { rectangleSpacing: null } + } + } + }, + { + easing: 'cubic-bezier(.39,0,.35,.99)', + y: { + delay: 0, + duration: 1 + } + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: 'Value 2 (+)' } - }, - title: 'Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: 'Value 2 (+)' } + }, + title: 'Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs index 3372d1544..48dda342a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs @@ -1,107 +1,107 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: null - }, - title: 'Remove Color & Stretch & axisLabel off', - align: 'stretch' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: null + }, + title: 'Remove Color & Stretch & axisLabel off', + align: 'stretch' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: null - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: null + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Add new Disc Color & Stretch off & axisLabel on', - align: 'none' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Add new Disc Color & Stretch off & axisLabel on', + align: 'none' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: 'Value 2 (+)' } - }, - title: 'add new Disc Color & Change CoordSys & axisLabel on' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: 'Value 2 (+)' } + }, + title: 'add new Disc Color & Change CoordSys & axisLabel on' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs index 3a9c55dec..69414e09f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs @@ -1,81 +1,81 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: { set: 'Country' } - }, - title: 'Mekko Chart', - geometry: 'rectangle', - orientation: 'horizontal' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: { set: 'Country' } + }, + title: 'Mekko Chart', + geometry: 'rectangle', + orientation: 'horizontal' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: ['Country', 'Value 2 (+)'] }, - color: null - }, - title: '1 Tile Stretch & Remove Color', - align: 'stretch' - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: ['Country', 'Value 2 (+)'] }, + color: null + }, + title: '1 Tile Stretch & Remove Color', + align: 'stretch' + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Joy factors', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)', range: { min: '0%', max: '100%' } } - }, - title: 'Change Disc', - geometry: 'rectangle', - orientation: 'horizontal' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Joy factors', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)', range: { min: '0%', max: '100%' } } + }, + title: 'Change Disc', + geometry: 'rectangle', + orientation: 'horizontal' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - lightness: { set: 'Value 3 (+)' }, - size: { set: 'Value 2 (+)' } - }, - title: 'add new Disc Color & Change CoordSys' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + lightness: { set: 'Value 3 (+)' }, + size: { set: 'Value 2 (+)' } + }, + title: 'add new Disc Color & Change CoordSys' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs index 757f20d91..8ad5b3387 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs @@ -1,102 +1,102 @@ import { data } from '../../../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: { set: ['Year', 'Value 3 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Year' } - }, - title: 'Mekko Chart', - geometry: 'rectangle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: { set: ['Year', 'Value 3 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Year' } + }, + title: 'Mekko Chart', + geometry: 'rectangle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: 'Value 1 (+)' }, - y: { set: ['Year', 'Value 2 (+)'] }, - color: null - }, - title: 'Stack Disc & Remove Color & Change Conti & Stretch & axisLabel off', - align: 'stretch' - }, - style: { - plot: { - xAxis: { label: { color: 'rgb(255,255,255)' } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: 'Value 1 (+)' }, + y: { set: ['Year', 'Value 2 (+)'] }, + color: null + }, + title: 'Stack Disc & Remove Color & Change Conti & Stretch & axisLabel off', + align: 'stretch' + }, + style: { + plot: { + xAxis: { label: { color: 'rgb(255,255,255)' } } + } + } + }), - (chart) => - chart.animate( - { - config: { - channels: { - x: { set: ['Value 1 (+)'] }, - y: { set: ['Joy factors', 'Value 2 (+)'] } - }, - title: 'Change Disc' - } - }, - { - duration: 0 - } - ), + (chart) => + chart.animate( + { + config: { + channels: { + x: { set: ['Value 1 (+)'] }, + y: { set: ['Joy factors', 'Value 2 (+)'] } + }, + title: 'Change Disc' + } + }, + { + duration: 0 + } + ), - (chart) => - chart.animate({ - config: { - channels: { - x: { set: ['Joy factors', 'Value 1 (+)'] }, - y: { set: 'Value 2 (+)' }, - color: { set: 'Joy factors' } - }, - title: 'Group new Disc & Add new Disc Color & Stretch off & axisLabel on', - align: 'min' - }, - style: { - plot: { - xAxis: { label: { color: null } } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: { set: ['Joy factors', 'Value 1 (+)'] }, + y: { set: 'Value 2 (+)' }, + color: { set: 'Joy factors' } + }, + title: 'Group new Disc & Add new Disc Color & Stretch off & axisLabel on', + align: 'min' + }, + style: { + plot: { + xAxis: { label: { color: null } } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: { set: 'Joy factors' }, - size: { set: 'Value 2 (+)' }, - lightness: { set: 'Value 1 (+)' } - }, - title: 'Change CoordSys', - align: 'min' - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: { set: 'Joy factors' }, + size: { set: 'Value 2 (+)' }, + lightness: { set: 'Value 1 (+)' } + }, + title: 'Change CoordSys', + align: 'min' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs index 640db6f88..959c630cd 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs @@ -1,87 +1,87 @@ import { data_8 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data_8, { - filter: (record) => - (record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Greece' || - record.Country === 'Germany') && - record.Year >= 15 - }) - }), + (chart) => + chart.animate({ + data: Object.assign(data_8, { + filter: (record) => + (record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Greece' || + record.Country === 'Germany') && + record.Year >= 15 + }) + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 3 (+)', - y: 'Value 2 (+)', - color: 'Joy factors', - lightness: null, - size: null, - label: 'Country_code', - noop: 'Country' - }, - geometry: 'circle' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 3 (+)', + y: 'Value 2 (+)', + color: 'Joy factors', + lightness: null, + size: null, + label: 'Country_code', + noop: 'Country' + }, + geometry: 'circle' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Country', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - lightness: null, - size: null, - label: null, - noop: null - }, - geometry: 'rectangle' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Country', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + lightness: null, + size: null, + label: null, + noop: null + }, + geometry: 'rectangle' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Country', - lightness: 'Value 3 (+)', - size: ['Value 2 (+)'], - label: 'Country_code', - noop: null - }, - geometry: 'circle' - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Country', + lightness: 'Value 3 (+)', + size: ['Value 2 (+)'], + label: 'Country_code', + noop: null + }, + geometry: 'circle' + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs index 655abd7be..c685249fe 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs @@ -1,53 +1,53 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - geometry: 'area' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Joy factors', 'Value 3 (+)'], - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - geometry: 'area' - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Joy factors', 'Value 3 (+)'], + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + geometry: 'area' + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs index 406e6f3f9..d60385718 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs @@ -1,53 +1,53 @@ import { data_14 } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - geometry: 'line' - } - }), + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - data: data_14, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - } - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + data: data_14, + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + } + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs index bcc57ab1d..5140cf38a 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs @@ -1,63 +1,63 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Greece' || - record.Country === 'Germany') && - record.Year >= 10 - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Greece' || + record.Country === 'Germany') && + record.Year >= 10 + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - geometry: 'rectangle' - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + geometry: 'rectangle' + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 2 (+)', - color: 'Country' - }, - geometry: 'circle' - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 2 (+)', + color: 'Country' + }, + geometry: 'circle' + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs index 50abf5270..5d845dbed 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs @@ -1,59 +1,59 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Greece' || - record.Country === 'Germany' - }), - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Greece' || + record.Country === 'Germany' + }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Joy factors', 'Value 1 (+)'], - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: ['Joy factors', 'Value 1 (+)'], + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs index 99a4ddc79..e5687f581 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs @@ -1,54 +1,54 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Greece' || - record.Country === 'Germany' - }), - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Greece' || + record.Country === 'Germany' + }), + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: ['Joy factors'], - color: 'Joy factors' - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: ['Joy factors'], + color: 'Joy factors' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs index b0621a36e..862c28cb3 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs @@ -1,45 +1,45 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Greece' || - record.Country === 'Germany') && - record.Year >= 10 - }), - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Greece' || + record.Country === 'Germany') && + record.Year >= 10 + }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors' - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - color: 'Country' - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + color: 'Country' + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs index 99f1c90c7..530418a2f 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs @@ -1,48 +1,48 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland') && - record.Year >= 10 - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland') && + record.Year >= 10 + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Joy factors', - color: 'Country' - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: 'Joy factors', + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - color: 'Country', - label: null - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + color: 'Country', + label: null + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs index 16051d122..fcff604ed 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs @@ -1,47 +1,47 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Belgium' || - record.Country === 'Cyprus' || - record.Country === 'Denmark') && - record.Year >= 10 - }), - config: { - channels: { - y: 'Value 3 (+)', - x: 'Value 2 (+)', - color: 'Country' - }, - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Belgium' || + record.Country === 'Cyprus' || + record.Country === 'Denmark') && + record.Year >= 10 + }), + config: { + channels: { + y: 'Value 3 (+)', + x: 'Value 2 (+)', + color: 'Country' + }, + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 3 (+)', - noop: 'Year', - label: 'Year' - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 3 (+)', + noop: 'Year', + label: 'Year' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - y: 'Value 3 (+)', - color: 'Country', - noop: null, - label: null - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + y: 'Value 3 (+)', + color: 'Country', + noop: null, + label: null + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs index aa09d7479..28b4e85cd 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs @@ -1,65 +1,65 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Austria' || - record.Country === 'Germany' || - record.Country === 'Cyprus') && - record.Year >= 10 - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - geometry: 'circle' - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Austria' || + record.Country === 'Germany' || + record.Country === 'Cyprus') && + record.Year >= 10 + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Year', 'Value 2 (+)'], - label: 'Year' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Year', 'Value 2 (+)'], + label: 'Year' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country', - size: null, - label: null - }, - geometry: 'circle' - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country', + size: null, + label: null + }, + geometry: 'circle' + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs index ac70f89ee..5399f2bc4 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs @@ -1,66 +1,66 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Greece' || - record.Country === 'Germany') && - record.Year >= 10 - }), - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Greece' || + record.Country === 'Germany') && + record.Year >= 10 + }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Year', 'Value 2 (+)'], - label: 'Year' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Year', 'Value 2 (+)'], + label: 'Year' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - size: null, - label: null - } - }, - style: { - plot: { - marker: { - colorPalette: null - } - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + size: null, + label: null + } + }, + style: { + plot: { + marker: { + colorPalette: null + } + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs index f31198a81..f9f998f5e 100755 --- a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs +++ b/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs @@ -1,58 +1,58 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Greece' || - record.Country === 'Germany') && - record.Year >= 10 - }), - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)'] - } - } - }), + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Greece' || + record.Country === 'Germany') && + record.Year >= 10 + }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)'] + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Joy factors', - size: ['Year', 'Value 2 (+)'], - label: 'Year' - } - }, - style: { - plot: { - marker: { - colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' - } - } - } - }), + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Joy factors', + size: ['Year', 'Value 2 (+)'], + label: 'Year' + } + }, + style: { + plot: { + marker: { + colorPalette: '#ef675aFF #6d8cccFF #e6cf99FF #9c50abFF' + } + } + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)'], - color: null, - size: null, - label: null - } - } - }) + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)'], + color: null, + size: null, + label: null + } + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs index f97f1d4cb..128ba00cf 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs @@ -1,51 +1,51 @@ import { data } from '../../../test_data/IMDB_data.mjs' const testSteps = [ - (chart) => { - console.log(chart.styles) - return chart - }, + (chart) => { + console.log(chart.styles) + return chart + }, - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Year === '1974' || - record.Year === '1975' || - record.Year === '1976' || - record.Year === '1977' || - record.Year === '1978' || - record.Year === '1979' || - record.Year === '1980' || - record.Year === '1981' || - record.Year === '1982' || - record.Year === '1983' || - record.Year === '1984' || - record.Year === '1985' || - record.Year === '1986' || - record.Year === '1987' || - record.Year === '1988' || - record.Year === '1989' || - record.Year === '1990' - }), - config: { - channels: { - x: 'Year', - y: 'IMDb Rating', - label: 'IMDb Rating' - }, - title: 'Histogram' - }, - style: { - plot: { - marker: { rectangleSpacing: '0.07' } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Year === '1974' || + record.Year === '1975' || + record.Year === '1976' || + record.Year === '1977' || + record.Year === '1978' || + record.Year === '1979' || + record.Year === '1980' || + record.Year === '1981' || + record.Year === '1982' || + record.Year === '1983' || + record.Year === '1984' || + record.Year === '1985' || + record.Year === '1986' || + record.Year === '1987' || + record.Year === '1988' || + record.Year === '1989' || + record.Year === '1990' + }), + config: { + channels: { + x: 'Year', + y: 'IMDb Rating', + label: 'IMDb Rating' + }, + title: 'Histogram' + }, + style: { + plot: { + marker: { rectangleSpacing: '0.07' } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs index d7435f245..1ecf291c3 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: { set: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - x: ['Joy factors', 'Country'], - color: 'Joy factors', - label: 'Value 5 (+/-)' - }, - title: 'Grouped Column Chart with (-) Nums' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: { set: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + x: ['Joy factors', 'Country'], + color: 'Joy factors', + label: 'Value 5 (+/-)' + }, + title: 'Grouped Column Chart with (-) Nums' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart.mjs index a74ba6fb4..9e25a3300 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart.mjs @@ -1,25 +1,25 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Value 2 (+)', 'Joy factors'], - x: 'Year', - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Split Column Chart', - split: true - } - }), + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Value 2 (+)', 'Joy factors'], + x: 'Year', + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Split Column Chart', + split: true + } + }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs index 945e78307..ee6bfde91 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs @@ -1,32 +1,32 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' - }), - config: { - channels: { - x: 'Country', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Percentage Stacked Column Chart', - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' + }), + config: { + channels: { + x: 'Country', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Percentage Stacked Column Chart', + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart.mjs index 5e1b87716..5d725d1ce 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart.mjs @@ -1,38 +1,38 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark') && - (record['Joy factors'] === 'Love' || record['Joy factors'] === 'Creativity') - }), - config: { - channels: { - x: 'Country', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Range Column Chart', - legend: null - }, - style: { - plot: { - marker: { colorPalette: '#f2b82dFF #00000000 #00000000' } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark') && + (record['Joy factors'] === 'Love' || record['Joy factors'] === 'Creativity') + }), + config: { + channels: { + x: 'Country', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Range Column Chart', + legend: null + }, + style: { + plot: { + marker: { colorPalette: '#f2b82dFF #00000000 #00000000' } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs index d474e9244..eecb00aea 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs @@ -3,40 +3,45 @@ import { data } from '../../../test_data/chart_types_eu.mjs' data.filter = (record) => record.Country === 'Belgium' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: ['Year', 'Value 5 (+/-)'], - color: { - attach: 'Value 5 (+/-)', - range: { - min: Number.MIN_SAFE_INTEGER, - max: Number.MAX_SAFE_INTEGER - } - }, - label: 'Value 5 (+/-)' - }, - title: 'Waterfall Chart', - legend: null - }, - style: { - plot: { - marker: { - colorGradient: ['#ff001b 0', '#ff001b 0.5', '#7e79e8 0.5', '#7e79e8 1'].join(), - label: { - position: 'top' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: ['Year', 'Value 5 (+/-)'], + color: { + attach: 'Value 5 (+/-)', + range: { + min: Number.MIN_SAFE_INTEGER, + max: Number.MAX_SAFE_INTEGER + } + }, + label: 'Value 5 (+/-)' + }, + title: 'Waterfall Chart', + legend: null + }, + style: { + plot: { + marker: { + colorGradient: [ + '#ff001b 0', + '#ff001b 0.5', + '#7e79e8 0.5', + '#7e79e8 1' + ].join(), + label: { + position: 'top' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs index a79876d36..a63ba1855 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs @@ -1,29 +1,29 @@ import { data } from '../../../test_data/chart_types_eu.mjs' data.filter = (record) => - record.Country === 'Bulgaria' || - record.Country === 'Germany' || - record.Country === 'Malta' || - record.Country === 'Lithuania' + record.Country === 'Bulgaria' || + record.Country === 'Germany' || + record.Country === 'Malta' || + record.Country === 'Lithuania' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: ['Joy factors', 'Value 2 (+)'], - x: ['Country', 'Value 1 (+)'], - color: 'Joy factors', - label: 'Country' - }, - title: 'Stacked Mekko chart' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + y: ['Joy factors', 'Value 2 (+)'], + x: ['Country', 'Value 1 (+)'], + color: 'Joy factors', + label: 'Country' + }, + title: 'Stacked Mekko chart' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart.mjs index f1a07be7b..b45657206 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart.mjs @@ -1,28 +1,28 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Bulgaria' || - record.Country === 'Germany' || - record.Country === 'Malta' || - record.Country === 'Lithuania' - }), - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: ['Joy factors', 'Value 3 (+)'], - color: 'Joy factors', - label: 'Country', - lightness: 'Country' - }, - title: 'Marimekko Chart', - align: 'stretch', - orientation: 'horizontal' - } - }) + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Bulgaria' || + record.Country === 'Germany' || + record.Country === 'Malta' || + record.Country === 'Lithuania' + }), + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: ['Joy factors', 'Value 3 (+)'], + color: 'Joy factors', + label: 'Country', + lightness: 'Country' + }, + title: 'Marimekko Chart', + align: 'stretch', + orientation: 'horizontal' + } + }) ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart.mjs index 860705b1d..e5b6d7e58 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart.mjs @@ -1,46 +1,46 @@ import { data } from '../../../test_data/icicle2.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { set: ['Level names', 'Value'], range: { max: '100%' } }, - y: { set: 'Levels', title: 'Levels', range: { max: '100%' } }, - label: 'Level names', - lightness: 'Level names', - color: 'Level names' - }, - title: 'Fake Icicle Chart' - }, - style: { - plot: { - paddingLeft: '4.14em', - yAxis: { - ticks: { color: '#00000000' }, - label: { color: '#00000000' }, - color: '#00000000' - }, - xAxis: { - label: { color: '#00000000' }, - interlacing: { color: '#00000000' } - }, - marker: { - rectangleSpacing: '0', - label: { - fontSize: '0.8em', - orientation: 'vertical', - angle: 3.14 * -1 - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { set: ['Level names', 'Value'], range: { max: '100%' } }, + y: { set: 'Levels', title: 'Levels', range: { max: '100%' } }, + label: 'Level names', + lightness: 'Level names', + color: 'Level names' + }, + title: 'Fake Icicle Chart' + }, + style: { + plot: { + paddingLeft: '4.14em', + yAxis: { + ticks: { color: '#00000000' }, + label: { color: '#00000000' }, + color: '#00000000' + }, + xAxis: { + label: { color: '#00000000' }, + interlacing: { color: '#00000000' } + }, + marker: { + rectangleSpacing: '0', + label: { + fontSize: '0.8em', + orientation: 'vertical', + angle: 3.14 * -1 + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart.mjs index 04bdd0189..b62db7584 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart.mjs @@ -1,47 +1,47 @@ import { data } from '../../../test_data/icicle.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { - set: ['Joy factors/Country', 'Value 2 (+)'], - range: { max: '100%' } - }, - y: { set: 'Type', title: 'Q. by Countries', range: { max: '100%' } }, - label: 'Joy factors/Country', - color: 'Joy factors/Country' - }, - title: 'Fake Icicle Chart' - }, - style: { - plot: { - paddingLeft: '4.14em', - yAxis: { - ticks: { color: '#00000000' }, - label: { color: '#00000000' }, - color: '#00000000' - }, - xAxis: { - label: { color: '#00000000' }, - interlacing: { color: '#00000000' } - }, - marker: { - rectangleSpacing: '0', - label: { - orientation: 'vertical', - angle: 3.14 * -1 - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { + set: ['Joy factors/Country', 'Value 2 (+)'], + range: { max: '100%' } + }, + y: { set: 'Type', title: 'Q. by Countries', range: { max: '100%' } }, + label: 'Joy factors/Country', + color: 'Joy factors/Country' + }, + title: 'Fake Icicle Chart' + }, + style: { + plot: { + paddingLeft: '4.14em', + yAxis: { + ticks: { color: '#00000000' }, + label: { color: '#00000000' }, + color: '#00000000' + }, + xAxis: { + label: { color: '#00000000' }, + interlacing: { color: '#00000000' } + }, + marker: { + rectangleSpacing: '0', + label: { + orientation: 'vertical', + angle: 3.14 * -1 + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart.mjs index f440788c1..9cbad29db 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart.mjs @@ -1,27 +1,27 @@ import { data_1974_1990 } from '../../../test_data/IMDB_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_1974_1990, - config: { - channels: { - x: 'Year', - y: { set: 'Index', range: { max: '100%' } } - }, - title: 'Matrix Chart', - align: 'none' - }, - style: { - plot: { - marker: { borderOpacity: 0, rectangleSpacing: 0 } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: data_1974_1990, + config: { + channels: { + x: 'Year', + y: { set: 'Index', range: { max: '100%' } } + }, + title: 'Matrix Chart', + align: 'none' + }, + style: { + plot: { + marker: { borderOpacity: 0, rectangleSpacing: 0 } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative.mjs index c133f8c18..9714c9cf8 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: 'Country', - x: { attach: 'Value 5 (+/-)', range: { min: '0%', max: '110%' } }, - label: 'Value 5 (+/-)' - }, - title: 'Bar Chart with (-) Nums' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: 'Country', + x: { attach: 'Value 5 (+/-)', range: { min: '0%', max: '110%' } }, + label: 'Value 5 (+/-)' + }, + title: 'Bar Chart with (-) Nums' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs index 4dbb6ac4c..cf285a7e1 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Hungary' - }), - config: { - channels: { - y: ['Joy factors', 'Country'], - x: { set: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, - color: 'Joy factors', - label: 'Value 5 (+/-)' - }, - title: 'Grouped Bar Chart with (-) Nums' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Hungary' + }), + config: { + channels: { + y: ['Joy factors', 'Country'], + x: { set: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } }, + color: 'Joy factors', + label: 'Value 5 (+/-)' + }, + title: 'Grouped Bar Chart with (-) Nums' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs index 3edc3191e..57287723e 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs @@ -1,24 +1,24 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: ['Value 2 (+)', 'Joy factors'], - y: 'Year', - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Split Bar Chart', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: ['Value 2 (+)', 'Joy factors'], + y: 'Year', + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Split Bar Chart', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs index 9490d89f7..802c56365 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs @@ -1,32 +1,32 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' - }), - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - y: 'Country', - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Percentage Stacked Bar Chart', - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' + }), + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + y: 'Country', + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Percentage Stacked Bar Chart', + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart.mjs index 4bcaeb67a..b21dcf028 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart.mjs @@ -1,38 +1,38 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark') && - (record['Joy factors'] === 'Love' || record['Joy factors'] === 'Creativity') - }), - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - y: 'Country', - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Range Bar Chart', - legend: null - }, - style: { - plot: { - marker: { colorPalette: '#f2b82dFF #00000000 #00000000' } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark') && + (record['Joy factors'] === 'Love' || record['Joy factors'] === 'Creativity') + }), + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + y: 'Country', + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Range Bar Chart', + legend: null + }, + style: { + plot: { + marker: { colorPalette: '#f2b82dFF #00000000 #00000000' } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs index 99917814a..7b41eaafe 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs @@ -1,24 +1,24 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 3 (+)', - color: 'Country' - }, - title: 'Lollipop Chart', - align: 'none', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 3 (+)', + color: 'Country' + }, + title: 'Lollipop Chart', + align: 'none', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart.mjs index 07d05adff..a6aa30dc3 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart.mjs @@ -1,24 +1,24 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 1 (+)', - label: 'Value 2 (+)' - }, - title: 'Lollipop Chart', - align: 'none', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 1 (+)', + label: 'Value 2 (+)' + }, + title: 'Lollipop Chart', + align: 'none', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart.mjs index 3d42f0534..cffbc21f8 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart.mjs @@ -1,23 +1,23 @@ import { data_1974_1990 } from '../../../test_data/IMDB_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: data_1974_1990, - config: { - channels: { - x: 'Year', - y: { set: 'Index', range: { max: '110%' } } - }, - title: 'Dot plot Chart', - align: 'none', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: data_1974_1990, + config: { + channels: { + x: 'Year', + y: { set: 'Index', range: { max: '110%' } } + }, + title: 'Dot plot Chart', + align: 'none', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot.mjs index 44a6e8bbb..567ddef29 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot.mjs @@ -1,24 +1,24 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: 'Value 5 (+/-)', - x: 'Value 6 (+/-)', - noop: ['Year'] - }, - title: 'Scatterplot with (-) Nums', - legend: null, - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + y: 'Value 5 (+/-)', + x: 'Value 6 (+/-)', + noop: ['Year'] + }, + title: 'Scatterplot with (-) Nums', + legend: null, + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot.mjs index 80f066fcc..c46d086b5 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot.mjs @@ -1,25 +1,25 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Value 4 (+/-)', - y: 'Value 5 (+/-)', - noop: 'Country', - color: 'Joy factors', - size: 'Value 3 (+)' - }, - title: 'Bubble Plot', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Value 4 (+/-)', + y: 'Value 5 (+/-)', + noop: 'Country', + color: 'Joy factors', + size: 'Value 3 (+)' + }, + title: 'Bubble Plot', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram.mjs index e46baf2ed..fd3b50ee1 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram.mjs @@ -1,24 +1,24 @@ import { data } from '../../../test_data/correlogram_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Alphabet 1', - y: { set: 'Alphabet 2', range: { max: '110%' } }, - color: 'Frequency', - size: 'Frequency' - }, - title: 'Correlogram', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Alphabet 1', + y: { set: 'Alphabet 2', range: { max: '110%' } }, + color: 'Frequency', + size: 'Frequency' + }, + title: 'Correlogram', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart.mjs index 79186b486..8f8cc3a83 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart.mjs @@ -1,23 +1,23 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: { set: 'Value 1 (+)', range: { min: '0%', max: '110%' } } - }, - title: 'Area Chart', - align: 'none', - geometry: 'area' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: { set: 'Value 1 (+)', range: { min: '0%', max: '110%' } } + }, + title: 'Area Chart', + align: 'none', + geometry: 'area' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative.mjs index 84ebe9c13..97bcd5739 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative.mjs @@ -1,23 +1,23 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: { set: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } } - }, - title: 'Area Chart with (-) Nums', - align: 'none', - geometry: 'area' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: { set: ['Value 5 (+/-)'], range: { min: '0%', max: '110%' } } + }, + title: 'Area Chart with (-) Nums', + align: 'none', + geometry: 'area' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels.mjs index 286596f4e..a38104609 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels.mjs @@ -1,24 +1,24 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Percentage Stacked Area Chart', - geometry: 'area', - align: 'stretch' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Percentage Stacked Area Chart', + geometry: 'area', + align: 'stretch' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart.mjs index 54d356ea0..2787c8589 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart.mjs @@ -1,38 +1,38 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Overlay Area Chart', - geometry: 'area' - }, - style: { - plot: { - marker: { - fillOpacity: 0.5, - borderWidth: 0 - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Overlay Area Chart', + geometry: 'area' + }, + style: { + plot: { + marker: { + fillOpacity: 0.5, + borderWidth: 0 + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart.mjs index 4d2968fae..1394629e1 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart.mjs @@ -1,32 +1,32 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Germany' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Split Area Chart (Ridgeline plot)', - geometry: 'area', - split: true - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Germany' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Split Area Chart (Ridgeline plot)', + geometry: 'area', + split: true + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs index 28a1e46ff..3cb49266c 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs @@ -1,37 +1,37 @@ import { data } from '../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: ['Format', 'Revenue'], - color: 'Format' - }, - title: 'Stream Graph', - geometry: 'area', - align: 'center' - }, - style: { - plot: { - yAxis: { - interlacing: { color: '#ffffff00' }, - label: { numberScale: 'K, M, B, T' } - } - } - } - }) - }, - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!isNaN(year) && year % 5 !== 0) event.preventDefault() + }) + return chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: ['Format', 'Revenue'], + color: 'Format' + }, + title: 'Stream Graph', + geometry: 'area', + align: 'center' + }, + style: { + plot: { + yAxis: { + interlacing: { color: '#ffffff00' }, + label: { numberScale: 'K, M, B, T' } + } + } + } + }) + }, + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert.mjs index fe4126a25..3ff3e2744 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert.mjs @@ -1,37 +1,37 @@ import { data } from '../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart.animate({ - data, - config: { - channels: { - x: ['Format', 'Revenue'], - y: 'Year', - color: 'Format' - }, - title: 'Stream Graph Vertical', - geometry: 'area', - align: 'center' - }, - style: { - plot: { - xAxis: { - interlacing: { color: '#ffffff00' }, - label: { numberScale: 'K, M, B, T' } - } - } - } - }) - }, - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!isNaN(year) && year % 5 !== 0) event.preventDefault() + }) + return chart.animate({ + data, + config: { + channels: { + x: ['Format', 'Revenue'], + y: 'Year', + color: 'Format' + }, + title: 'Stream Graph Vertical', + geometry: 'area', + align: 'center' + }, + style: { + plot: { + xAxis: { + interlacing: { color: '#ffffff00' }, + label: { numberScale: 'K, M, B, T' } + } + } + } + }) + }, + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs index 35cc8d30e..906d88d43 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs @@ -1,38 +1,38 @@ import { data } from '../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: ['Format', 'Revenue'], - color: 'Format' - }, - title: 'Violin Graph', - geometry: 'area', - align: 'center', - split: true - }, - style: { - plot: { - yAxis: { - interlacing: { color: '#ffffff00' }, - label: { numberScale: 'K, M, B, T' } - } - } - } - }) - }, - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!isNaN(year) && year % 5 !== 0) event.preventDefault() + }) + return chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: ['Format', 'Revenue'], + color: 'Format' + }, + title: 'Violin Graph', + geometry: 'area', + align: 'center', + split: true + }, + style: { + plot: { + yAxis: { + interlacing: { color: '#ffffff00' }, + label: { numberScale: 'K, M, B, T' } + } + } + } + }) + }, + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert.mjs index ae32dd8d0..4ffcd4900 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert.mjs @@ -1,38 +1,38 @@ import { data } from '../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart.animate({ - data, - config: { - channels: { - x: ['Format', 'Revenue'], - y: 'Year', - color: 'Format' - }, - title: 'Violin Graph Vertical', - geometry: 'area', - align: 'center', - split: true - }, - style: { - plot: { - xAxis: { - interlacing: { color: '#ffffff00' }, - label: { numberScale: 'K, M, B, T' } - } - } - } - }) - }, - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!isNaN(year) && year % 5 !== 0) event.preventDefault() + }) + return chart.animate({ + data, + config: { + channels: { + x: ['Format', 'Revenue'], + y: 'Year', + color: 'Format' + }, + title: 'Violin Graph Vertical', + geometry: 'area', + align: 'center', + split: true + }, + style: { + plot: { + xAxis: { + interlacing: { color: '#ffffff00' }, + label: { numberScale: 'K, M, B, T' } + } + } + } + }) + }, + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs index b55a4ab2b..a2b88a8a1 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs @@ -1,39 +1,39 @@ import { data_3 } from '../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart.animate({ - data: data_3, - config: { - channels: { - x: 'Year', - y: ['Format', 'Revenue'], - color: 'Format' - }, - title: 'Range area chart', - geometry: 'area', - align: 'min', - legend: null - }, - style: { - plot: { - yAxis: { - label: { - numberScale: 'K, M, B, T' - } - } - } - } - }) - }, - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!isNaN(year) && year % 5 !== 0) event.preventDefault() + }) + return chart.animate({ + data: data_3, + config: { + channels: { + x: 'Year', + y: ['Format', 'Revenue'], + color: 'Format' + }, + title: 'Range area chart', + geometry: 'area', + align: 'min', + legend: null + }, + style: { + plot: { + yAxis: { + label: { + numberScale: 'K, M, B, T' + } + } + } + } + }) + }, + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega.mjs index b805e8a69..fceacaaa0 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega.mjs @@ -1,22 +1,22 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Value 6 (+/-)' - }, - title: 'Line Chart with (-)', - geometry: 'line' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Value 6 (+/-)' + }, + title: 'Line Chart with (-)', + geometry: 'line' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs index 39477a214..a531ca3a2 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs @@ -1,39 +1,39 @@ import { data } from '../../../test_data/funnel_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Num', - y: 'Phase', - color: 'Phase', - label: ['Phase', 'Num'] - }, - title: 'Funnel', - geometry: 'area', - align: 'center' - }, - style: { - plot: { - yAxis: { - color: '#00000000', - label: { color: '#00000000' } - }, - xAxis: { - color: '#00000000', - title: { color: '#00000000' }, - label: { color: '#00000000' }, - interlacing: { color: '#00000000' } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Num', + y: 'Phase', + color: 'Phase', + label: ['Phase', 'Num'] + }, + title: 'Funnel', + geometry: 'area', + align: 'center' + }, + style: { + plot: { + yAxis: { + color: '#00000000', + label: { color: '#00000000' } + }, + xAxis: { + color: '#00000000', + title: { color: '#00000000' }, + label: { color: '#00000000' }, + interlacing: { color: '#00000000' } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega.mjs index 4bd7d95a2..4fff9dc86 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Germany' || - record.Country === 'Denmark' - }), - config: { - channels: { - x: 'Year', - y: 'Value 6 (+/-)', - color: 'Country' - }, - title: 'Line Chart with (-)', - geometry: 'line' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Germany' || + record.Country === 'Denmark' + }), + config: { + channels: { + x: 'Year', + y: 'Value 6 (+/-)', + color: 'Country' + }, + title: 'Line Chart with (-)', + geometry: 'line' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert.mjs b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert.mjs index 2f2587b0a..50761338c 100755 --- a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Germany' || - record.Country === 'Denmark' - }), - config: { - channels: { - y: 'Year', - x: 'Value 6 (+/-)', - color: 'Country' - }, - title: 'Line Chart vertical with (-)', - geometry: 'line' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Germany' || + record.Country === 'Denmark' + }), + config: { + channels: { + y: 'Year', + x: 'Value 6 (+/-)', + color: 'Country' + }, + title: 'Line Chart vertical with (-)', + geometry: 'line' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart.mjs index 86b2b0379..4684f9213 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart.mjs @@ -1,36 +1,36 @@ import { data } from '../../../test_data/sunburst2.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: { attach: ['Level names', 'Value'], range: { max: '100%' } }, - y: { attach: 'Levels', title: 'Levels', range: { max: '100%' } }, - label: 'Level names', - color: 'Level names' - }, - title: 'Fake Sunburst & Multi-level Pie Chart', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0', - label: { - fontSize: '0.6em', - orientation: 'tangential', - angle: 3.14 * -0.5 - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: { attach: ['Level names', 'Value'], range: { max: '100%' } }, + y: { attach: 'Levels', title: 'Levels', range: { max: '100%' } }, + label: 'Level names', + color: 'Level names' + }, + title: 'Fake Sunburst & Multi-level Pie Chart', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0', + label: { + fontSize: '0.6em', + orientation: 'tangential', + angle: 3.14 * -0.5 + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs index cc318485a..a08882fe5 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs @@ -1,23 +1,23 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - x: 'Joy factors', - y: { set: 'Value 2 (+)', range: { min: '-50%' } }, - label: 'Value 2 (+)' - }, - title: 'Polar Column Chart (Yrange)', - coordSystem: 'polar' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + x: 'Joy factors', + y: { set: 'Value 2 (+)', range: { min: '-50%' } }, + label: 'Value 2 (+)' + }, + title: 'Polar Column Chart (Yrange)', + coordSystem: 'polar' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs index 3ed35973e..3018bfaf5 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs @@ -1,40 +1,40 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' - }), - config: { - channels: { - x: 'Country', - y: 'Value 2 (+)', - color: 'Joy factors' - }, - title: 'Coxcomb, Nightingale, Rose', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0', - fillOpacity: 0.5, - borderWidth: 0 - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' + }), + config: { + channels: { + x: 'Country', + y: 'Value 2 (+)', + color: 'Joy factors' + }, + title: 'Coxcomb, Nightingale, Rose', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0', + fillOpacity: 0.5, + borderWidth: 0 + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart.mjs index 569dab7f4..cb2238da6 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' - }), - config: { - channels: { - x: 'Country', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Polar Area Chart', - coordSystem: 'polar' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' + }), + config: { + channels: { + x: 'Country', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Polar Area Chart', + coordSystem: 'polar' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart.mjs index b2e718166..67ca22aa0 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart.mjs @@ -1,41 +1,41 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - (record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark') && - (record['Joy factors'] === 'Love' || record['Joy factors'] === 'Creativity') - }), - config: { - channels: { - x: 'Country', - y: ['Joy factors', 'Value 2 (+)'], - color: 'Joy factors' - }, - title: 'Polar Range Column Chart', - coordSystem: 'polar', - legend: null - }, - style: { - plot: { - marker: { - rectangleSpacing: '0', - colorPalette: '#f2b82dFF #00000000 #00000000' - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + (record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark') && + (record['Joy factors'] === 'Love' || record['Joy factors'] === 'Creativity') + }), + config: { + channels: { + x: 'Country', + y: ['Joy factors', 'Value 2 (+)'], + color: 'Joy factors' + }, + title: 'Polar Range Column Chart', + coordSystem: 'polar', + legend: null + }, + style: { + plot: { + marker: { + rectangleSpacing: '0', + colorPalette: '#f2b82dFF #00000000 #00000000' + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs index 7e084fd81..4c98d5457 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs @@ -1,39 +1,39 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' - }), - config: { - channels: { - x: ['Joy factors', 'Value 2 (+)'], - y: { attach: ['Country'], range: { min: '-50%' } }, - color: 'Joy factors', - label: 'Value 2 (+)' - }, - title: 'Nested (Multi-level) Donut Chart', - align: 'stretch', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - rectangleSpacing: '0', - borderWidth: 1, - borderOpacity: 0 - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' + }), + config: { + channels: { + x: ['Joy factors', 'Value 2 (+)'], + y: { attach: ['Country'], range: { min: '-50%' } }, + color: 'Joy factors', + label: 'Value 2 (+)' + }, + title: 'Nested (Multi-level) Donut Chart', + align: 'stretch', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + rectangleSpacing: '0', + borderWidth: 1, + borderOpacity: 0 + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot.mjs index fa311616d..0259313ce 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot.mjs @@ -1,24 +1,24 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - channels: { - y: { attach: 'Value 2 (+)', range: { max: '110%' } }, - x: 'Value 3 (+)', - noop: 'Country' - }, - title: 'Polar Scatter Plot', - geometry: 'circle', - coordSystem: 'polar' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data, + config: { + channels: { + y: { attach: 'Value 2 (+)', range: { max: '110%' } }, + x: 'Value 3 (+)', + noop: 'Country' + }, + title: 'Polar Scatter Plot', + geometry: 'circle', + coordSystem: 'polar' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart.mjs index 11c94916a..bd72145bf 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart.mjs @@ -1,36 +1,36 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Germany' || - record.Country === 'Denmark' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Polar Area2 Chart', - geometry: 'area', - coordSystem: 'polar' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Germany' || + record.Country === 'Denmark' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Polar Area2 Chart', + geometry: 'area', + coordSystem: 'polar' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph.mjs index 93fd0bf6f..b0310dfc4 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart.animate({ - data, - config: { - channels: { - x: ['Format', 'Revenue'], - y: 'Year', - color: 'Format' - }, - title: 'Polar Stream Graph', - geometry: 'area', - coordSystem: 'polar', - align: 'center', - split: true - } - }) - }, - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!isNaN(year) && year % 5 !== 0) event.preventDefault() + }) + return chart.animate({ + data, + config: { + channels: { + x: ['Format', 'Revenue'], + y: 'Year', + color: 'Format' + }, + title: 'Polar Stream Graph', + geometry: 'area', + coordSystem: 'polar', + align: 'center', + split: true + } + }) + }, + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs index 1ffa6cf17..5d37f5f90 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs @@ -1,39 +1,39 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Polar Overlay Area Chart', - geometry: 'area', - coordSystem: 'polar' - }, - style: { - plot: { - marker: { - fillOpacity: 0.5, - borderWidth: 0 - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Polar Overlay Area Chart', + geometry: 'area', + coordSystem: 'polar' + }, + style: { + plot: { + marker: { + fillOpacity: 0.5, + borderWidth: 0 + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart.mjs b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart.mjs index d75a24348..162d3c215 100755 --- a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart.mjs @@ -1,31 +1,31 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Polar Line Chart', - geometry: 'line', - coordSystem: 'polar' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Polar Line Chart', + geometry: 'line', + coordSystem: 'polar' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient.mjs b/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient.mjs index 8b4e317fc..4e4d7ab9e 100755 --- a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient.mjs @@ -1,42 +1,42 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Spain' || - record.Country === 'Hungary' - }), - config: { - channels: { - x: 'Year', - y: 'Country_code', - color: { set: 'Value 5 (+/-)', range: { min: '-60', max: '73' } } - }, - title: 'Heatmap with Color Gradient' - }, - style: { - plot: { - marker: { - rectangleSpacing: 0, - colorGradient: - '#3d51b8 0, #6389ec 0.15, #9fbffa 0.35, #d5d7d9 0.5, #f4b096 0.65, #e36c56 0.85, #ac1727 1' - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Spain' || + record.Country === 'Hungary' + }), + config: { + channels: { + x: 'Year', + y: 'Country_code', + color: { set: 'Value 5 (+/-)', range: { min: '-60', max: '73' } } + }, + title: 'Heatmap with Color Gradient' + }, + style: { + plot: { + marker: { + rectangleSpacing: 0, + colorGradient: + '#3d51b8 0, #6389ec 0.15, #9fbffa 0.35, #d5d7d9 0.5, #f4b096 0.65, #e36c56 0.85, #ac1727 1' + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs b/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs index 906963bbb..71c10876c 100755 --- a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs @@ -1,27 +1,27 @@ import { data } from '../../../test_data/music_industry_history_1.mjs' const testSteps = [ - (chart) => { - chart.on('plot-axis-label-draw', (event) => { - const year = parseFloat(event.detail.text) - if (!isNaN(year) && year % 5 !== 0) event.preventDefault() - }) - return chart.animate({ - data, - config: { - channels: { - x: 'Year', - y: 'Format', - lightness: 'Revenue' - }, - title: 'Heatmap2' - } - }) - }, - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => { + chart.on('plot-axis-label-draw', (event) => { + const year = parseFloat(event.detail.text) + if (!isNaN(year) && year % 5 !== 0) event.preventDefault() + }) + return chart.animate({ + data, + config: { + channels: { + x: 'Year', + y: 'Format', + lightness: 'Revenue' + }, + title: 'Heatmap2' + } + }) + }, + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs b/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs index 1d13e6958..b5c07ba35 100755 --- a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs +++ b/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs @@ -1,29 +1,29 @@ import { data } from '../../../test_data/chart_types_eu.mjs' const testSteps = [ - (chart) => - chart.animate({ - data: Object.assign(data, { - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Denmark' - }), - config: { - channels: { - x: 'Year', - y: 'Country_code', - lightness: 'Value 3 (+)' - }, - title: 'Heatmap' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + data: Object.assign(data, { + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Denmark' + }), + config: { + channels: { + x: 'Year', + y: 'Country_code', + lightness: 'Value 3 (+)' + }, + title: 'Heatmap' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export default testSteps diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Bar_Bar.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Bar_Bar.mjs index e5543b3cd..077b0799c 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Bar_Bar.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Bar_Bar.mjs @@ -3,36 +3,36 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the X-axis - shift the Measure from X to the Y-axis` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Value 2 (+)', - y: 'Country', - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Title' - } - }), + config: { + channels: { + x: 'Value 2 (+)', + y: 'Country', + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Title' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - label: null - }, - title: 'Title' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + label: null + }, + title: 'Title' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column.mjs index b740cb81b..380f48ec3 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column.mjs @@ -3,36 +3,36 @@ import { data_4 } from '../../../../test_data/chart_types_eu.mjs' const description = `- add a new Dimension to the X-axis - move the existing one there also` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - y: ['Country', 'Value 2 (+)'], - color: 'Country', - label: 'Value 2 (+)' - }, - title: 'Title' - } - }), + config: { + channels: { + y: ['Country', 'Value 2 (+)'], + color: 'Country', + label: 'Value 2 (+)' + }, + title: 'Title' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country', - label: null - }, - title: 'Title' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country', + label: null + }, + title: 'Title' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Area_Stacked_Area.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Area_Stacked_Area.mjs index a39c36009..08bf720a1 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Area_Stacked_Area.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Area_Stacked_Area.mjs @@ -4,37 +4,37 @@ const description = `- remove the Dimension from the X-axis - shift the Measure from X to the Y-axis (change orientation), and add it to the Label channel - switch the Geometry from Area to Rectangle` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Value 2 (+)', 'Country'], - color: 'Country' - }, - title: 'Title', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Value 2 (+)', 'Country'], + color: 'Country' + }, + title: 'Title', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: 'Country', - label: 'Value 2 (+)' - }, - title: 'Title', - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: 'Country', + label: 'Value 2 (+)' + }, + title: 'Title', + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Bubble_Bubble.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Bubble_Bubble.mjs index 831b88ace..d865ac09f 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Bubble_Bubble.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Bubble_Bubble.mjs @@ -5,51 +5,51 @@ const description = `- remove two Measures from the axes - add the Measure to the Label channel too - + if you like set the marker-label fontSize in Style` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Value 1 (+)', - y: 'Value 3 (+)', - noop: 'Year', - size: 'Value 2 (+)', - color: 'Country' - }, - title: 'Title', - geometry: 'circle' - } - }), + config: { + channels: { + x: 'Value 1 (+)', + y: 'Value 3 (+)', + noop: 'Year', + size: 'Value 2 (+)', + color: 'Country' + }, + title: 'Title', + geometry: 'circle' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - noop: null, - color: null, - label: 'Value 2 (+)' - }, - title: 'Title', - legend: null, - geometry: 'circle' - }, - style: { - plot: { - marker: { - label: { - fontSize: '1.5em' - } - } - } - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + noop: null, + color: null, + label: 'Value 2 (+)' + }, + title: 'Title', + legend: null, + geometry: 'circle' + }, + style: { + plot: { + marker: { + label: { + fontSize: '1.5em' + } + } + } + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1.mjs index 4c1962baf..a54adb859 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1.mjs @@ -4,35 +4,35 @@ const description = `- remove that Dimension from the X-axis, whitch is not on t - shift the other Dimension from X-axis to the Y-axis - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Title' - } - }), + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Title' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: ['Country', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Title' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: ['Country', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Title' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2.mjs index 62c27a621..4315ad20f 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2.mjs @@ -3,36 +3,36 @@ import { data_6 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the X-axis and the Color channel - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: ['Year', 'Country'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Title' - } - }), + config: { + channels: { + x: ['Year', 'Country'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Title' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - color: null, - label: 'Value 2 (+)' - }, - title: 'Title', - legend: null - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + color: null, + label: 'Value 2 (+)' + }, + title: 'Title', + legend: null + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar.mjs index ae2800b31..38dd020a1 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar.mjs @@ -4,35 +4,35 @@ const description = `- remove that Dimension from the X-axis, whitch is not on t - move the Measure from Y-axis to the X-axis - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: ['Country', 'Year'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Title' - } - }), + config: { + channels: { + x: ['Country', 'Year'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Title' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: null, - label: 'Value 2 (+)' - }, - title: 'Title' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: null, + label: 'Value 2 (+)' + }, + title: 'Title' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1.mjs index 50ac1b13f..aaa869591 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1.mjs @@ -3,34 +3,34 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove Dimension from the X-axis - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Title' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Title' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - label: 'Value 2 (+)' - }, - title: 'Title' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + label: 'Value 2 (+)' + }, + title: 'Title' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2.mjs index b0e6b37a1..f3223cf09 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2.mjs @@ -3,36 +3,36 @@ import { data_8 } from '../../../../test_data/chart_types_eu.mjs' const description = `- remove the Dimension from the X-axis and the Color channel - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country' - }, - title: 'Title' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country' + }, + title: 'Title' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: 'Value 2 (+)', - color: null, - label: 'Value 2 (+)' - }, - title: 'Title' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: 'Value 2 (+)', + color: null, + label: 'Value 2 (+)' + }, + title: 'Title' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs index 85cf8f339..c7c7792ea 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs @@ -4,36 +4,36 @@ const description = `- remove that Dimension from the X-axis, whitch is not on t - move the Measure from Y-axis to the X-axis - add the Measure to the Label channel too` const testSteps = [ - (chart) => - chart.animate({ - data: data_4, + (chart) => + chart.animate({ + data: data_4, - config: { - channels: { - x: ['Country', 'Year'], - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Title', - coordSystem: 'polar' - } - }), + config: { + channels: { + x: ['Country', 'Year'], + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Title', + coordSystem: 'polar' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: ['Country', 'Value 2 (+)'], - y: { set: null, range: { min: '-200%' } }, - label: 'Value 2 (+)' - }, - title: 'Title' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: ['Country', 'Value 2 (+)'], + y: { set: null, range: { min: '-200%' } }, + label: 'Value 2 (+)' + }, + title: 'Title' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Line_Line_3.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Line_Line_3.mjs index 7cc80c3a7..49a707ff4 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Line_Line_3.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Line_Line_3.mjs @@ -4,37 +4,37 @@ const description = `- remove the Dimension from the X-axis - shift the Measure from X to the Y-axis (change orientation), and add it to the Label channel - switch the Geometry from Line to Rectangle` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: 'Value 2 (+)', - color: 'Country' - }, - title: 'Title', - geometry: 'line' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 2 (+)', + color: 'Country' + }, + title: 'Title', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: 'Value 2 (+)', - y: 'Country', - label: 'Value 2 (+)' - }, - title: 'Title', - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: 'Value 2 (+)', + y: 'Country', + label: 'Value 2 (+)' + }, + title: 'Title', + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs index 4160e0989..551439cbb 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs @@ -7,41 +7,41 @@ const description = `- Move the Size channel's Dimension to the X-axis - switch the Geometry from Circle to Area CHANGE DIRECTION IN THE CODE` const testSteps = [ - (chart) => - chart.animate({ - data: data_6, + (chart) => + chart.animate({ + data: data_6, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - size: null, - label: null - }, - title: 'Title', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + size: null, + label: null + }, + title: 'Title', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Country', - size: ['Year', 'Value 2 (+)'], - label: 'Value 2 (+)' - }, - title: 'Title', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Country', + size: ['Year', 'Value 2 (+)'], + label: 'Value 2 (+)' + }, + title: 'Title', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs index 348ff6d05..469e69f84 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs @@ -6,41 +6,41 @@ const description = `- Move the Size channel's Dimension to the X-axis - switch the Geometry from Line to Circle CHANGE DIRECTION IN THE CODE` const testSteps = [ - (chart) => - chart.animate({ - data: data_3, + (chart) => + chart.animate({ + data: data_3, - config: { - channels: { - x: 'Year', - y: 'Value 1 (+)', - color: 'Country', - size: null, - label: null - }, - title: 'Title', - geometry: 'line' - } - }), + config: { + channels: { + x: 'Year', + y: 'Value 1 (+)', + color: 'Country', + size: null, + label: null + }, + title: 'Title', + geometry: 'line' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Country', - size: ['Year', 'Value 1 (+)'], - label: 'Value 1 (+)' - }, - title: 'Title', - geometry: 'circle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Country', + size: ['Year', 'Value 1 (+)'], + label: 'Value 1 (+)' + }, + title: 'Title', + geometry: 'circle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs b/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs index 617003251..f9e967b7e 100755 --- a/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs +++ b/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs @@ -7,41 +7,41 @@ const description = `- Move the Size channel's Dimension to the X-axis - switch the Geometry from Rectangle to Area CHANGE DIRECTION IN THE CODE` const testSteps = [ - (chart) => - chart.animate({ - data: data_8, + (chart) => + chart.animate({ + data: data_8, - config: { - channels: { - x: 'Year', - y: ['Country', 'Value 2 (+)'], - color: 'Country', - size: null, - label: null - }, - title: 'Title', - geometry: 'area' - } - }), + config: { + channels: { + x: 'Year', + y: ['Country', 'Value 2 (+)'], + color: 'Country', + size: null, + label: null + }, + title: 'Title', + geometry: 'area' + } + }), - (chart) => - chart.animate({ - config: { - channels: { - x: null, - y: null, - color: 'Country', - size: ['Year', 'Value 3 (+)'], - label: 'Year' - }, - title: 'Title', - geometry: 'rectangle' - } - }), - (chart) => { - chart.feature('tooltip', true) - return chart - } + (chart) => + chart.animate({ + config: { + channels: { + x: null, + y: null, + color: 'Country', + size: ['Year', 'Value 3 (+)'], + label: 'Year' + }, + title: 'Title', + geometry: 'rectangle' + } + }), + (chart) => { + chart.feature('tooltip', true) + return chart + } ] export { description } diff --git a/test/integration/test_data/IMDB_data.mjs b/test/integration/test_data/IMDB_data.mjs index 33eb6fcc8..052a81ca7 100644 --- a/test/integration/test_data/IMDB_data.mjs +++ b/test/integration/test_data/IMDB_data.mjs @@ -1,1125 +1,1125 @@ export const data = { - series: [ - { name: 'Index', type: 'dimension' }, - { name: 'Year', type: 'dimension' }, - { name: 'IMDb Rating', type: 'measure' }, - { name: 'Title', type: 'dimension' } - ], - records: [ - ['1', '1927', '8.3', 'Metropolis'], - ['1', '1937', '7.6', 'Snow White and the Seven Dwarfs'], - ['1', '1942', '8.5', 'Casablanca'], - ['1', '1952', '8.3', 'Singin, in the Rain'], - ['1', '1955', '7.3', 'Lady and the Tramp'], - ['2', '1955', '6.5', 'Tarantula'], - ['1', '1957', '8.9', '12 Angry Men'], - ['1', '1959', '4', 'Plan 9 from Outer Space'], - ['2', '1959', '3.9', 'The Killer Shrews'], - ['1', '1960', '8.5', 'Psycho'], - ['1', '1962', '7.3', 'Dr. No'], - ['2', '1962', '7.6', 'Nóz w wodzie'], - ['3', '1962', '6.9', 'Der Schatz im Silbersee'], - ['1', '1963', '7.4', 'From Russia with Love'], - ['1', '1964', '7', 'Fantômas'], - ['2', '1964', '6.7', 'Gdzie jest general...'], - ['3', '1964', '7.2', 'Le gendarme de Saint-Tropez'], - ['4', '1964', '7.7', 'Goldfinger'], - ['5', '1964', '7.5', 'A Shot in the Dark'], - ['1', '1965', '7.5', 'Le corniaud'], - ['2', '1965', '6.9', 'Fantômas se déchaîne'], - ['3', '1965', '5.9', 'Old Surehand'], - ['4', '1965', '7', 'Thunderball'], - ['5', '1965', '6.7', 'Winnetou - 3. Teil'], - ['6', '1965', '6.4', 'Le gendarme à New York'], - ['1', '1966', '8.8', 'Il buono, il brutto, il cattivo'], - ['2', '1966', '8', 'La grande vadrouille'], - ['3', '1966', '5.6', 'Winnetou und das Halbblut Apanatschi'], - ['1', '1967', '6.8', 'Fantômas contre Scotland Yard'], - ['2', '1967', '6.6', 'Les grandes vacances'], - ['3', '1967', '6.6', 'Astérix le Gaulois'], - ['4', '1967', '7.6', 'Oscar'], - ['5', '1967', '8', 'Sami swoi'], - ['1', '1968', '8.3', '2001: A Space Odyssey'], - ['2', '1968', '7.2', 'Astérix et Cléopâtre'], - ['3', '1968', '6.8', 'Le gendarme se marie'], - ['1', '1969', '7', 'Bambi Meets Godzilla'], - ['2', '1969', '7.4', 'Easy Rider'], - ['3', '1969', '6.7', 'Hibernatus'], - ['4', '1969', '6.2', 'Monte Carlo or Bust!'], - ['1', '1970', '6.5', 'Le gendarme en balade'], - ['2', '1970', '6.4', 'L,homme orchestre'], - ['3', '1970', '8', 'Jak rozpetalem druga wojne swiatowa'], - ['1', '1971', '6.4', 'Sur un arbre perché'], - ['2', '1971', '7.6', 'And Now for Something Completely Different'], - ['3', '1971', '8.3', 'A Clockwork Orange'], - ['4', '1971', '7.8', 'Dirty Harry'], - ['5', '1971', '7.3', 'La folie des grandeurs'], - ['6', '1971', '7.6', 'Nie lubie poniedzialku'], - ['7', '1971', '7.8', 'Willy Wonka & the Chocolate Factory'], - ['1', '1972', '9.2', 'The Godfather'], - ['1', '1973', '7.5', 'Les aventures de Rabbi Jacob'], - ['2', '1973', '8.3', 'The Sting'], - ['1', '1974', '9', 'The Godfather: Part II'], - ['2', '1974', '7.5', 'Nie ma mocnych'], - ['3', '1974', '6.9', 'The Towering Inferno'], - ['1', '1975', '8.3', 'Monty Python and the Holy Grail'], - ['2', '1975', '7.9', 'Ziemia obiecana'], - ['3', '1975', '8', 'Jaws'], - ['4', '1975', '8.7', 'One Flew Over the Cuckoo,s Nest'], - ['5', '1975', '7.4', 'The Rocky Horror Picture Show'], - ['1', '1976', '7.7', 'Les 12 travaux d,Astérix'], - ['2', '1976', '7.3', 'L,aile ou la cuisse'], - ['3', '1976', '7.5', 'Le jouet'], - ['4', '1976', '7.6', 'The Omen'], - ['5', '1976', '8.3', 'Taxi Driver'], - ['6', '1976', '6.3', 'Freaky Friday'], - ['1', '1977', '8', 'Annie Hall'], - ['2', '1977', '7.9', 'Czlowiek z marmuru'], - ['3', '1977', '6.9', 'Smokey and the Bandit'], - ['4', '1977', '7.1', 'The Spy Who Loved Me'], - ['5', '1977', '8.6', 'Star Wars'], - ['6', '1977', '7.1', 'Kochaj albo rzuc'], - ['1', '1978', '6.3', 'Convoy'], - ['2', '1978', '5.7', 'Jaws 2'], - ['3', '1978', '6.8', 'The Wild Geese'], - ['4', '1978', '7.6', 'Zui quan'], - ['5', '1978', '4.6', 'Attack of the Killer Tomatoes!'], - ['1', '1979', '8.5', 'Alien'], - ['2', '1979', '8.5', 'Apocalypse Now'], - ['3', '1979', '6.3', 'Le gendarme et les extra-terrestres'], - ['4', '1979', '7.6', 'Hair'], - ['5', '1979', '7.8', 'Kramer vs. Kramer'], - ['6', '1979', '8.1', 'Life of Brian'], - ['7', '1979', '6.3', 'Moonraker'], - ['8', '1979', '7.6', 'Nosferatu: Phantom der Nacht'], - ['1', '1980', '6.7', 'L,avare'], - ['2', '1980', '5.1', 'Saturn 3'], - ['3', '1980', '7.8', 'Airplane!'], - ['4', '1980', '8.7', 'Star Wars: Episode V - The Empire Strikes Back'], - ['5', '1980', '8.1', 'Gadajace glowy'], - ['6', '1980', '6.3', 'Paura nella città dei morti viventi'], - ['7', '1980', '8.4', 'The Shining'], - ['1', '1981', '7.4', 'La chèvre'], - ['2', '1981', '5.7', 'Shifshuf Naim'], - ['3', '1981', '8.3', 'Mis'], - ['4', '1981', '8.5', 'Raiders of the Lost Ark'], - ['5', '1981', '6.5', 'La soupe aux choux'], - ['6', '1981', '8', 'Vabank'], - ['7', '1981', '7.5', 'The Evil Dead'], - ['1', '1982', '6.9', 'Conan the Barbarian'], - ['2', '1982', '6.9', '48 Hrs.'], - ['3', '1982', '6.1', 'Airplane II: The Sequel'], - ['4', '1982', '8.2', 'Blade Runner'], - ['5', '1982', '7.9', 'E.T. the Extra-Terrestrial'], - ['6', '1982', '7.7', 'First Blood'], - ['7', '1982', '6.2', 'Le gendarme et les gendarmettes'], - ['8', '1982', '8', 'Pink Floyd: The Wall'], - ['9', '1982', '8.1', 'The Thing'], - ['10', '1982', '7.4', 'Tootsie'], - ['11', '1982', '6.8', 'TRON'], - ['1', '1983', '3.6', 'Jaws 3-D'], - ['2', '1983', '8.1', 'Mickey,s Christmas Carol'], - ['3', '1983', '7.6', 'The Meaning of Life'], - ['4', '1983', '7.4', 'National Lampoon,s Vacation'], - ['5', '1983', '8.3', 'Star Wars: Episode VI - Return of the Jedi'], - ['6', '1983', '8.3', 'Scarface'], - ['7', '1983', '7.5', 'Trading Places'], - ['8', '1983', '5.5', 'Roman Za,ir'], - ['1', '1984', '7.3', 'Beverly Hills Cop'], - ['2', '1984', '7.8', 'Ghostbusters'], - ['3', '1984', '7.3', 'Gremlins'], - ['4', '1984', '7.6', 'Indiana Jones and the Temple of Doom'], - ['5', '1984', '7.2', 'The Karate Kid'], - ['6', '1984', '6.7', 'Police Academy'], - ['7', '1984', '6.6', 'Revenge of the Nerds'], - ['8', '1984', '6.9', 'Romancing the Stone'], - ['9', '1984', '7.7', 'Seksmisja'], - ['10', '1984', '5.9', 'Silent Night, Deadly Night'], - ['11', '1984', '8', 'The Terminator'], - ['12', '1984', '7.2', 'Top Secret!'], - ['13', '1984', '7.4', 'Die unendliche Geschichte'], - ['1', '1985', '6.8', 'Astérix et la surprise de César'], - ['2', '1985', '8.5', 'Back to the Future'], - ['3', '1985', '6.7', 'Commando'], - ['4', '1985', '5.9', 'Death Wish 3'], - ['5', '1985', '7.8', 'The Goonies'], - ['6', '1985', '6.3', 'Mad Max Beyond Thunderdome'], - ['7', '1985', '5.7', 'The Man with One Red Shoe'], - ['8', '1985', '6.2', 'National Lampoon,s European Vacation'], - ['9', '1985', '5.7', 'Police Academy 2: Their First Assignment'], - ['10', '1985', '6.5', 'Rambo: First Blood Part II'], - ['11', '1985', '5.9', 'The Stuff'], - ['12', '1985', '7.5', 'Vabank II, czyli riposta'], - ['1', '1986', '4.8', 'Neon Maniacs'], - ['2', '1986', '8.4', 'Aliens'], - ['3', '1986', '7.1', 'Astérix chez les Bretons'], - ['4', '1986', '6.1', 'Critters'], - ['5', '1986', '5.1', 'Firewalker'], - ['6', '1986', '7.2', 'Highlander'], - ['7', '1986', '7.3', 'The Hitcher'], - ['8', '1986', '6', 'The Karate Kid Part II'], - ['9', '1986', '6.1', 'Pirates'], - ['10', '1986', '8.1', 'Platoon'], - ['11', '1986', '5.3', 'Police Academy 3: Back in Training'], - ['12', '1986', '5.2', 'Rawhead Rex'], - ['13', '1986', '5.7', 'TerrorVision'], - ['1', '1987', '6.7', 'Bad Taste'], - ['2', '1987', '5.2', 'Blood Diner'], - ['3', '1987', '5.4', 'Death Wish 4: The Crackdown'], - ['4', '1987', '6.9', 'Dirty Dancing'], - ['5', '1987', '6.4', 'Dolls'], - ['6', '1987', '8.3', 'Full Metal Jacket'], - ['7', '1987', '7.3', 'Good Morning, Vietnam'], - ['8', '1987', '7.6', 'Lethal Weapon'], - ['9', '1987', '3.6', 'Mutant Hunt'], - ['10', '1987', '4.9', 'Police Academy 4: Citizens on Patrol'], - ['11', '1987', '7.8', 'Predator'], - ['12', '1987', '7.1', 'Spaceballs'], - ['13', '1987', '6', '3 Men and a Baby'], - ['1', '1988', '6', 'Above the Law'], - ['2', '1988', '7.5', 'Beetlejuice'], - ['3', '1988', '7', 'Coming to America'], - ['4', '1988', '5.4', 'Critters 2'], - ['5', '1988', '8.2', 'Die Hard'], - ['6', '1988', '5.6', 'Ernest Saves Christmas'], - ['7', '1988', '7.6', 'A Fish Called Wanda'], - ['8', '1988', '6.1', 'Killer Klowns from Outer Space'], - ['9', '1988', '6', 'Maniac Cop'], - ['10', '1988', '5.3', 'My Stepmother Is an Alien'], - ['11', '1988', '7.6', 'The Naked Gun: From the Files of Police Squad!'], - ['12', '1988', '4.5', 'Police Academy 5: Assignment: Miami Beach'], - ['13', '1988', '7.7', 'Who Framed Roger Rabbit'], - ['14', '1988', '6.8', 'Kogel-mogel'], - ['1', '1989', '6.7', 'All Dogs Go to Heaven'], - ['2', '1989', '7.8', 'Back to the Future Part II'], - ['3', '1989', '7.6', 'Batman'], - ['4', '1989', '6.9', 'Bill & Ted,s Excellent Adventure'], - ['5', '1989', '8.1', 'Dead Poets Society'], - ['6', '1989', '6.4', 'Galimatias, czyli kogel-mogel II'], - ['7', '1989', '6.5', 'Ghostbusters II'], - ['8', '1989', '6.3', 'Honey, I Shrunk the Kids'], - ['9', '1989', '8.2', 'Indiana Jones and the Last Crusade'], - ['10', '1989', '5.1', 'The Karate Kid Part III'], - ['11', '1989', '7.2', 'Lethal Weapon 2'], - ['12', '1989', '5.8', 'Look Who,s Talking'], - ['13', '1989', '7.6', 'National Lampoon,s Christmas Vacation'], - ['14', '1989', '5.7', 'Puppetmaster'], - ['15', '1989', '6.8', 'See No Evil, Hear No Evil'], - ['16', '1989', '6.3', 'Bride of Re-Animator'], - ['1', '1990', '4.6', 'Look Who,s Talking Too'], - ['2', '1990', '7.8', 'Misery'], - ['3', '1990', '7.3', 'Nikita'], - ['4', '1990', '5.3', 'Problem Child'], - ['5', '1990', '5.9', 'The Rookie'], - ['6', '1990', '6.8', 'Teenage Mutant Ninja Turtles'], - ['7', '1990', '7.5', 'Total Recall'], - ['8', '1990', '2.8', 'Troll 2'], - ['9', '1990', '6.4', 'Arachnophobia'], - ['10', '1990', '7.4', 'Back to the Future Part III'], - ['11', '1990', '7.1', 'Die Hard 2'], - ['12', '1990', '7.9', 'Edward Scissorhands'], - ['13', '1990', '5.4', 'Ernest Goes to Jail'], - ['14', '1990', '7.6', 'The Godfather Part III'], - ['15', '1990', '8.7', 'Goodfellas'], - ['16', '1990', '6.4', 'Gremlins 2: The New Batch'], - ['17', '1990', '7', 'The Grifters'], - ['18', '1990', '7.5', 'Home Alone'], - ['19', '1990', '7.6', 'The Hunt for Red October'], - ['20', '1990', '4.2', 'Killer Crocodile 2'], - ['1', '1991', '6.9', 'The Addams Family'], - ['2', '1991', '6.7', 'Backdraft'], - ['3', '1991', '8', 'Beauty and the Beast'], - ['4', '1991', '4.4', 'Critters 3'], - ['5', '1991', '6.7', 'Hot Shots!'], - ['6', '1991', '7.1', 'Lik wong'], - ['7', '1991', '6.9', 'My Girl'], - ['8', '1991', '6.9', 'The Naked Gun 2½: The Smell of Fear'], - ['9', '1991', '6.5', 'Oscar'], - ['10', '1991', '7.2', 'Point Break'], - ['11', '1991', '4.7', 'Problem Child 2'], - ['12', '1991', '6.4', 'The Rocketeer'], - ['13', '1991', '8.6', 'The Silence of the Lambs'], - ['14', '1991', '6', 'Teenage Mutant Ninja Turtles II: The Secret of the Ooze'], - ['15', '1991', '8.5', 'Terminator 2: Judgment Day'], - ['16', '1991', '7.4', 'Thelma & Louise'], - ['1', '1992', '5.6', 'Beethoven'], - ['2', '1992', '7.5', 'Braindead'], - ['3', '1992', '5.2', 'Demonic Toys'], - ['4', '1992', '6.7', 'Home Alone 2: Lost in New York'], - ['5', '1992', '4.8', 'Honey, I Blew Up the Kid'], - ['6', '1992', '6.7', 'Lethal Weapon 3'], - ['7', '1992', '6.5', 'The Mighty Ducks'], - ['8', '1992', '5.3', 'Mom and Dad Save the World'], - ['9', '1992', '7.5', 'Of Mice and Men'], - ['10', '1992', '7.7', 'Psy'], - ['11', '1992', '8.3', 'Reservoir Dogs'], - ['12', '1992', '6.4', 'Sister Act'], - ['13', '1992', '4.2', 'Stop! Or My Mom Will Shoot'], - ['14', '1992', '7.2', 'Twin Peaks: Fire Walk with Me'], - ['15', '1992', '6.5', 'Under Siege'], - ['16', '1992', '6', 'Universal Soldier'], - ['17', '1992', '6.7', 'White Men Can,t Jump'], - ['18', '1992', '7.6', 'Army of Darkness'], - ['1', '1993', '6.5', 'Acción mutante'], - ['2', '1993', '6.7', 'Addams Family Values'], - ['3', '1993', '6.4', 'Cliffhanger'], - ['4', '1993', '5.3', 'Coneheads'], - ['5', '1993', '6.9', 'Cool Runnings'], - ['6', '1993', '6.6', 'Demolition Man'], - ['7', '1993', '5.6', 'Dennis the Menace'], - ['8', '1993', '7.6', 'Falling Down'], - ['9', '1993', '8', 'Groundhog Day'], - ['10', '1993', '6.1', 'Hard Target'], - ['11', '1993', '6.8', 'Hocus Pocus'], - ['12', '1993', '5.9', 'Indecent Proposal'], - ['13', '1993', '6.3', 'Last Action Hero'], - ['14', '1993', '4.3', 'Look Who,s Talking Now'], - ['15', '1993', '3.7', 'Mr. Nanny'], - ['16', '1993', '7', 'Mrs. Doubtfire'], - ['17', '1993', '6.1', 'Loaded Weapon 1'], - ['18', '1993', '6.6', 'The Pelican Brief'], - ['19', '1993', '6.7', 'Robin Hood: Men in Tights'], - ['20', '1993', '8.9', 'Schindler,s List'], - ['21', '1993', '5.5', 'Sister Act 2: Back in the Habit'], - ['22', '1993', '4.8', 'Teenage Mutant Ninja Turtles III'], - ['23', '1993', '7', 'Les visiteurs'], - ['24', '1993', '7.8', 'What,s Eating Gilbert Grape'], - ['1', '1994', '6.9', 'Ace Ventura: Pet Detective'], - ['2', '1994', '6.1', 'Angels in the Outfield'], - ['3', '1994', '6.6', 'Black Beauty'], - ['4', '1994', '7.8', 'Clerks'], - ['5', '1994', '7.3', 'Dumb and Dumber'], - ['6', '1994', '4.9', 'The Flintstones'], - ['7', '1994', '8.8', 'Forrest Gump'], - ['8', '1994', '7.6', 'Interview with the Vampire: The Vampire Chronicles'], - ['9', '1994', '4.6', 'Junior'], - ['10', '1994', '5.9', 'Lassie'], - ['11', '1994', '8.5', 'The Lion King'], - ['12', '1994', '6.3', 'The Little Rascals'], - ['13', '1994', '8.6', 'Léon'], - ['14', '1994', '6.9', 'The Mask'], - ['15', '1994', '7', 'Maverick'], - ['16', '1994', '6.5', 'Naked Gun 33 1/3: The Final Insult'], - ['17', '1994', '7.3', 'Natural Born Killers'], - ['18', '1994', '4.4', 'The Next Karate Kid'], - ['19', '1994', '3.4', 'Police Academy: Mission to Moscow'], - ['20', '1994', '6.8', 'Psy 2: Ostatnia krew'], - ['21', '1994', '8.9', 'Pulp Fiction'], - ['22', '1994', '6.4', 'The Santa Clause'], - ['23', '1994', '9.3', 'The Shawshank Redemption'], - ['24', '1994', '7.2', 'Speed'], - ['1', '1995', '6.4', 'Ace Ventura: When Nature Calls'], - ['2', '1995', '7.6', 'Apollo 13'], - ['3', '1995', '6.8', 'Babe'], - ['4', '1995', '8.4', 'Braveheart'], - ['5', '1995', '8.2', 'Casino'], - ['6', '1995', '6.1', 'Casper'], - ['7', '1995', '6.5', 'Dangerous Minds'], - ['8', '1995', '7.2', 'Desperado'], - ['9', '1995', '7.6', 'Die Hard: With a Vengeance'], - ['10', '1995', '6.8', 'Four Rooms'], - ['11', '1995', '7.3', 'Friday'], - ['12', '1995', '5.9', 'It Takes Two'], - ['13', '1995', '7', 'Jumanji'], - ['14', '1995', '7.2', 'Mallrats'], - ['15', '1995', '5.6', 'Money Train'], - ['16', '1995', '5.8', 'Mortal Kombat'], - ['17', '1995', '7.4', 'Nic smiesznego'], - ['18', '1995', '6.3', 'Nick of Time'], - ['19', '1995', '6.7', 'Pocahontas'], - ['20', '1995', '3.3', 'Problem Child 3: Junior in Love'], - ['21', '1995', '7.1', 'Pulkownik Kwiatkowski'], - ['22', '1995', '6.4', 'The Quick and the Dead'], - ['23', '1995', '8.6', 'Se7en'], - ['24', '1995', '4.8', 'Slam Dunk Ernest'], - ['25', '1995', '8.3', 'Toy Story'], - ['26', '1995', '8', 'Twelve Monkeys'], - ['27', '1995', '5.5', 'Under Siege 2: Dark Territory'], - ['28', '1995', '6.2', 'Waterworld'], - ['29', '1995', '5.4', 'It Was Him or Us'], - ['1', '1996', '5.7', '101 Dalmatians'], - ['2', '1996', '5.3', 'Bogus'], - ['3', '1996', '6.1', 'The Cable Guy'], - ['4', '1996', '5.6', 'Chain Reaction'], - ['5', '1996', '6.6', 'Courage Under Fire'], - ['6', '1996', '6.8', 'The Crucible'], - ['7', '1996', '5.9', 'Daylight'], - ['8', '1996', '6.5', 'DragonHeart'], - ['9', '1996', '2.6', 'Ed'], - ['10', '1996', '5.2', 'First Kid'], - ['11', '1996', '5.3', 'Flipper'], - ['12', '1996', '7.2', 'From Dusk Till Dawn'], - ['13', '1996', '7', 'Happy Gilmore'], - ['14', '1996', '7', 'Independence Day'], - ['15', '1996', '6.8', 'The Long Kiss Goodnight'], - ['16', '1996', '6.3', 'Mars Attacks!'], - ['17', '1996', '7.1', 'Mission: Impossible'], - ['18', '1996', '5.6', 'The Nutty Professor'], - ['19', '1996', '6.7', 'Ransom'], - ['20', '1996', '7.4', 'The Rock'], - ['21', '1996', '6.4', 'Space Jam'], - ['22', '1996', '5.3', 'Spy Hard'], - ['23', '1996', '8.2', 'Trainspotting'], - ['24', '1996', '6.3', 'Twister'], - ['1', '1997', '6.5', 'Air Force One'], - ['2', '1997', '7', 'Austin Powers: International Man of Mystery'], - ['3', '1997', '6.4', 'Bean'], - ['4', '1997', '5.5', 'Beverly Hills Ninja'], - ['5', '1997', '8.6', 'La vita è bella'], - ['6', '1997', '7.3', 'Chasing Amy'], - ['7', '1997', '6.8', 'Con Air'], - ['8', '1997', '6.7', 'Conspiracy Theory'], - ['9', '1997', '5.9', 'Dante,s Peak'], - ['10', '1997', '7.5', 'The Devil,s Advocate'], - ['11', '1997', '4.7', 'Double Team'], - ['12', '1997', '4.8', 'Ernest Goes to Africa'], - ['13', '1997', '7.7', 'The Fifth Element'], - ['14', '1997', '5.2', 'Flubber'], - ['15', '1997', '5.9', 'G.I. Jane'], - ['16', '1997', '4.4', 'Home Alone 3'], - ['17', '1997', '7.5', 'Jackie Brown'], - ['18', '1997', '6.6', 'Kiss the Girls'], - ['19', '1997', '6.9', 'Liar Liar'], - ['20', '1997', '7.3', 'Men in Black'], - ['21', '1997', '3.7', 'Mortal Kombat: Annihilation'], - ['22', '1997', '3.9', 'Mr. Magoo'], - ['23', '1997', '6.2', 'The Saint'], - ['24', '1997', '7.1', 'Seven Years in Tibet'], - ['25', '1997', '3.8', 'Speed 2: Cruise Control'], - ['26', '1997', '7.8', 'Titanic'], - ['27', '1997', '6.5', 'Tomorrow Never Dies'], - ['28', '1997', '7.1', 'Wag the Dog'], - ['29', '1997', '7.2', 'Cube'], - ['30', '1997', '7.6', 'Kiler'], - ['1', '1998', '8.1', 'The Big Lebowski'], - ['2', '1998', '8.1', 'Crna macka, beli macor'], - ['3', '1998', '5.4', 'Doctor Dolittle'], - ['4', '1998', '7.2', 'Meet Joe Black'], - ['5', '1998', '8.1', 'The Truman Show'], - ['6', '1998', '8.5', 'American History X'], - ['7', '1998', '6.6', 'Antz'], - ['8', '1998', '6.7', 'Armageddon'], - ['9', '1998', '5.8', 'Babe: Pig in the City'], - ['10', '1998', '7.1', 'Blade'], - ['11', '1998', '7.2', 'A Bug,s Life'], - ['12', '1998', '7.3', 'Enemy of the State'], - ['13', '1998', '7.7', 'Fear and Loathing in Las Vegas'], - ['14', '1998', '5.3', 'Godzilla'], - ['15', '1998', '8.2', 'Lock, Stock and Two Smoking Barrels'], - ['16', '1998', '6.5', 'The Man in the Iron Mask'], - ['17', '1998', '6.1', 'Mercury Rising'], - ['18', '1998', '6.5', 'The Parent Trap'], - ['19', '1998', '7', 'Rush Hour'], - ['20', '1998', '8.6', 'Saving Private Ryan'], - ['21', '1998', '6.5', 'U.S. Marshals'], - ['22', '1998', '6.1', 'Les couloirs du temps: Les visiteurs II'], - ['23', '1998', '6.1', 'Wrongfully Accused'], - ['24', '1998', '7', 'The X Files'], - ['25', '1998', '6.6', 'Lethal Weapon 4'], - ['26', '1998', '4.9', 'Blackjack'], - ['27', '1998', '6.6', 'You,ve Got Mail'], - ['28', '1998', '7.1', 'There,s Something About Mary'], - ['29', '1998', '4.4', 'Dennis the Menace Strikes Again!'], - ['30', '1998', '4.8', 'Ernest in the Army'], - ['31', '1998', '7.4', 'Pi'], - ['32', '1998', '5.3', 'Brave New World'], - ['33', '1998', '7', 'Taxi'], - ['34', '1998', '6.1', 'Gekijô-ban poketto monsutâ - Myûtsû no gyakushû'], - ['35', '1998', '6.5', 'Sun faa sau si'], - ['1', '1999', '7.9', 'Toy Story 2'], - ['2', '1999', '7.3', 'Dogma'], - ['3', '1999', '6.6', 'The 13th Warrior'], - ['4', '1999', '8.6', 'The Green Mile'], - ['5', '1999', '7.3', 'Tarzan'], - ['6', '1999', '7.2', 'Titus'], - ['7', '1999', '6.5', 'Star Wars: Episode I - The Phantom Menace'], - ['8', '1999', '7.1', 'Notting Hill'], - ['9', '1999', '8.7', 'The Matrix'], - ['10', '1999', '5.9', 'Astérix & Obélix contre César'], - ['11', '1999', '6.5', '8MM'], - ['12', '1999', '8.8', 'Fight Club'], - ['13', '1999', '6.7', 'The Ninth Gate'], - ['14', '1999', '6.4', 'The World Is Not Enough'], - ['15', '1999', '7.8', 'The Boondock Saints'], - ['16', '1999', '6.7', 'The Bone Collector'], - ['17', '1999', '5.8', 'Deep Blue Sea'], - ['18', '1999', '6.4', 'Joan of Arc'], - ['19', '1999', '7.8', 'South Park: Bigger, Longer & Uncut'], - ['20', '1999', '5.5', 'Runaway Bride'], - ['21', '1999', '7', 'American Pie'], - ['22', '1999', '5.9', 'Stuart Little'], - ['23', '1999', '8', 'The Straight Story'], - ['24', '1999', '8.1', 'The Sixth Sense'], - ['25', '1999', '8.4', 'American Beauty'], - ['26', '1999', '6.1', 'Pan Tadeusz'], - ['27', '1999', '7.3', 'Galaxy Quest'], - ['28', '1999', '6.4', 'The Blair Witch Project'], - ['29', '1999', '6.7', 'Kilerów 2-óch'], - ['1', '2000', '6.1', 'Mission: Impossible II'], - ['2', '2000', '7.4', 'X-Men'], - ['3', '2000', '7.1', 'Pitch Black'], - ['4', '2000', '6.6', 'U-571'], - ['5', '2000', '7.6', 'American Psycho'], - ['6', '2000', '4.4', 'Nutty Professor II: The Klumps'], - ['7', '2000', '3.5', '2001: A Space Travesty'], - ['8', '2000', '5.7', 'The Art of War'], - ['9', '2000', '4.7', 'Air Bud 3: World Pup'], - ['10', '2000', '7.8', 'Cast Away'], - ['11', '2000', '6.6', 'The Beach'], - ['12', '2000', '6.1', 'How the Grinch Stole Christmas'], - ['13', '2000', '8.5', 'Gladiator'], - ['14', '2000', '6.2', 'Scary Movie'], - ['15', '2000', '5.9', 'Gossip'], - ['16', '2000', '6.4', 'The Perfect Storm'], - ['17', '2000', '8.3', 'Requiem for a Dream'], - ['18', '2000', '6.6', 'Me, Myself & Irene'], - ['19', '2000', '6.5', 'Taxi 2'], - ['20', '2000', '6.6', 'Shanghai Noon'], - ['21', '2000', '6.5', 'Gone in Sixty Seconds'], - ['22', '2000', '7.9', 'Wo hu cang long'], - ['23', '2000', '5.6', 'The Skulls'], - ['24', '2000', '7.3', 'Erin Brockovich'], - ['25', '2000', '7.2', 'Love & Basketball'], - ['26', '2000', '5.5', 'Kevin & Perry Go Large'], - ['27', '2000', '6.4', 'What Women Want'], - ['28', '2000', '8.3', 'Snatch'], - ['29', '2000', '8.5', 'Memento'], - ['30', '2000', '5.8', 'The Great Gatsby'], - ['31', '2000', '4.9', '102 Dalmatians'], - ['32', '2000', '6.5', 'Road Trip'], - ['33', '2000', '7.3', 'Unbreakable'], - ['34', '2000', '7.6', 'Chlopaki nie placza'], - ['35', '2000', '5', 'Harte Jungs'], - ['36', '2000', '7.3', 'Chocolat'], - ['37', '2000', '5.5', 'Dude, Where,s My Car?'], - ['1', '2001', '8.8', 'The Lord of the Rings: The Fellowship of the Ring'], - ['2', '2001', '7.9', 'Shrek'], - ['3', '2001', '5.7', 'Planet of the Apes'], - ['4', '2001', '5.8', 'Lara Croft: Tomb Raider'], - ['5', '2001', '6.4', 'Behind Enemy Lines'], - ['6', '2001', '5.8', 'Just Visiting'], - ['7', '2001', '8.1', 'Monsters, Inc.'], - ['8', '2001', '7.6', 'Moulin Rouge!'], - ['9', '2001', '6.1', 'Pearl Harbor'], - ['10', '2001', '5.5', 'Spy Kids'], - ['11', '2001', '7.6', 'The Others'], - ['12', '2001', '6.8', 'The Fast and the Furious'], - ['13', '2001', '4.7', 'Dr. Dolittle 2'], - ['14', '2001', '7.8', 'Ocean,s Eleven'], - ['15', '2001', '7.6', 'Harry Potter and the Sorcerer,s Stone'], - ['16', '2001', '5.6', 'Exit Wounds'], - ['17', '2001', '6.2', 'The Hole'], - ['18', '2001', '7', 'Le placard'], - ['19', '2001', '8.1', 'Donnie Darko'], - ['20', '2001', '6.3', 'The Princess Diaries'], - ['21', '2001', '6.7', 'Der Schuh des Manitu'], - ['22', '2001', '6.3', 'Legally Blonde'], - ['23', '2001', '6.1', 'Evolution'], - ['24', '2001', '6.4', 'American Pie 2'], - ['25', '2001', '5.3', 'Scary Movie 2'], - ['26', '2001', '5.2', 'W pustyni i w puszczy'], - ['27', '2001', '6.9', 'Jay and Silent Bob Strike Back'], - ['28', '2001', '7.7', 'Black Hawk Down'], - ['29', '2001', '4.8', 'Black Knight'], - ['30', '2001', '5.9', 'The One'], - ['31', '2001', '8.2', 'A Beautiful Mind'], - ['32', '2001', '7.4', 'K-PAX'], - ['33', '2001', '5.7', 'Not Another Teen Movie'], - ['34', '2001', '6.3', 'How High'], - ['35', '2001', '7.3', 'Siu Lam juk kau'], - ['36', '2001', '5.2', 'Requiem'], - ['37', '2001', '6.8', 'Poranek kojota'], - ['38', '2001', '5.1', 'Jesus Christ Vampire Hunter'], - ['1', '2002', '6.1', 'Men in Black II'], - ['2', '2002', '6.6', 'Star Wars: Episode II - Attack of the Clones'], - ['3', '2002', '7.3', 'Spider-Man'], - ['4', '2002', '6.4', 'The Sum of All Fears'], - ['5', '2002', '8.7', 'The Lord of the Rings: The Two Towers'], - ['6', '2002', '7.1', 'Phone Booth'], - ['7', '2002', '7.5', 'Equilibrium'], - ['8', '2002', '6.6', 'Astérix & Obélix: Mission Cléopâtre'], - ['9', '2002', '8.5', 'The Pianist'], - ['10', '2002', '6.2', 'Reign of Fire'], - ['11', '2002', '5.1', 'The Sweetest Thing'], - ['12', '2002', '6.8', 'Panic Room'], - ['13', '2002', '7.9', 'The Bourne Identity'], - ['14', '2002', '5.7', 'Repli-Kate'], - ['15', '2002', '8.1', 'Catch Me If You Can'], - ['16', '2002', '6.7', 'K-19: The Widowmaker'], - ['17', '2002', '7.5', 'Ice Age'], - ['18', '2002', '5.5', 'The Scorpion King'], - ['19', '2002', '5.5', 'Showtime'], - ['20', '2002', '6.2', 'Ali G Indahouse'], - ['21', '2002', '6.7', 'Signs'], - ['22', '2002', '6.8', 'The Transporter'], - ['23', '2002', '7.4', 'Harry Potter and the Chamber of Secrets'], - ['24', '2002', '4.5', 'Knallharte Jungs'], - ['25', '2002', '5.9', 'xXx'], - ['26', '2002', '7.1', 'The Ring'], - ['27', '2002', '7.1', '8 Mile'], - ['28', '2002', '7.2', 'Chicago'], - ['29', '2002', '6.2', 'Kariera Nikosia Dyzmy'], - ['30', '2002', '5.7', 'Zemsta'], - ['31', '2002', '5.5', 'E=mc2'], - ['32', '2002', '8.1', 'Dzien swira'], - ['33', '2002', '4', 'Haker'], - ['34', '2002', '6.7', 'Saekjeuk shigong'], - ['35', '2002', '7.4', 'Gone Nutty'], - ['36', '2002', '7.4', 'Katedra'], - ['1', '2003', '8.9', 'The Lord of the Rings: The Return of the King'], - ['2', '2003', '6.6', 'Bad Boys II'], - ['3', '2003', '6.3', 'Terminator 3: Rise of the Machines'], - ['4', '2003', '7.2', 'The Matrix Reloaded'], - ['5', '2003', '6.7', 'The Matrix Revolutions'], - ['6', '2003', '8.1', 'Finding Nemo'], - ['7', '2003', '8.1', 'Kill Bill: Vol. 1'], - ['8', '2003', '6.2', 'Johnny English'], - ['9', '2003', '5.6', 'Hulk'], - ['10', '2003', '7.4', 'X2'], - ['11', '2003', '6.6', 'The Recruit'], - ['12', '2003', '5.8', 'Taxi 3'], - ['13', '2003', '6.2', 'Shanghai Knights'], - ['14', '2003', '7.7', 'Good Bye Lenin!'], - ['15', '2003', '5.5', 'Scary Movie 3'], - ['16', '2003', '7.2', 'The Dreamers'], - ['17', '2003', '6.6', 'Tears of the Sun'], - ['18', '2003', '5.7', 'The In-Laws'], - ['19', '2003', '6.7', 'Bruce Almighty'], - ['20', '2003', '2', 'House of the Dead'], - ['21', '2003', '7', 'The Italian Job'], - ['22', '2003', '8', 'Big Fish'], - ['23', '2003', '5.9', '2 Fast 2 Furious'], - ['24', '2003', '6.2', 'The Texas Chainsaw Massacre'], - ['25', '2003', '7.3', 'Matchstick Men'], - ['26', '2003', '8', 'Pirates of the Caribbean: The Curse of the Black Pearl'], - ['27', '2003', '6.3', 'American Wedding'], - ['28', '2003', '7.4', 'The Animatrix'], - ['29', '2003', '3.4', 'Dumb and Dumberer: When Harry Met Lloyd'], - ['30', '2003', '7.1', 'The School of Rock'], - ['31', '2003', '4.7', 'Legally Blonde 2: Red, White & Blonde'], - ['32', '2003', '7.8', 'Lost in Translation'], - ['33', '2003', '5.8', 'Stuck on You'], - ['34', '2003', '6.1', 'Show'], - ['35', '2003', '3.7', 'The Room'], - ['36', '2003', '5.8', 'Zróbmy sobie wnuka'], - ['1', '2004', '7.7', 'The Butterfly Effect'], - ['2', '2004', '6.7', 'The Chronicles of Riddick'], - ['3', '2004', '7.2', 'Shrek 2'], - ['4', '2004', '7.9', 'Harry Potter and the Prisoner of Azkaban'], - ['5', '2004', '6', 'Shark Tale'], - ['6', '2004', '7.3', 'Spider-Man 2'], - ['7', '2004', '8', 'The Incredibles'], - ['8', '2004', '6.6', 'The Lion King 1½'], - ['9', '2004', '6.4', 'The Day After Tomorrow'], - ['10', '2004', '5.9', 'Around the World in 80 Days'], - ['11', '2004', '7.9', 'The Notebook'], - ['12', '2004', '7.2', 'The Passion of the Christ'], - ['13', '2004', '8.3', 'Eternal Sunshine of the Spotless Mind'], - ['14', '2004', '6.8', '50 First Dates'], - ['15', '2004', '6.3', 'Walking Tall'], - ['16', '2004', '6.6', 'EuroTrip'], - ['17', '2004', '5', 'Garfield'], - ['18', '2004', '5.8', 'RRRrrrr!!!'], - ['19', '2004', '7.2', 'Anchorman: The Legend of Ron Burgundy'], - ['20', '2004', '7.9', 'Shaun of the Dead'], - ['21', '2004', '7.1', 'Harold & Kumar Go to White Castle'], - ['22', '2004', '6.9', 'National Treasure'], - ['23', '2004', '5.6', 'AVP: Alien vs. Predator'], - ['24', '2004', '7.7', 'The Bourne Supremacy'], - ['25', '2004', '7.8', 'Kung fu'], - ['26', '2004', '6.9', 'Napoleon Dynamite'], - ['27', '2004', '8', 'Kill Bill: Vol. 2'], - ['28', '2004', '4.7', '7 Zwerge'], - ['29', '2004', '4.8', 'Frankenfish'], - ['30', '2004', '7.6', 'Saw'], - ['31', '2004', '5.9', 'The Grudge'], - ['32', '2004', '8.1', 'Million Dollar Baby'], - ['33', '2004', '7.7', 'Wesele'], - ['34', '2004', '6.8', 'Mój Nikifor'], - ['35', '2004', '3.5', 'The Ring Thing'], - ['36', '2004', '8', 'The Trailer Park Boys Christmas Special'], - ['37', '2004', '7.7', 'Sztuka spadania'], - ['1', '2005', '5.7', 'Fantastic Four'], - ['2', '2005', '7.6', 'Star Wars: Episode III - Revenge of the Sith'], - ['3', '2005', '7.7', 'Harry Potter and the Goblet of Fire'], - ['4', '2005', '7', 'An Unfinished Life'], - ['5', '2005', '6.9', 'Madagascar'], - ['6', '2005', '6.5', 'Mr. & Mrs. Smith'], - ['7', '2005', '6.9', 'The Chronicles of Narnia: The Lion, the Witch and the Wardrobe'], - ['8', '2005', '6.5', 'Revolver'], - ['9', '2005', '6.6', 'Charlie and the Chocolate Factory'], - ['10', '2005', '4.7', 'Are We There Yet?'], - ['11', '2005', '5.8', 'Chicken Little'], - ['12', '2005', '6.8', 'The Hitchhiker,s Guide to the Galaxy'], - ['13', '2005', '8.2', 'Batman Begins'], - ['14', '2005', '5.2', 'Racing Stripes'], - ['15', '2005', '6', 'The Amityville Horror'], - ['16', '2005', '6.3', 'Transporter 2'], - ['17', '2005', '7.4', 'Memoirs of a Geisha'], - ['18', '2005', '4.8', 'Herbie Fully Loaded'], - ['19', '2005', '8', 'Sin City'], - ['20', '2005', '6.7', 'The Exorcism of Emily Rose'], - ['21', '2005', '7', 'Mrs Henderson Presents'], - ['22', '2005', '3.4', 'Mansquito'], - ['23', '2005', '8.2', 'V for Vendetta'], - ['24', '2005', '6.9', 'Karol, un uomo diventato Papa'], - ['25', '2005', '5.1', 'Band Camp'], - ['26', '2005', '6.5', 'Hoodwinked!'], - ['27', '2005', '7.7', 'Jack-Jack Attack'], - ['28', '2005', '6', 'Czas surferów'], - ['29', '2005', '6.9', 'Skazany na bluesa'], - ['30', '2005', '7.4', 'The Madagascar Penguins in a Christmas Caper'], - ['1', '2006', '6.7', 'Over the Hedge'], - ['2', '2006', '5.1', 'Scary Movie 4'], - ['3', '2006', '6.8', 'Tenacious D in The Pick of Destiny'], - ['4', '2006', '6.7', 'X-Men: The Last Stand'], - ['5', '2006', '8', 'Casino Royale'], - ['6', '2006', '7.3', 'Pirates of the Caribbean: Dead Man,s Chest'], - ['7', '2006', '6.6', 'Idiocracy'], - ['8', '2006', '7.5', 'Perfume: The Story of a Murderer'], - ['9', '2006', '8.5', 'The Departed'], - ['10', '2006', '6.6', 'Talladega Nights: The Ballad of Ricky Bobby'], - ['11', '2006', '7.7', '300'], - ['12', '2006', '7.4', 'Clerks II'], - ['13', '2006', '7.3', 'Trailer Park Boys: The Movie'], - ['14', '2006', '4.4', 'Little Man'], - ['15', '2006', '6.8', 'Ice Age: The Meltdown'], - [ - '16', - '2006', - '7.3', - 'Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan' - ], - ['17', '2006', '5.1', 'Eragon'], - ['18', '2006', '5', 'Garfield: A Tail of Two Kitties'], - ['19', '2006', '7.7', 'The Last King of Scotland'], - ['20', '2006', '7', 'Grandma,s Boy'], - ['21', '2006', '4.5', 'The Butterfly Effect 2'], - ['22', '2006', '6.9', 'The Devil Wears Prada'], - ['23', '2006', '6.2', 'Poultrygeist: Night of the Chicken Dead'], - ['24', '2006', '6.6', 'Step Up'], - ['25', '2006', '6', 'The Fast and the Furious: Tokyo Drift'], - ['26', '2006', '7.7', 'The Ron Clark Story'], - ['27', '2006', '7', 'Crank'], - ['28', '2006', '4.8', 'Van Wilder 2: The Rise of Taj'], - ['29', '2006', '8.5', 'The Prestige'], - ['30', '2006', '7.4', 'The Ultimate Gift'], - ['31', '2006', '6.5', 'Karol, un Papa rimasto uomo'], - ['32', '2006', '5.2', 'The Naked Mile'], - ['1', '2007', '7', 'Death Proof'], - ['2', '2007', '7', 'Rezerwat'], - ['3', '2007', '7.1', 'Planet Terror'], - ['4', '2007', '5.8', 'Ranczo Wilkowyje'], - ['5', '2007', '7.5', 'Harry Potter and the Order of the Phoenix'], - ['6', '2007', '7', 'Breach'], - ['7', '2007', '6.1', 'Shrek the Third'], - ['8', '2007', '6.2', 'Spider-Man 3'], - ['9', '2007', '6.9', 'Elizabeth: The Golden Age'], - ['10', '2007', '7.1', 'P.S. I Love You'], - ['11', '2007', '6.3', 'Resident Evil: Extinction'], - ['12', '2007', '8', 'The Bourne Ultimatum'], - ['13', '2007', '6.3', 'Blades of Glory'], - ['14', '2007', '7.1', 'Pirates of the Caribbean: At World,s End'], - ['15', '2007', '6.8', '1408'], - ['16', '2007', '7.3', 'The Simpsons Movie'], - ['17', '2007', '6.3', 'Hitman'], - ['18', '2007', '7.3', 'Michael Clayton'], - ['19', '2007', '8.1', 'No Country for Old Men'], - ['20', '2007', '7.2', 'I Am Legend'], - ['21', '2007', '8.1', 'Into the Wild'], - ['22', '2007', '4.1', 'The List'], - ['23', '2007', '5.6', 'Taxi 4'], - ['24', '2007', '6.5', 'Funny Games'], - ['25', '2007', '7.4', 'The Bucket List'], - ['26', '2007', '7.6', 'Superbad'], - ['27', '2007', '6.8', 'Walk Hard: The Dewey Cox Story'], - ['28', '2007', '7.1', 'Katyn'], - ['29', '2007', '6.5', 'Shrek the Halls'], - ['30', '2007', '5.4', 'Beta House'], - ['1', '2008', '5.6', 'Sex and the City'], - ['2', '2008', '8', 'Slumdog Millionaire'], - ['3', '2008', '7', 'Cloverfield'], - ['4', '2008', '7.6', 'Die Welle'], - ['5', '2008', '5.2', 'Twilight'], - ['6', '2008', '7.6', 'A Matter of Loaf and Death'], - ['7', '2008', '5.4', 'Lejdis'], - ['8', '2008', '6', 'Tôkyô zankoku keisatsu'], - ['9', '2008', '8.1', 'Gran Torino'], - ['10', '2008', '3.7', 'NYC: Tornado Terror'], - ['11', '2008', '8', 'Yip Man'], - ['12', '2008', '5.8', 'Ile wazy kon trojanski?'], - ['13', '2008', '5.8', 'Swiadectwo'], - ['14', '2008', '7.9', 'Iron Man'], - ['15', '2008', '6.3', 'The Onion Movie'], - ['16', '2008', '7.8', 'The Curious Case of Benjamin Button'], - ['17', '2008', '6.5', 'Get Smart'], - ['18', '2008', '6.4', 'Hancock'], - ['19', '2008', '5.4', 'Max Payne'], - ['20', '2008', '9', 'The Dark Knight'], - ['21', '2008', '6.6', 'Harold & Kumar Escape from Guantanamo Bay'], - ['22', '2008', '6.7', 'Wanted'], - ['23', '2008', '5.3', 'My Mom,s New Boyfriend'], - ['24', '2008', '7.9', 'In Bruges'], - ['25', '2008', '6.7', 'The Incredible Hulk'], - ['26', '2008', '6.6', 'Quantum of Solace'], - ['27', '2008', '8.4', 'WALL·E'], - ['28', '2008', '7.8', 'The Boy in the Striped Pyjamas'], - ['29', '2008', '7.8', 'Taken'], - ['30', '2008', '7', 'Tropic Thunder'], - ['31', '2008', '4.1', 'Zombie Strippers!'], - ['32', '2008', '7.6', 'The Reader'], - ['1', '2009', '7.7', '(500) Days of Summer'], - ['2', '2009', '6.7', 'The Proposal'], - ['3', '2009', '4.9', 'Year One'], - ['4', '2009', '5.8', 'G.I. Joe: The Rise of Cobra'], - ['5', '2009', '8.2', 'Up'], - ['6', '2009', '6.8', 'The Imaginarium of Doctor Parnassus'], - ['7', '2009', '6.4', 'The Invention of Lying'], - ['8', '2009', '5.2', 'Paul Blart: Mall Cop'], - ['9', '2009', '7.7', 'The Hangover'], - ['10', '2009', '7.8', 'Män som hatar kvinnor'], - ['11', '2009', '7.9', 'District 9'], - ['12', '2009', '7', 'Public Enemies'], - ['13', '2009', '6.6', 'Today,s Special'], - ['14', '2009', '7.3', 'An Education'], - ['15', '2009', '7.2', 'Whatever Works'], - ['16', '2009', '5.8', '2012'], - ['17', '2009', '7.4', 'Black Dynamite'], - ['18', '2009', '6.6', 'The Greatest'], - ['19', '2009', '6.2', 'The Men Who Stare at Goats'], - ['20', '2009', '6.5', 'Banlieue 13: Ultimatum'], - ['21', '2009', '6.3', 'The Boondock Saints II: All Saints Day'], - ['22', '2009', '4.9', 'Road Trip: Beer Pong'], - ['23', '2009', '7.4', 'Trailer Park Boys: Countdown to Liquor Day'], - ['24', '2009', '8.4', 'Iron Maiden: Flight 666'], - ['25', '2009', '7.3', 'Kynodontas'], - ['26', '2009', '5.3', 'Robo-geisha'], - ['27', '2009', '4.8', 'American Pie Presents the Book of Love'], - ['28', '2009', '5.6', 'Kyûketsu Shôjo tai Shôjo Furanken'], - ['29', '2009', '4.4', 'The Human Centipede (First Sequence)'], - ['30', '2009', '7.4', 'Dom zly'], - ['31', '2009', '4.8', 'Wlatcy móch: Cmoki, czopki i mondzioly'], - ['32', '2009', '8.3', 'Inglourious Basterds'], - ['33', '2009', '7.6', 'Watchmen'], - ['34', '2009', '7.6', 'Harry Potter and the Half-Blood Prince'], - ['35', '2009', '6.6', 'X-Men Origins: Wolverine'], - ['36', '2009', '6.1', 'Push'], - ['37', '2009', '7.1', '9'], - ['38', '2009', '7.8', 'Mr. Nobody'], - ['39', '2009', '7.1', 'Brothers'], - ['40', '2009', '5.6', 'The Pink Panther 2'], - ['41', '2009', '6.6', 'Antichrist'], - ['42', '2009', '5.8', 'Brüno'], - ['43', '2009', '6.4', '17 Again'], - ['44', '2009', '6.3', 'Bandslam'], - ['45', '2009', '6.3', 'Surrogates'], - ['46', '2009', '7.6', 'Sherlock Holmes'], - ['1', '2010', '7.3', 'Megamind'], - ['2', '2010', '6.5', 'Alice in Wonderland'], - ['3', '2010', '6.9', 'The Book of Eli'], - ['4', '2010', '8.1', 'Shutter Island'], - ['5', '2010', '7', 'Iron Man 2'], - ['6', '2010', '6.5', 'Due Date'], - ['7', '2010', '7.1', 'RED'], - ['8', '2010', '7.6', 'Kick-Ass'], - ['9', '2010', '5.1', 'Srpski film'], - ['10', '2010', '7.1', 'Easy A'], - ['11', '2010', '7.7', 'The Social Network'], - ['12', '2010', '7.1', 'Enthiran'], - ['13', '2010', '6.5', 'The Expendables'], - ['14', '2010', '8.8', 'Inception'], - ['15', '2010', '6.7', 'The Other Guys'], - ['16', '2010', '8', 'The King,s Speech'], - ['17', '2010', '6.8', 'The 3rd Letter'], - ['18', '2010', '5.8', 'Rubber'], - ['19', '2010', '7.1', 'Rózyczka'], - ['20', '2010', '6.8', 'The A-Team'], - ['21', '2010', '8.3', 'Toy Story 3'], - ['22', '2010', '7.5', 'Scott Pilgrim vs. the World'], - ['23', '2010', '7.6', 'The Town'], - ['24', '2010', '5.8', 'Eat Pray Love'], - ['25', '2010', '7.7', 'Harry Potter and the Deathly Hallows: Part 1'], - ['26', '2010', '8', 'Black Swan'], - ['27', '2010', '6.6', 'Machete'], - ['1', '2011', '8.1', 'Harry Potter and the Deathly Hallows: Part 2'], - ['2', '2011', '5.5', 'Your Highness'], - ['3', '2011', '6.3', 'A Very Harold & Kumar 3D Christmas'], - ['4', '2011', '7.7', 'X: First Class'], - ['5', '2011', '6.6', 'Pirates of the Caribbean: On Stranger Tides'], - ['6', '2011', '7.6', 'Rise of the Planet of the Apes'], - ['7', '2011', '6.5', 'The Hangover Part II'], - ['8', '2011', '7.3', 'The Best Exotic Marigold Hotel'], - ['9', '2011', '8.1', 'The Help'], - ['10', '2011', '6.9', 'Horrible Bosses'], - ['11', '2011', '7.5', 'Sherlock Holmes: A Game of Shadows'], - ['12', '2011', '6.4', 'Flypaper'], - ['13', '2011', '7.8', 'The Girl with the Dragon Tattoo'], - ['14', '2011', '6.1', '30 Minutes or Less'], - ['15', '2011', '6.1', 'Hobo with a Shotgun'], - ['16', '2011', '5.7', 'A Few Best Men'], - ['17', '2011', '8.5', 'Intouchables'], - ['18', '2011', '4.8', 'A Cadaver Christmas'], - ['19', '2011', '5.7', 'Chillerama'], - ['20', '2011', '4.2', '1920 Bitwa Warszawska'], - ['21', '2011', '4.7', 'Treasure Guards'], - ['22', '2011', '6.7', 'Sala samobójców'], - ['23', '2011', '6.9', 'Captain America: The First Avenger'], - ['24', '2011', '8.5', 'Samsara'], - ['25', '2011', '7.8', 'Drive'], - ['26', '2011', '7', 'Thor'], - ['1', '2012', '7.8', 'Skyfall'], - ['2', '2012', '7.3', 'Lawless'], - ['3', '2012', '7.2', '21 Jump Street'], - ['4', '2012', '7.4', 'Looper'], - ['5', '2012', '7.1', 'Dredd'], - ['6', '2012', '8.4', 'The Dark Knight Rises'], - ['7', '2012', '7.2', 'The Hunger Games'], - ['8', '2012', '6.3', 'Taken 2'], - ['9', '2012', '6.8', 'Men in Black 3'], - ['10', '2012', '7', 'Get the Gringo'], - ['11', '2012', '5.3', 'Astérix & Obélix: Au service de sa Majesté'], - ['12', '2012', '6.7', 'American Reunion'], - ['13', '2012', '6.7', 'Project X'], - ['14', '2012', '6.9', 'Ted'], - ['15', '2012', '6.4', 'The Dictator'], - ['16', '2012', '5.7', 'Wrath of the Titans'], - ['17', '2012', '6.6', 'The Expendables 2'], - ['18', '2012', '7.1', 'The Words'], - ['19', '2012', '8.4', 'Django Unchained'], - ['20', '2012', '7.6', 'End of Watch'], - ['21', '2012', '4.5', 'Mac & Devin Go to High School'], - ['22', '2012', '6.8', 'Sinister'], - ['23', '2012', '8.3', 'Jagten'], - ['24', '2012', '3.2', 'Nazis at the Center of the Earth'], - ['25', '2012', '7', 'Rasskazy'], - ['26', '2012', '3.1', 'Abraham Lincoln vs. Zombies'], - ['27', '2012', '8.3', 'Paperman'], - ['28', '2012', '5.8', 'Deddo sushi'], - ['29', '2012', '7.3', 'Drogówka'], - ['30', '2012', '7.9', 'Life of Pi'], - ['31', '2012', '8.1', 'The Avengers'], - ['32', '2012', '7.9', 'The Hobbit: An Unexpected Journey'], - ['33', '2012', '6.8', 'Hitchcock'], - ['1', '2013', '7.8', 'The Hobbit: The Desolation of Smaug'], - ['2', '2013', '6.6', 'Last Vegas'], - ['3', '2013', '7.2', 'Iron Man Three'], - ['4', '2013', '6.7', 'Gangster Squad'], - ['5', '2013', '4.3', 'Movie 43'], - ['6', '2013', '7.3', 'The Great Gatsby'], - ['7', '2013', '6.4', 'Riddick'], - ['8', '2013', '6.7', 'The Wolverine'], - ['9', '2013', '7.5', 'The Conjuring'], - ['10', '2013', '7.8', 'Captain Phillips'], - ['11', '2013', '6.4', '3096 Tage'], - ['12', '2013', '7.3', 'Now You See Me'], - ['13', '2013', '7', 'We,re the Millers'], - ['14', '2013', '7.2', 'American Hustle'], - ['15', '2013', '5.8', 'The Hangover Part III'], - ['16', '2013', '7.5', 'The Hunger Games: Catching Fire'], - ['17', '2013', '6.4', 'Pain & Gain'], - ['18', '2013', '6.9', 'Thor: The Dark World'], - ['19', '2013', '5.6', 'Machete Kills'], - ['20', '2013', '8.1', '12 Years a Slave'], - ['21', '2013', '7.1', 'Hundraåringen som klev ut genom fönstret och försvann'], - ['22', '2013', '7.5', 'Frozen'], - ['23', '2013', '6.1', 'The Zero Theorem'], - ['24', '2013', '6.4', 'Delivery Man'], - ['25', '2013', '3.3', 'Sharknado'], - ['26', '2013', '6.5', 'Bad Grandpa'], - ['27', '2013', '7.3', 'The Secret Life of Walter Mitty'], - ['28', '2013', '7.1', 'Man of Steel'], - ['29', '2013', '3.5', 'Scary Movie 5'], - ['30', '2013', '7', 'World War Z'], - ['31', '2013', '8.2', 'The Wolf of Wall Street'], - ['1', '2014', '7.9', 'Boyhood'], - ['2', '2014', '7.4', 'You,re Not You'], - ['3', '2014', '6.2', '300: Rise of an Empire'], - ['4', '2014', '7.8', 'The Lego Movie'], - ['5', '2014', '7', 'Hector and the Search for Happiness'], - ['6', '2014', '7.8', 'Captain America: The Winter Soldier'], - ['7', '2014', '8', 'X-Men: Days of Future Past'], - ['8', '2014', '6.7', 'Penguins of Madagascar'], - ['9', '2014', '6.6', 'The Hunger Games: Mockingjay - Part 1'], - ['10', '2014', '8.1', 'Guardians of the Galaxy'], - ['11', '2014', '8', 'The Imitation Game'], - ['12', '2014', '7.6', 'Dawn of the Planet of the Apes'], - ['13', '2014', '7.3', 'American Sniper'], - ['14', '2014', '7.8', 'Big Hero 6'], - ['15', '2014', '8.1', 'The Grand Budapest Hotel'], - ['16', '2014', '7', '22 Jump Street'], - ['17', '2014', '7.2', 'Wild'], - ['18', '2014', '7.4', 'The Hobbit: The Battle of the Five Armies'], - ['19', '2014', '6.1', 'The Expendables 3'], - ['20', '2014', '4.9', 'Space Station 76'], - ['21', '2014', '5.9', 'Swearnet: The Movie'], - ['22', '2014', '6.2', 'Wyrmwood'], - ['23', '2014', '7.7', 'Birdman or (The Unexpected Virtue of Ignorance)'], - ['24', '2014', '8.5', 'Whiplash'], - ['25', '2014', '4.8', 'Zombeavers'], - ['26', '2014', '7', 'Qu,est-ce qu,on a fait au Bon Dieu?'], - ['27', '2014', '7.7', 'Kingsman: The Secret Service'], - ['28', '2014', '7.9', 'Nightcrawler'], - ['29', '2014', '7.4', 'John Wick'], - ['30', '2014', '7.7', 'The Theory of Everything'], - ['31', '2014', '7.3', 'Trailer Park Boys: Don,t Legalize It'], - ['32', '2014', '7.7', 'What We Do in the Shadows'], - ['33', '2014', '7.9', 'Khid thueng withaya'], - ['34', '2014', '3.8', 'Blood Lake: Attack of the Killer Lampreys'], - ['35', '2014', '7.7', 'Bogowie'], - ['36', '2014', '6.7', 'Miasto 44'], - ['37', '2014', '7.2', 'Lava'], - ['38', '2014', '3.9', 'Dzien dobry, kocham cie!'], - ['39', '2014', '6.5', 'Sin City: A Dame to Kill For'], - ['40', '2014', '7.7', 'Ex Machina'], - ['41', '2014', '8.6', 'Interstellar'], - ['1', '2015', '8.1', 'Mad Max: Fury Road'], - ['2', '2015', '7.9', 'Straight Outta Compton'], - ['3', '2015', '6.2', 'Daddy,s Home'], - ['4', '2015', '7.8', 'The Big Short'], - ['5', '2015', '8', 'The Revenant'], - ['6', '2015', '6.8', 'Chappie'], - ['7', '2015', '8.1', 'Spotlight'], - ['8', '2015', '6.6', 'The Hunger Games: Mockingjay - Part 2'], - ['9', '2015', '8.2', 'Inside Out'], - ['10', '2015', '5.6', 'Pixels'], - ['11', '2015', '6.8', 'Spectre'], - ['12', '2015', '7.3', 'Avengers: Age of Ultron'], - ['13', '2015', '8', 'Star Wars: Episode VII - The Force Awakens'], - ['14', '2015', '6.6', 'The Second Best Exotic Marigold Hotel'], - ['15', '2015', '7.1', 'Everest'], - ['16', '2015', '8.2', 'Room'], - ['17', '2015', '7.3', 'Youth'], - ['18', '2015', '7.8', 'The Hateful Eight'], - ['19', '2015', '8', 'Kung Fury'], - ['20', '2015', '7.3', 'The Walk'], - ['21', '2015', '6.6', 'Sundays'], - ['22', '2015', '8', 'The Martian'], - ['23', '2015', '7.1', 'Le tout nouveau testament'], - ['24', '2015', '7.1', 'Er ist wieder da'], - ['25', '2015', '6.9', 'Carte Blanche'], - ['26', '2015', '7.8', 'Limitless'], - ['27', '2015', '7.3', 'Ant-Man'], - ['28', '2015', '5.9', 'Timelike'], - ['29', '2015', '7.2', 'The Man Who Knew Infinity'], - ['30', '2015', '6.7', 'The Wedding Ringer'], - ['1', '2016', '7.2', '10 Cloverfield Lane'], - ['2', '2016', '7.5', 'Doctor Strange'], - ['3', '2016', '6', 'Suicide Squad'], - ['4', '2016', '8', 'Deadpool'], - ['5', '2016', '5.9', 'True Memoirs of an International Assassin'], - ['6', '2016', '7.1', 'War Dogs'], - ['7', '2016', '8.1', 'Hacksaw Ridge'], - ['8', '2016', '7.9', 'Arrival'], - ['9', '2016', '7.6', 'Hell or High Water'], - ['10', '2016', '7.2', 'Fences'], - ['11', '2016', '8', 'Zootopia'], - ['12', '2016', '7.3', 'Fantastic Beasts and Where to Find Them'], - ['13', '2016', '7', 'X-Men: Apocalypse'], - ['14', '2016', '7.1', 'Sing'], - ['15', '2016', '7.8', 'Captain America: Civil War'], - ['16', '2016', '7.9', 'Captain Fantastic'], - ['17', '2016', '8.1', 'Lion'], - ['18', '2016', '7.8', 'Rogue One'], - ['19', '2016', '8', 'La La Land'], - ['20', '2016', '7.4', 'The Nice Guys'], - ['21', '2016', '7.8', 'Manchester by the Sea'], - ['22', '2016', '7', 'Swiss Army Man'], - ['23', '2016', '7.8', 'Kubo and the Two Strings'], - ['24', '2016', '6.3', 'Mindhorn'], - ['25', '2016', '7.8', 'Hidden Figures'], - ['26', '2016', '7.8', 'Perfetti sconosciuti'], - ['27', '2016', '7.4', 'Moonlight'], - ['28', '2016', '6.5', 'Pitbull. Nowe porzadki'], - ['29', '2016', '5.6', 'Marie Curie'], - ['30', '2016', '7.5', 'Ostatnia rodzina'], - ['31', '2016', '5.8', 'Pitbull. Niebezpieczne kobiety'], - ['1', '2017', '5.7', 'Downsizing'], - ['2', '2017', '7.4', 'It'], - ['3', '2017', '7.6', 'The Greatest Showman'], - ['4', '2017', '8', 'Blade Runner 2049'], - ['5', '2017', '7.5', 'Spider-Man: Homecoming'], - ['6', '2017', '7', 'Jumanji: Welcome to the Jungle'], - ['7', '2017', '8.4', 'Coco'], - ['8', '2017', '6.7', 'Atomic Blonde'], - ['9', '2017', '7.1', 'Star Wars: Episode VIII - The Last Jedi'], - ['10', '2017', '7.2', 'Beauty and the Beast'], - ['11', '2017', '5.6', 'El Camino Christmas'], - ['12', '2017', '8.1', 'Logan'], - ['13', '2017', '6.5', 'Murder on the Orient Express'], - ['14', '2017', '7.4', 'War for the Planet of the Apes'], - ['15', '2017', '7.9', 'Thor: Ragnarok'], - ['16', '2017', '7.4', 'The Disaster Artist'], - ['17', '2017', '6', 'Power Rangers'], - ['18', '2017', '7.2', 'The Wife'], - ['19', '2017', '7.6', 'Baby Driver'], - ['20', '2017', '7.7', 'Guardians of the Galaxy Vol. 2'], - ['21', '2017', '7.3', 'Okja'], - ['22', '2017', '7.3', 'The Lego Batman Movie'], - ['23', '2017', '6.3', 'The Babysitter'], - ['24', '2017', '7.5', 'Wonder Woman'], - ['25', '2017', '7.4', 'Darkest Hour'], - ['26', '2017', '6.8', 'Kingsman: The Golden Circle'], - ['27', '2017', '7.4', 'Lady Bird'], - ['28', '2017', '7.9', 'Dunkirk'], - ['29', '2017', '8.2', 'Three Billboards Outside Ebbing, Missouri'], - ['30', '2017', '7.7', 'Get Out'], - ['31', '2017', '6.6', 'Mother!'], - ['32', '2017', '5.9', 'The Polka King'], - ['33', '2017', '7.5', 'I, Tonya'], - ['34', '2017', '7.3', 'The Shape of Water'], - ['35', '2017', '7.6', 'The Florida Project'], - ['36', '2017', '7.9', 'Call Me by Your Name'], - ['37', '2017', '7.5', 'Phantom Thread'], - ['38', '2017', '7.1', 'First Reformed'], - ['39', '2017', '7.2', 'The Post'], - ['40', '2017', '6.1', 'Casting JonBenet'], - ['41', '2017', '7.2', 'Cicha noc'], - ['42', '2017', '6.5', 'Fanatyk'], - ['1', '2018', '7.3', 'First Man'], - ['2', '2018', '6.7', 'Venom'], - ['3', '2018', '6.3', 'Tomb Raider'], - ['4', '2018', '7.1', 'Aquaman'], - ['5', '2018', '7.7', 'A Star Is Born'], - ['6', '2018', '7.5', 'Ready Player One'], - ['7', '2018', '8', 'Bohemian Rhapsody'], - ['8', '2018', '7.3', 'Black Panther'], - ['9', '2018', '6.5', 'Mowgli'], - ['10', '2018', '5.6', 'The Cloverfield Paradox'], - ['11', '2018', '7', 'Game Night'], - ['12', '2018', '7.7', 'Incredibles 2'], - ['13', '2018', '7', 'Solo: A Star Wars Story'], - ['14', '2018', '7.2', 'Leave No Trace'], - ['15', '2018', '6.6', 'Fantastic Beasts: The Crimes of Grindelwald'], - ['16', '2018', '7.1', 'Can You Ever Forgive Me?'], - ['17', '2018', '8.5', 'Spider-Man: Into the Spider-Verse'], - ['18', '2018', '7.6', 'The Favourite'], - ['19', '2018', '7.1', 'Ant-Man and the Wasp'], - ['20', '2018', '7.8', 'Deadpool 2'], - ['21', '2018', '7.8', 'Roma'], - ['22', '2018', '7.2', 'Vice'], - ['23', '2018', '7.3', 'The Ballad of Buster Scruggs'], - ['24', '2018', '7.6', 'Zimna wojna'], - ['25', '2018', '7.6', 'A Quiet Place'], - ['26', '2018', '6.9', 'At Eternity,s Gate'], - ['27', '2018', '6.2', 'Gotowi na wszystko. Exterminator'], - ['28', '2018', '8.2', 'Green Book'], - ['29', '2018', '5.6', 'The Man Who Killed Hitler and Then The Bigfoot'], - ['30', '2018', '7.2', 'If Beale Street Could Talk'], - ['31', '2018', '7.5', 'BlacKkKlansman'], - ['32', '2018', '8.2', 'Free Solo'], - ['33', '2018', '8.4', 'Bi-Weekly Roundup: Avengers Infinity War'], - ['34', '2018', '7.2', 'Climax'], - ['35', '2018', '7.3', 'Black Mirror: Bandersnatch'], - ['1', '2019', '6.5', 'Triple Frontier'], - ['2', '2019', '7', 'Captain Marvel'], - ['3', '2019', '8.7', 'Avengers: Endgame'], - ['4', '2019', '6.8', 'Guava Island'], - ['5', '2019', '6.1', 'Kindergarten Cop'] - ] + series: [ + { name: 'Index', type: 'dimension' }, + { name: 'Year', type: 'dimension' }, + { name: 'IMDb Rating', type: 'measure' }, + { name: 'Title', type: 'dimension' } + ], + records: [ + ['1', '1927', '8.3', 'Metropolis'], + ['1', '1937', '7.6', 'Snow White and the Seven Dwarfs'], + ['1', '1942', '8.5', 'Casablanca'], + ['1', '1952', '8.3', 'Singin, in the Rain'], + ['1', '1955', '7.3', 'Lady and the Tramp'], + ['2', '1955', '6.5', 'Tarantula'], + ['1', '1957', '8.9', '12 Angry Men'], + ['1', '1959', '4', 'Plan 9 from Outer Space'], + ['2', '1959', '3.9', 'The Killer Shrews'], + ['1', '1960', '8.5', 'Psycho'], + ['1', '1962', '7.3', 'Dr. No'], + ['2', '1962', '7.6', 'Nóz w wodzie'], + ['3', '1962', '6.9', 'Der Schatz im Silbersee'], + ['1', '1963', '7.4', 'From Russia with Love'], + ['1', '1964', '7', 'Fantômas'], + ['2', '1964', '6.7', 'Gdzie jest general...'], + ['3', '1964', '7.2', 'Le gendarme de Saint-Tropez'], + ['4', '1964', '7.7', 'Goldfinger'], + ['5', '1964', '7.5', 'A Shot in the Dark'], + ['1', '1965', '7.5', 'Le corniaud'], + ['2', '1965', '6.9', 'Fantômas se déchaîne'], + ['3', '1965', '5.9', 'Old Surehand'], + ['4', '1965', '7', 'Thunderball'], + ['5', '1965', '6.7', 'Winnetou - 3. Teil'], + ['6', '1965', '6.4', 'Le gendarme à New York'], + ['1', '1966', '8.8', 'Il buono, il brutto, il cattivo'], + ['2', '1966', '8', 'La grande vadrouille'], + ['3', '1966', '5.6', 'Winnetou und das Halbblut Apanatschi'], + ['1', '1967', '6.8', 'Fantômas contre Scotland Yard'], + ['2', '1967', '6.6', 'Les grandes vacances'], + ['3', '1967', '6.6', 'Astérix le Gaulois'], + ['4', '1967', '7.6', 'Oscar'], + ['5', '1967', '8', 'Sami swoi'], + ['1', '1968', '8.3', '2001: A Space Odyssey'], + ['2', '1968', '7.2', 'Astérix et Cléopâtre'], + ['3', '1968', '6.8', 'Le gendarme se marie'], + ['1', '1969', '7', 'Bambi Meets Godzilla'], + ['2', '1969', '7.4', 'Easy Rider'], + ['3', '1969', '6.7', 'Hibernatus'], + ['4', '1969', '6.2', 'Monte Carlo or Bust!'], + ['1', '1970', '6.5', 'Le gendarme en balade'], + ['2', '1970', '6.4', 'L,homme orchestre'], + ['3', '1970', '8', 'Jak rozpetalem druga wojne swiatowa'], + ['1', '1971', '6.4', 'Sur un arbre perché'], + ['2', '1971', '7.6', 'And Now for Something Completely Different'], + ['3', '1971', '8.3', 'A Clockwork Orange'], + ['4', '1971', '7.8', 'Dirty Harry'], + ['5', '1971', '7.3', 'La folie des grandeurs'], + ['6', '1971', '7.6', 'Nie lubie poniedzialku'], + ['7', '1971', '7.8', 'Willy Wonka & the Chocolate Factory'], + ['1', '1972', '9.2', 'The Godfather'], + ['1', '1973', '7.5', 'Les aventures de Rabbi Jacob'], + ['2', '1973', '8.3', 'The Sting'], + ['1', '1974', '9', 'The Godfather: Part II'], + ['2', '1974', '7.5', 'Nie ma mocnych'], + ['3', '1974', '6.9', 'The Towering Inferno'], + ['1', '1975', '8.3', 'Monty Python and the Holy Grail'], + ['2', '1975', '7.9', 'Ziemia obiecana'], + ['3', '1975', '8', 'Jaws'], + ['4', '1975', '8.7', 'One Flew Over the Cuckoo,s Nest'], + ['5', '1975', '7.4', 'The Rocky Horror Picture Show'], + ['1', '1976', '7.7', 'Les 12 travaux d,Astérix'], + ['2', '1976', '7.3', 'L,aile ou la cuisse'], + ['3', '1976', '7.5', 'Le jouet'], + ['4', '1976', '7.6', 'The Omen'], + ['5', '1976', '8.3', 'Taxi Driver'], + ['6', '1976', '6.3', 'Freaky Friday'], + ['1', '1977', '8', 'Annie Hall'], + ['2', '1977', '7.9', 'Czlowiek z marmuru'], + ['3', '1977', '6.9', 'Smokey and the Bandit'], + ['4', '1977', '7.1', 'The Spy Who Loved Me'], + ['5', '1977', '8.6', 'Star Wars'], + ['6', '1977', '7.1', 'Kochaj albo rzuc'], + ['1', '1978', '6.3', 'Convoy'], + ['2', '1978', '5.7', 'Jaws 2'], + ['3', '1978', '6.8', 'The Wild Geese'], + ['4', '1978', '7.6', 'Zui quan'], + ['5', '1978', '4.6', 'Attack of the Killer Tomatoes!'], + ['1', '1979', '8.5', 'Alien'], + ['2', '1979', '8.5', 'Apocalypse Now'], + ['3', '1979', '6.3', 'Le gendarme et les extra-terrestres'], + ['4', '1979', '7.6', 'Hair'], + ['5', '1979', '7.8', 'Kramer vs. Kramer'], + ['6', '1979', '8.1', 'Life of Brian'], + ['7', '1979', '6.3', 'Moonraker'], + ['8', '1979', '7.6', 'Nosferatu: Phantom der Nacht'], + ['1', '1980', '6.7', 'L,avare'], + ['2', '1980', '5.1', 'Saturn 3'], + ['3', '1980', '7.8', 'Airplane!'], + ['4', '1980', '8.7', 'Star Wars: Episode V - The Empire Strikes Back'], + ['5', '1980', '8.1', 'Gadajace glowy'], + ['6', '1980', '6.3', 'Paura nella città dei morti viventi'], + ['7', '1980', '8.4', 'The Shining'], + ['1', '1981', '7.4', 'La chèvre'], + ['2', '1981', '5.7', 'Shifshuf Naim'], + ['3', '1981', '8.3', 'Mis'], + ['4', '1981', '8.5', 'Raiders of the Lost Ark'], + ['5', '1981', '6.5', 'La soupe aux choux'], + ['6', '1981', '8', 'Vabank'], + ['7', '1981', '7.5', 'The Evil Dead'], + ['1', '1982', '6.9', 'Conan the Barbarian'], + ['2', '1982', '6.9', '48 Hrs.'], + ['3', '1982', '6.1', 'Airplane II: The Sequel'], + ['4', '1982', '8.2', 'Blade Runner'], + ['5', '1982', '7.9', 'E.T. the Extra-Terrestrial'], + ['6', '1982', '7.7', 'First Blood'], + ['7', '1982', '6.2', 'Le gendarme et les gendarmettes'], + ['8', '1982', '8', 'Pink Floyd: The Wall'], + ['9', '1982', '8.1', 'The Thing'], + ['10', '1982', '7.4', 'Tootsie'], + ['11', '1982', '6.8', 'TRON'], + ['1', '1983', '3.6', 'Jaws 3-D'], + ['2', '1983', '8.1', 'Mickey,s Christmas Carol'], + ['3', '1983', '7.6', 'The Meaning of Life'], + ['4', '1983', '7.4', 'National Lampoon,s Vacation'], + ['5', '1983', '8.3', 'Star Wars: Episode VI - Return of the Jedi'], + ['6', '1983', '8.3', 'Scarface'], + ['7', '1983', '7.5', 'Trading Places'], + ['8', '1983', '5.5', 'Roman Za,ir'], + ['1', '1984', '7.3', 'Beverly Hills Cop'], + ['2', '1984', '7.8', 'Ghostbusters'], + ['3', '1984', '7.3', 'Gremlins'], + ['4', '1984', '7.6', 'Indiana Jones and the Temple of Doom'], + ['5', '1984', '7.2', 'The Karate Kid'], + ['6', '1984', '6.7', 'Police Academy'], + ['7', '1984', '6.6', 'Revenge of the Nerds'], + ['8', '1984', '6.9', 'Romancing the Stone'], + ['9', '1984', '7.7', 'Seksmisja'], + ['10', '1984', '5.9', 'Silent Night, Deadly Night'], + ['11', '1984', '8', 'The Terminator'], + ['12', '1984', '7.2', 'Top Secret!'], + ['13', '1984', '7.4', 'Die unendliche Geschichte'], + ['1', '1985', '6.8', 'Astérix et la surprise de César'], + ['2', '1985', '8.5', 'Back to the Future'], + ['3', '1985', '6.7', 'Commando'], + ['4', '1985', '5.9', 'Death Wish 3'], + ['5', '1985', '7.8', 'The Goonies'], + ['6', '1985', '6.3', 'Mad Max Beyond Thunderdome'], + ['7', '1985', '5.7', 'The Man with One Red Shoe'], + ['8', '1985', '6.2', 'National Lampoon,s European Vacation'], + ['9', '1985', '5.7', 'Police Academy 2: Their First Assignment'], + ['10', '1985', '6.5', 'Rambo: First Blood Part II'], + ['11', '1985', '5.9', 'The Stuff'], + ['12', '1985', '7.5', 'Vabank II, czyli riposta'], + ['1', '1986', '4.8', 'Neon Maniacs'], + ['2', '1986', '8.4', 'Aliens'], + ['3', '1986', '7.1', 'Astérix chez les Bretons'], + ['4', '1986', '6.1', 'Critters'], + ['5', '1986', '5.1', 'Firewalker'], + ['6', '1986', '7.2', 'Highlander'], + ['7', '1986', '7.3', 'The Hitcher'], + ['8', '1986', '6', 'The Karate Kid Part II'], + ['9', '1986', '6.1', 'Pirates'], + ['10', '1986', '8.1', 'Platoon'], + ['11', '1986', '5.3', 'Police Academy 3: Back in Training'], + ['12', '1986', '5.2', 'Rawhead Rex'], + ['13', '1986', '5.7', 'TerrorVision'], + ['1', '1987', '6.7', 'Bad Taste'], + ['2', '1987', '5.2', 'Blood Diner'], + ['3', '1987', '5.4', 'Death Wish 4: The Crackdown'], + ['4', '1987', '6.9', 'Dirty Dancing'], + ['5', '1987', '6.4', 'Dolls'], + ['6', '1987', '8.3', 'Full Metal Jacket'], + ['7', '1987', '7.3', 'Good Morning, Vietnam'], + ['8', '1987', '7.6', 'Lethal Weapon'], + ['9', '1987', '3.6', 'Mutant Hunt'], + ['10', '1987', '4.9', 'Police Academy 4: Citizens on Patrol'], + ['11', '1987', '7.8', 'Predator'], + ['12', '1987', '7.1', 'Spaceballs'], + ['13', '1987', '6', '3 Men and a Baby'], + ['1', '1988', '6', 'Above the Law'], + ['2', '1988', '7.5', 'Beetlejuice'], + ['3', '1988', '7', 'Coming to America'], + ['4', '1988', '5.4', 'Critters 2'], + ['5', '1988', '8.2', 'Die Hard'], + ['6', '1988', '5.6', 'Ernest Saves Christmas'], + ['7', '1988', '7.6', 'A Fish Called Wanda'], + ['8', '1988', '6.1', 'Killer Klowns from Outer Space'], + ['9', '1988', '6', 'Maniac Cop'], + ['10', '1988', '5.3', 'My Stepmother Is an Alien'], + ['11', '1988', '7.6', 'The Naked Gun: From the Files of Police Squad!'], + ['12', '1988', '4.5', 'Police Academy 5: Assignment: Miami Beach'], + ['13', '1988', '7.7', 'Who Framed Roger Rabbit'], + ['14', '1988', '6.8', 'Kogel-mogel'], + ['1', '1989', '6.7', 'All Dogs Go to Heaven'], + ['2', '1989', '7.8', 'Back to the Future Part II'], + ['3', '1989', '7.6', 'Batman'], + ['4', '1989', '6.9', 'Bill & Ted,s Excellent Adventure'], + ['5', '1989', '8.1', 'Dead Poets Society'], + ['6', '1989', '6.4', 'Galimatias, czyli kogel-mogel II'], + ['7', '1989', '6.5', 'Ghostbusters II'], + ['8', '1989', '6.3', 'Honey, I Shrunk the Kids'], + ['9', '1989', '8.2', 'Indiana Jones and the Last Crusade'], + ['10', '1989', '5.1', 'The Karate Kid Part III'], + ['11', '1989', '7.2', 'Lethal Weapon 2'], + ['12', '1989', '5.8', 'Look Who,s Talking'], + ['13', '1989', '7.6', 'National Lampoon,s Christmas Vacation'], + ['14', '1989', '5.7', 'Puppetmaster'], + ['15', '1989', '6.8', 'See No Evil, Hear No Evil'], + ['16', '1989', '6.3', 'Bride of Re-Animator'], + ['1', '1990', '4.6', 'Look Who,s Talking Too'], + ['2', '1990', '7.8', 'Misery'], + ['3', '1990', '7.3', 'Nikita'], + ['4', '1990', '5.3', 'Problem Child'], + ['5', '1990', '5.9', 'The Rookie'], + ['6', '1990', '6.8', 'Teenage Mutant Ninja Turtles'], + ['7', '1990', '7.5', 'Total Recall'], + ['8', '1990', '2.8', 'Troll 2'], + ['9', '1990', '6.4', 'Arachnophobia'], + ['10', '1990', '7.4', 'Back to the Future Part III'], + ['11', '1990', '7.1', 'Die Hard 2'], + ['12', '1990', '7.9', 'Edward Scissorhands'], + ['13', '1990', '5.4', 'Ernest Goes to Jail'], + ['14', '1990', '7.6', 'The Godfather Part III'], + ['15', '1990', '8.7', 'Goodfellas'], + ['16', '1990', '6.4', 'Gremlins 2: The New Batch'], + ['17', '1990', '7', 'The Grifters'], + ['18', '1990', '7.5', 'Home Alone'], + ['19', '1990', '7.6', 'The Hunt for Red October'], + ['20', '1990', '4.2', 'Killer Crocodile 2'], + ['1', '1991', '6.9', 'The Addams Family'], + ['2', '1991', '6.7', 'Backdraft'], + ['3', '1991', '8', 'Beauty and the Beast'], + ['4', '1991', '4.4', 'Critters 3'], + ['5', '1991', '6.7', 'Hot Shots!'], + ['6', '1991', '7.1', 'Lik wong'], + ['7', '1991', '6.9', 'My Girl'], + ['8', '1991', '6.9', 'The Naked Gun 2½: The Smell of Fear'], + ['9', '1991', '6.5', 'Oscar'], + ['10', '1991', '7.2', 'Point Break'], + ['11', '1991', '4.7', 'Problem Child 2'], + ['12', '1991', '6.4', 'The Rocketeer'], + ['13', '1991', '8.6', 'The Silence of the Lambs'], + ['14', '1991', '6', 'Teenage Mutant Ninja Turtles II: The Secret of the Ooze'], + ['15', '1991', '8.5', 'Terminator 2: Judgment Day'], + ['16', '1991', '7.4', 'Thelma & Louise'], + ['1', '1992', '5.6', 'Beethoven'], + ['2', '1992', '7.5', 'Braindead'], + ['3', '1992', '5.2', 'Demonic Toys'], + ['4', '1992', '6.7', 'Home Alone 2: Lost in New York'], + ['5', '1992', '4.8', 'Honey, I Blew Up the Kid'], + ['6', '1992', '6.7', 'Lethal Weapon 3'], + ['7', '1992', '6.5', 'The Mighty Ducks'], + ['8', '1992', '5.3', 'Mom and Dad Save the World'], + ['9', '1992', '7.5', 'Of Mice and Men'], + ['10', '1992', '7.7', 'Psy'], + ['11', '1992', '8.3', 'Reservoir Dogs'], + ['12', '1992', '6.4', 'Sister Act'], + ['13', '1992', '4.2', 'Stop! Or My Mom Will Shoot'], + ['14', '1992', '7.2', 'Twin Peaks: Fire Walk with Me'], + ['15', '1992', '6.5', 'Under Siege'], + ['16', '1992', '6', 'Universal Soldier'], + ['17', '1992', '6.7', 'White Men Can,t Jump'], + ['18', '1992', '7.6', 'Army of Darkness'], + ['1', '1993', '6.5', 'Acción mutante'], + ['2', '1993', '6.7', 'Addams Family Values'], + ['3', '1993', '6.4', 'Cliffhanger'], + ['4', '1993', '5.3', 'Coneheads'], + ['5', '1993', '6.9', 'Cool Runnings'], + ['6', '1993', '6.6', 'Demolition Man'], + ['7', '1993', '5.6', 'Dennis the Menace'], + ['8', '1993', '7.6', 'Falling Down'], + ['9', '1993', '8', 'Groundhog Day'], + ['10', '1993', '6.1', 'Hard Target'], + ['11', '1993', '6.8', 'Hocus Pocus'], + ['12', '1993', '5.9', 'Indecent Proposal'], + ['13', '1993', '6.3', 'Last Action Hero'], + ['14', '1993', '4.3', 'Look Who,s Talking Now'], + ['15', '1993', '3.7', 'Mr. Nanny'], + ['16', '1993', '7', 'Mrs. Doubtfire'], + ['17', '1993', '6.1', 'Loaded Weapon 1'], + ['18', '1993', '6.6', 'The Pelican Brief'], + ['19', '1993', '6.7', 'Robin Hood: Men in Tights'], + ['20', '1993', '8.9', 'Schindler,s List'], + ['21', '1993', '5.5', 'Sister Act 2: Back in the Habit'], + ['22', '1993', '4.8', 'Teenage Mutant Ninja Turtles III'], + ['23', '1993', '7', 'Les visiteurs'], + ['24', '1993', '7.8', 'What,s Eating Gilbert Grape'], + ['1', '1994', '6.9', 'Ace Ventura: Pet Detective'], + ['2', '1994', '6.1', 'Angels in the Outfield'], + ['3', '1994', '6.6', 'Black Beauty'], + ['4', '1994', '7.8', 'Clerks'], + ['5', '1994', '7.3', 'Dumb and Dumber'], + ['6', '1994', '4.9', 'The Flintstones'], + ['7', '1994', '8.8', 'Forrest Gump'], + ['8', '1994', '7.6', 'Interview with the Vampire: The Vampire Chronicles'], + ['9', '1994', '4.6', 'Junior'], + ['10', '1994', '5.9', 'Lassie'], + ['11', '1994', '8.5', 'The Lion King'], + ['12', '1994', '6.3', 'The Little Rascals'], + ['13', '1994', '8.6', 'Léon'], + ['14', '1994', '6.9', 'The Mask'], + ['15', '1994', '7', 'Maverick'], + ['16', '1994', '6.5', 'Naked Gun 33 1/3: The Final Insult'], + ['17', '1994', '7.3', 'Natural Born Killers'], + ['18', '1994', '4.4', 'The Next Karate Kid'], + ['19', '1994', '3.4', 'Police Academy: Mission to Moscow'], + ['20', '1994', '6.8', 'Psy 2: Ostatnia krew'], + ['21', '1994', '8.9', 'Pulp Fiction'], + ['22', '1994', '6.4', 'The Santa Clause'], + ['23', '1994', '9.3', 'The Shawshank Redemption'], + ['24', '1994', '7.2', 'Speed'], + ['1', '1995', '6.4', 'Ace Ventura: When Nature Calls'], + ['2', '1995', '7.6', 'Apollo 13'], + ['3', '1995', '6.8', 'Babe'], + ['4', '1995', '8.4', 'Braveheart'], + ['5', '1995', '8.2', 'Casino'], + ['6', '1995', '6.1', 'Casper'], + ['7', '1995', '6.5', 'Dangerous Minds'], + ['8', '1995', '7.2', 'Desperado'], + ['9', '1995', '7.6', 'Die Hard: With a Vengeance'], + ['10', '1995', '6.8', 'Four Rooms'], + ['11', '1995', '7.3', 'Friday'], + ['12', '1995', '5.9', 'It Takes Two'], + ['13', '1995', '7', 'Jumanji'], + ['14', '1995', '7.2', 'Mallrats'], + ['15', '1995', '5.6', 'Money Train'], + ['16', '1995', '5.8', 'Mortal Kombat'], + ['17', '1995', '7.4', 'Nic smiesznego'], + ['18', '1995', '6.3', 'Nick of Time'], + ['19', '1995', '6.7', 'Pocahontas'], + ['20', '1995', '3.3', 'Problem Child 3: Junior in Love'], + ['21', '1995', '7.1', 'Pulkownik Kwiatkowski'], + ['22', '1995', '6.4', 'The Quick and the Dead'], + ['23', '1995', '8.6', 'Se7en'], + ['24', '1995', '4.8', 'Slam Dunk Ernest'], + ['25', '1995', '8.3', 'Toy Story'], + ['26', '1995', '8', 'Twelve Monkeys'], + ['27', '1995', '5.5', 'Under Siege 2: Dark Territory'], + ['28', '1995', '6.2', 'Waterworld'], + ['29', '1995', '5.4', 'It Was Him or Us'], + ['1', '1996', '5.7', '101 Dalmatians'], + ['2', '1996', '5.3', 'Bogus'], + ['3', '1996', '6.1', 'The Cable Guy'], + ['4', '1996', '5.6', 'Chain Reaction'], + ['5', '1996', '6.6', 'Courage Under Fire'], + ['6', '1996', '6.8', 'The Crucible'], + ['7', '1996', '5.9', 'Daylight'], + ['8', '1996', '6.5', 'DragonHeart'], + ['9', '1996', '2.6', 'Ed'], + ['10', '1996', '5.2', 'First Kid'], + ['11', '1996', '5.3', 'Flipper'], + ['12', '1996', '7.2', 'From Dusk Till Dawn'], + ['13', '1996', '7', 'Happy Gilmore'], + ['14', '1996', '7', 'Independence Day'], + ['15', '1996', '6.8', 'The Long Kiss Goodnight'], + ['16', '1996', '6.3', 'Mars Attacks!'], + ['17', '1996', '7.1', 'Mission: Impossible'], + ['18', '1996', '5.6', 'The Nutty Professor'], + ['19', '1996', '6.7', 'Ransom'], + ['20', '1996', '7.4', 'The Rock'], + ['21', '1996', '6.4', 'Space Jam'], + ['22', '1996', '5.3', 'Spy Hard'], + ['23', '1996', '8.2', 'Trainspotting'], + ['24', '1996', '6.3', 'Twister'], + ['1', '1997', '6.5', 'Air Force One'], + ['2', '1997', '7', 'Austin Powers: International Man of Mystery'], + ['3', '1997', '6.4', 'Bean'], + ['4', '1997', '5.5', 'Beverly Hills Ninja'], + ['5', '1997', '8.6', 'La vita è bella'], + ['6', '1997', '7.3', 'Chasing Amy'], + ['7', '1997', '6.8', 'Con Air'], + ['8', '1997', '6.7', 'Conspiracy Theory'], + ['9', '1997', '5.9', 'Dante,s Peak'], + ['10', '1997', '7.5', 'The Devil,s Advocate'], + ['11', '1997', '4.7', 'Double Team'], + ['12', '1997', '4.8', 'Ernest Goes to Africa'], + ['13', '1997', '7.7', 'The Fifth Element'], + ['14', '1997', '5.2', 'Flubber'], + ['15', '1997', '5.9', 'G.I. Jane'], + ['16', '1997', '4.4', 'Home Alone 3'], + ['17', '1997', '7.5', 'Jackie Brown'], + ['18', '1997', '6.6', 'Kiss the Girls'], + ['19', '1997', '6.9', 'Liar Liar'], + ['20', '1997', '7.3', 'Men in Black'], + ['21', '1997', '3.7', 'Mortal Kombat: Annihilation'], + ['22', '1997', '3.9', 'Mr. Magoo'], + ['23', '1997', '6.2', 'The Saint'], + ['24', '1997', '7.1', 'Seven Years in Tibet'], + ['25', '1997', '3.8', 'Speed 2: Cruise Control'], + ['26', '1997', '7.8', 'Titanic'], + ['27', '1997', '6.5', 'Tomorrow Never Dies'], + ['28', '1997', '7.1', 'Wag the Dog'], + ['29', '1997', '7.2', 'Cube'], + ['30', '1997', '7.6', 'Kiler'], + ['1', '1998', '8.1', 'The Big Lebowski'], + ['2', '1998', '8.1', 'Crna macka, beli macor'], + ['3', '1998', '5.4', 'Doctor Dolittle'], + ['4', '1998', '7.2', 'Meet Joe Black'], + ['5', '1998', '8.1', 'The Truman Show'], + ['6', '1998', '8.5', 'American History X'], + ['7', '1998', '6.6', 'Antz'], + ['8', '1998', '6.7', 'Armageddon'], + ['9', '1998', '5.8', 'Babe: Pig in the City'], + ['10', '1998', '7.1', 'Blade'], + ['11', '1998', '7.2', 'A Bug,s Life'], + ['12', '1998', '7.3', 'Enemy of the State'], + ['13', '1998', '7.7', 'Fear and Loathing in Las Vegas'], + ['14', '1998', '5.3', 'Godzilla'], + ['15', '1998', '8.2', 'Lock, Stock and Two Smoking Barrels'], + ['16', '1998', '6.5', 'The Man in the Iron Mask'], + ['17', '1998', '6.1', 'Mercury Rising'], + ['18', '1998', '6.5', 'The Parent Trap'], + ['19', '1998', '7', 'Rush Hour'], + ['20', '1998', '8.6', 'Saving Private Ryan'], + ['21', '1998', '6.5', 'U.S. Marshals'], + ['22', '1998', '6.1', 'Les couloirs du temps: Les visiteurs II'], + ['23', '1998', '6.1', 'Wrongfully Accused'], + ['24', '1998', '7', 'The X Files'], + ['25', '1998', '6.6', 'Lethal Weapon 4'], + ['26', '1998', '4.9', 'Blackjack'], + ['27', '1998', '6.6', 'You,ve Got Mail'], + ['28', '1998', '7.1', 'There,s Something About Mary'], + ['29', '1998', '4.4', 'Dennis the Menace Strikes Again!'], + ['30', '1998', '4.8', 'Ernest in the Army'], + ['31', '1998', '7.4', 'Pi'], + ['32', '1998', '5.3', 'Brave New World'], + ['33', '1998', '7', 'Taxi'], + ['34', '1998', '6.1', 'Gekijô-ban poketto monsutâ - Myûtsû no gyakushû'], + ['35', '1998', '6.5', 'Sun faa sau si'], + ['1', '1999', '7.9', 'Toy Story 2'], + ['2', '1999', '7.3', 'Dogma'], + ['3', '1999', '6.6', 'The 13th Warrior'], + ['4', '1999', '8.6', 'The Green Mile'], + ['5', '1999', '7.3', 'Tarzan'], + ['6', '1999', '7.2', 'Titus'], + ['7', '1999', '6.5', 'Star Wars: Episode I - The Phantom Menace'], + ['8', '1999', '7.1', 'Notting Hill'], + ['9', '1999', '8.7', 'The Matrix'], + ['10', '1999', '5.9', 'Astérix & Obélix contre César'], + ['11', '1999', '6.5', '8MM'], + ['12', '1999', '8.8', 'Fight Club'], + ['13', '1999', '6.7', 'The Ninth Gate'], + ['14', '1999', '6.4', 'The World Is Not Enough'], + ['15', '1999', '7.8', 'The Boondock Saints'], + ['16', '1999', '6.7', 'The Bone Collector'], + ['17', '1999', '5.8', 'Deep Blue Sea'], + ['18', '1999', '6.4', 'Joan of Arc'], + ['19', '1999', '7.8', 'South Park: Bigger, Longer & Uncut'], + ['20', '1999', '5.5', 'Runaway Bride'], + ['21', '1999', '7', 'American Pie'], + ['22', '1999', '5.9', 'Stuart Little'], + ['23', '1999', '8', 'The Straight Story'], + ['24', '1999', '8.1', 'The Sixth Sense'], + ['25', '1999', '8.4', 'American Beauty'], + ['26', '1999', '6.1', 'Pan Tadeusz'], + ['27', '1999', '7.3', 'Galaxy Quest'], + ['28', '1999', '6.4', 'The Blair Witch Project'], + ['29', '1999', '6.7', 'Kilerów 2-óch'], + ['1', '2000', '6.1', 'Mission: Impossible II'], + ['2', '2000', '7.4', 'X-Men'], + ['3', '2000', '7.1', 'Pitch Black'], + ['4', '2000', '6.6', 'U-571'], + ['5', '2000', '7.6', 'American Psycho'], + ['6', '2000', '4.4', 'Nutty Professor II: The Klumps'], + ['7', '2000', '3.5', '2001: A Space Travesty'], + ['8', '2000', '5.7', 'The Art of War'], + ['9', '2000', '4.7', 'Air Bud 3: World Pup'], + ['10', '2000', '7.8', 'Cast Away'], + ['11', '2000', '6.6', 'The Beach'], + ['12', '2000', '6.1', 'How the Grinch Stole Christmas'], + ['13', '2000', '8.5', 'Gladiator'], + ['14', '2000', '6.2', 'Scary Movie'], + ['15', '2000', '5.9', 'Gossip'], + ['16', '2000', '6.4', 'The Perfect Storm'], + ['17', '2000', '8.3', 'Requiem for a Dream'], + ['18', '2000', '6.6', 'Me, Myself & Irene'], + ['19', '2000', '6.5', 'Taxi 2'], + ['20', '2000', '6.6', 'Shanghai Noon'], + ['21', '2000', '6.5', 'Gone in Sixty Seconds'], + ['22', '2000', '7.9', 'Wo hu cang long'], + ['23', '2000', '5.6', 'The Skulls'], + ['24', '2000', '7.3', 'Erin Brockovich'], + ['25', '2000', '7.2', 'Love & Basketball'], + ['26', '2000', '5.5', 'Kevin & Perry Go Large'], + ['27', '2000', '6.4', 'What Women Want'], + ['28', '2000', '8.3', 'Snatch'], + ['29', '2000', '8.5', 'Memento'], + ['30', '2000', '5.8', 'The Great Gatsby'], + ['31', '2000', '4.9', '102 Dalmatians'], + ['32', '2000', '6.5', 'Road Trip'], + ['33', '2000', '7.3', 'Unbreakable'], + ['34', '2000', '7.6', 'Chlopaki nie placza'], + ['35', '2000', '5', 'Harte Jungs'], + ['36', '2000', '7.3', 'Chocolat'], + ['37', '2000', '5.5', 'Dude, Where,s My Car?'], + ['1', '2001', '8.8', 'The Lord of the Rings: The Fellowship of the Ring'], + ['2', '2001', '7.9', 'Shrek'], + ['3', '2001', '5.7', 'Planet of the Apes'], + ['4', '2001', '5.8', 'Lara Croft: Tomb Raider'], + ['5', '2001', '6.4', 'Behind Enemy Lines'], + ['6', '2001', '5.8', 'Just Visiting'], + ['7', '2001', '8.1', 'Monsters, Inc.'], + ['8', '2001', '7.6', 'Moulin Rouge!'], + ['9', '2001', '6.1', 'Pearl Harbor'], + ['10', '2001', '5.5', 'Spy Kids'], + ['11', '2001', '7.6', 'The Others'], + ['12', '2001', '6.8', 'The Fast and the Furious'], + ['13', '2001', '4.7', 'Dr. Dolittle 2'], + ['14', '2001', '7.8', 'Ocean,s Eleven'], + ['15', '2001', '7.6', 'Harry Potter and the Sorcerer,s Stone'], + ['16', '2001', '5.6', 'Exit Wounds'], + ['17', '2001', '6.2', 'The Hole'], + ['18', '2001', '7', 'Le placard'], + ['19', '2001', '8.1', 'Donnie Darko'], + ['20', '2001', '6.3', 'The Princess Diaries'], + ['21', '2001', '6.7', 'Der Schuh des Manitu'], + ['22', '2001', '6.3', 'Legally Blonde'], + ['23', '2001', '6.1', 'Evolution'], + ['24', '2001', '6.4', 'American Pie 2'], + ['25', '2001', '5.3', 'Scary Movie 2'], + ['26', '2001', '5.2', 'W pustyni i w puszczy'], + ['27', '2001', '6.9', 'Jay and Silent Bob Strike Back'], + ['28', '2001', '7.7', 'Black Hawk Down'], + ['29', '2001', '4.8', 'Black Knight'], + ['30', '2001', '5.9', 'The One'], + ['31', '2001', '8.2', 'A Beautiful Mind'], + ['32', '2001', '7.4', 'K-PAX'], + ['33', '2001', '5.7', 'Not Another Teen Movie'], + ['34', '2001', '6.3', 'How High'], + ['35', '2001', '7.3', 'Siu Lam juk kau'], + ['36', '2001', '5.2', 'Requiem'], + ['37', '2001', '6.8', 'Poranek kojota'], + ['38', '2001', '5.1', 'Jesus Christ Vampire Hunter'], + ['1', '2002', '6.1', 'Men in Black II'], + ['2', '2002', '6.6', 'Star Wars: Episode II - Attack of the Clones'], + ['3', '2002', '7.3', 'Spider-Man'], + ['4', '2002', '6.4', 'The Sum of All Fears'], + ['5', '2002', '8.7', 'The Lord of the Rings: The Two Towers'], + ['6', '2002', '7.1', 'Phone Booth'], + ['7', '2002', '7.5', 'Equilibrium'], + ['8', '2002', '6.6', 'Astérix & Obélix: Mission Cléopâtre'], + ['9', '2002', '8.5', 'The Pianist'], + ['10', '2002', '6.2', 'Reign of Fire'], + ['11', '2002', '5.1', 'The Sweetest Thing'], + ['12', '2002', '6.8', 'Panic Room'], + ['13', '2002', '7.9', 'The Bourne Identity'], + ['14', '2002', '5.7', 'Repli-Kate'], + ['15', '2002', '8.1', 'Catch Me If You Can'], + ['16', '2002', '6.7', 'K-19: The Widowmaker'], + ['17', '2002', '7.5', 'Ice Age'], + ['18', '2002', '5.5', 'The Scorpion King'], + ['19', '2002', '5.5', 'Showtime'], + ['20', '2002', '6.2', 'Ali G Indahouse'], + ['21', '2002', '6.7', 'Signs'], + ['22', '2002', '6.8', 'The Transporter'], + ['23', '2002', '7.4', 'Harry Potter and the Chamber of Secrets'], + ['24', '2002', '4.5', 'Knallharte Jungs'], + ['25', '2002', '5.9', 'xXx'], + ['26', '2002', '7.1', 'The Ring'], + ['27', '2002', '7.1', '8 Mile'], + ['28', '2002', '7.2', 'Chicago'], + ['29', '2002', '6.2', 'Kariera Nikosia Dyzmy'], + ['30', '2002', '5.7', 'Zemsta'], + ['31', '2002', '5.5', 'E=mc2'], + ['32', '2002', '8.1', 'Dzien swira'], + ['33', '2002', '4', 'Haker'], + ['34', '2002', '6.7', 'Saekjeuk shigong'], + ['35', '2002', '7.4', 'Gone Nutty'], + ['36', '2002', '7.4', 'Katedra'], + ['1', '2003', '8.9', 'The Lord of the Rings: The Return of the King'], + ['2', '2003', '6.6', 'Bad Boys II'], + ['3', '2003', '6.3', 'Terminator 3: Rise of the Machines'], + ['4', '2003', '7.2', 'The Matrix Reloaded'], + ['5', '2003', '6.7', 'The Matrix Revolutions'], + ['6', '2003', '8.1', 'Finding Nemo'], + ['7', '2003', '8.1', 'Kill Bill: Vol. 1'], + ['8', '2003', '6.2', 'Johnny English'], + ['9', '2003', '5.6', 'Hulk'], + ['10', '2003', '7.4', 'X2'], + ['11', '2003', '6.6', 'The Recruit'], + ['12', '2003', '5.8', 'Taxi 3'], + ['13', '2003', '6.2', 'Shanghai Knights'], + ['14', '2003', '7.7', 'Good Bye Lenin!'], + ['15', '2003', '5.5', 'Scary Movie 3'], + ['16', '2003', '7.2', 'The Dreamers'], + ['17', '2003', '6.6', 'Tears of the Sun'], + ['18', '2003', '5.7', 'The In-Laws'], + ['19', '2003', '6.7', 'Bruce Almighty'], + ['20', '2003', '2', 'House of the Dead'], + ['21', '2003', '7', 'The Italian Job'], + ['22', '2003', '8', 'Big Fish'], + ['23', '2003', '5.9', '2 Fast 2 Furious'], + ['24', '2003', '6.2', 'The Texas Chainsaw Massacre'], + ['25', '2003', '7.3', 'Matchstick Men'], + ['26', '2003', '8', 'Pirates of the Caribbean: The Curse of the Black Pearl'], + ['27', '2003', '6.3', 'American Wedding'], + ['28', '2003', '7.4', 'The Animatrix'], + ['29', '2003', '3.4', 'Dumb and Dumberer: When Harry Met Lloyd'], + ['30', '2003', '7.1', 'The School of Rock'], + ['31', '2003', '4.7', 'Legally Blonde 2: Red, White & Blonde'], + ['32', '2003', '7.8', 'Lost in Translation'], + ['33', '2003', '5.8', 'Stuck on You'], + ['34', '2003', '6.1', 'Show'], + ['35', '2003', '3.7', 'The Room'], + ['36', '2003', '5.8', 'Zróbmy sobie wnuka'], + ['1', '2004', '7.7', 'The Butterfly Effect'], + ['2', '2004', '6.7', 'The Chronicles of Riddick'], + ['3', '2004', '7.2', 'Shrek 2'], + ['4', '2004', '7.9', 'Harry Potter and the Prisoner of Azkaban'], + ['5', '2004', '6', 'Shark Tale'], + ['6', '2004', '7.3', 'Spider-Man 2'], + ['7', '2004', '8', 'The Incredibles'], + ['8', '2004', '6.6', 'The Lion King 1½'], + ['9', '2004', '6.4', 'The Day After Tomorrow'], + ['10', '2004', '5.9', 'Around the World in 80 Days'], + ['11', '2004', '7.9', 'The Notebook'], + ['12', '2004', '7.2', 'The Passion of the Christ'], + ['13', '2004', '8.3', 'Eternal Sunshine of the Spotless Mind'], + ['14', '2004', '6.8', '50 First Dates'], + ['15', '2004', '6.3', 'Walking Tall'], + ['16', '2004', '6.6', 'EuroTrip'], + ['17', '2004', '5', 'Garfield'], + ['18', '2004', '5.8', 'RRRrrrr!!!'], + ['19', '2004', '7.2', 'Anchorman: The Legend of Ron Burgundy'], + ['20', '2004', '7.9', 'Shaun of the Dead'], + ['21', '2004', '7.1', 'Harold & Kumar Go to White Castle'], + ['22', '2004', '6.9', 'National Treasure'], + ['23', '2004', '5.6', 'AVP: Alien vs. Predator'], + ['24', '2004', '7.7', 'The Bourne Supremacy'], + ['25', '2004', '7.8', 'Kung fu'], + ['26', '2004', '6.9', 'Napoleon Dynamite'], + ['27', '2004', '8', 'Kill Bill: Vol. 2'], + ['28', '2004', '4.7', '7 Zwerge'], + ['29', '2004', '4.8', 'Frankenfish'], + ['30', '2004', '7.6', 'Saw'], + ['31', '2004', '5.9', 'The Grudge'], + ['32', '2004', '8.1', 'Million Dollar Baby'], + ['33', '2004', '7.7', 'Wesele'], + ['34', '2004', '6.8', 'Mój Nikifor'], + ['35', '2004', '3.5', 'The Ring Thing'], + ['36', '2004', '8', 'The Trailer Park Boys Christmas Special'], + ['37', '2004', '7.7', 'Sztuka spadania'], + ['1', '2005', '5.7', 'Fantastic Four'], + ['2', '2005', '7.6', 'Star Wars: Episode III - Revenge of the Sith'], + ['3', '2005', '7.7', 'Harry Potter and the Goblet of Fire'], + ['4', '2005', '7', 'An Unfinished Life'], + ['5', '2005', '6.9', 'Madagascar'], + ['6', '2005', '6.5', 'Mr. & Mrs. Smith'], + ['7', '2005', '6.9', 'The Chronicles of Narnia: The Lion, the Witch and the Wardrobe'], + ['8', '2005', '6.5', 'Revolver'], + ['9', '2005', '6.6', 'Charlie and the Chocolate Factory'], + ['10', '2005', '4.7', 'Are We There Yet?'], + ['11', '2005', '5.8', 'Chicken Little'], + ['12', '2005', '6.8', 'The Hitchhiker,s Guide to the Galaxy'], + ['13', '2005', '8.2', 'Batman Begins'], + ['14', '2005', '5.2', 'Racing Stripes'], + ['15', '2005', '6', 'The Amityville Horror'], + ['16', '2005', '6.3', 'Transporter 2'], + ['17', '2005', '7.4', 'Memoirs of a Geisha'], + ['18', '2005', '4.8', 'Herbie Fully Loaded'], + ['19', '2005', '8', 'Sin City'], + ['20', '2005', '6.7', 'The Exorcism of Emily Rose'], + ['21', '2005', '7', 'Mrs Henderson Presents'], + ['22', '2005', '3.4', 'Mansquito'], + ['23', '2005', '8.2', 'V for Vendetta'], + ['24', '2005', '6.9', 'Karol, un uomo diventato Papa'], + ['25', '2005', '5.1', 'Band Camp'], + ['26', '2005', '6.5', 'Hoodwinked!'], + ['27', '2005', '7.7', 'Jack-Jack Attack'], + ['28', '2005', '6', 'Czas surferów'], + ['29', '2005', '6.9', 'Skazany na bluesa'], + ['30', '2005', '7.4', 'The Madagascar Penguins in a Christmas Caper'], + ['1', '2006', '6.7', 'Over the Hedge'], + ['2', '2006', '5.1', 'Scary Movie 4'], + ['3', '2006', '6.8', 'Tenacious D in The Pick of Destiny'], + ['4', '2006', '6.7', 'X-Men: The Last Stand'], + ['5', '2006', '8', 'Casino Royale'], + ['6', '2006', '7.3', 'Pirates of the Caribbean: Dead Man,s Chest'], + ['7', '2006', '6.6', 'Idiocracy'], + ['8', '2006', '7.5', 'Perfume: The Story of a Murderer'], + ['9', '2006', '8.5', 'The Departed'], + ['10', '2006', '6.6', 'Talladega Nights: The Ballad of Ricky Bobby'], + ['11', '2006', '7.7', '300'], + ['12', '2006', '7.4', 'Clerks II'], + ['13', '2006', '7.3', 'Trailer Park Boys: The Movie'], + ['14', '2006', '4.4', 'Little Man'], + ['15', '2006', '6.8', 'Ice Age: The Meltdown'], + [ + '16', + '2006', + '7.3', + 'Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan' + ], + ['17', '2006', '5.1', 'Eragon'], + ['18', '2006', '5', 'Garfield: A Tail of Two Kitties'], + ['19', '2006', '7.7', 'The Last King of Scotland'], + ['20', '2006', '7', 'Grandma,s Boy'], + ['21', '2006', '4.5', 'The Butterfly Effect 2'], + ['22', '2006', '6.9', 'The Devil Wears Prada'], + ['23', '2006', '6.2', 'Poultrygeist: Night of the Chicken Dead'], + ['24', '2006', '6.6', 'Step Up'], + ['25', '2006', '6', 'The Fast and the Furious: Tokyo Drift'], + ['26', '2006', '7.7', 'The Ron Clark Story'], + ['27', '2006', '7', 'Crank'], + ['28', '2006', '4.8', 'Van Wilder 2: The Rise of Taj'], + ['29', '2006', '8.5', 'The Prestige'], + ['30', '2006', '7.4', 'The Ultimate Gift'], + ['31', '2006', '6.5', 'Karol, un Papa rimasto uomo'], + ['32', '2006', '5.2', 'The Naked Mile'], + ['1', '2007', '7', 'Death Proof'], + ['2', '2007', '7', 'Rezerwat'], + ['3', '2007', '7.1', 'Planet Terror'], + ['4', '2007', '5.8', 'Ranczo Wilkowyje'], + ['5', '2007', '7.5', 'Harry Potter and the Order of the Phoenix'], + ['6', '2007', '7', 'Breach'], + ['7', '2007', '6.1', 'Shrek the Third'], + ['8', '2007', '6.2', 'Spider-Man 3'], + ['9', '2007', '6.9', 'Elizabeth: The Golden Age'], + ['10', '2007', '7.1', 'P.S. I Love You'], + ['11', '2007', '6.3', 'Resident Evil: Extinction'], + ['12', '2007', '8', 'The Bourne Ultimatum'], + ['13', '2007', '6.3', 'Blades of Glory'], + ['14', '2007', '7.1', 'Pirates of the Caribbean: At World,s End'], + ['15', '2007', '6.8', '1408'], + ['16', '2007', '7.3', 'The Simpsons Movie'], + ['17', '2007', '6.3', 'Hitman'], + ['18', '2007', '7.3', 'Michael Clayton'], + ['19', '2007', '8.1', 'No Country for Old Men'], + ['20', '2007', '7.2', 'I Am Legend'], + ['21', '2007', '8.1', 'Into the Wild'], + ['22', '2007', '4.1', 'The List'], + ['23', '2007', '5.6', 'Taxi 4'], + ['24', '2007', '6.5', 'Funny Games'], + ['25', '2007', '7.4', 'The Bucket List'], + ['26', '2007', '7.6', 'Superbad'], + ['27', '2007', '6.8', 'Walk Hard: The Dewey Cox Story'], + ['28', '2007', '7.1', 'Katyn'], + ['29', '2007', '6.5', 'Shrek the Halls'], + ['30', '2007', '5.4', 'Beta House'], + ['1', '2008', '5.6', 'Sex and the City'], + ['2', '2008', '8', 'Slumdog Millionaire'], + ['3', '2008', '7', 'Cloverfield'], + ['4', '2008', '7.6', 'Die Welle'], + ['5', '2008', '5.2', 'Twilight'], + ['6', '2008', '7.6', 'A Matter of Loaf and Death'], + ['7', '2008', '5.4', 'Lejdis'], + ['8', '2008', '6', 'Tôkyô zankoku keisatsu'], + ['9', '2008', '8.1', 'Gran Torino'], + ['10', '2008', '3.7', 'NYC: Tornado Terror'], + ['11', '2008', '8', 'Yip Man'], + ['12', '2008', '5.8', 'Ile wazy kon trojanski?'], + ['13', '2008', '5.8', 'Swiadectwo'], + ['14', '2008', '7.9', 'Iron Man'], + ['15', '2008', '6.3', 'The Onion Movie'], + ['16', '2008', '7.8', 'The Curious Case of Benjamin Button'], + ['17', '2008', '6.5', 'Get Smart'], + ['18', '2008', '6.4', 'Hancock'], + ['19', '2008', '5.4', 'Max Payne'], + ['20', '2008', '9', 'The Dark Knight'], + ['21', '2008', '6.6', 'Harold & Kumar Escape from Guantanamo Bay'], + ['22', '2008', '6.7', 'Wanted'], + ['23', '2008', '5.3', 'My Mom,s New Boyfriend'], + ['24', '2008', '7.9', 'In Bruges'], + ['25', '2008', '6.7', 'The Incredible Hulk'], + ['26', '2008', '6.6', 'Quantum of Solace'], + ['27', '2008', '8.4', 'WALL·E'], + ['28', '2008', '7.8', 'The Boy in the Striped Pyjamas'], + ['29', '2008', '7.8', 'Taken'], + ['30', '2008', '7', 'Tropic Thunder'], + ['31', '2008', '4.1', 'Zombie Strippers!'], + ['32', '2008', '7.6', 'The Reader'], + ['1', '2009', '7.7', '(500) Days of Summer'], + ['2', '2009', '6.7', 'The Proposal'], + ['3', '2009', '4.9', 'Year One'], + ['4', '2009', '5.8', 'G.I. Joe: The Rise of Cobra'], + ['5', '2009', '8.2', 'Up'], + ['6', '2009', '6.8', 'The Imaginarium of Doctor Parnassus'], + ['7', '2009', '6.4', 'The Invention of Lying'], + ['8', '2009', '5.2', 'Paul Blart: Mall Cop'], + ['9', '2009', '7.7', 'The Hangover'], + ['10', '2009', '7.8', 'Män som hatar kvinnor'], + ['11', '2009', '7.9', 'District 9'], + ['12', '2009', '7', 'Public Enemies'], + ['13', '2009', '6.6', 'Today,s Special'], + ['14', '2009', '7.3', 'An Education'], + ['15', '2009', '7.2', 'Whatever Works'], + ['16', '2009', '5.8', '2012'], + ['17', '2009', '7.4', 'Black Dynamite'], + ['18', '2009', '6.6', 'The Greatest'], + ['19', '2009', '6.2', 'The Men Who Stare at Goats'], + ['20', '2009', '6.5', 'Banlieue 13: Ultimatum'], + ['21', '2009', '6.3', 'The Boondock Saints II: All Saints Day'], + ['22', '2009', '4.9', 'Road Trip: Beer Pong'], + ['23', '2009', '7.4', 'Trailer Park Boys: Countdown to Liquor Day'], + ['24', '2009', '8.4', 'Iron Maiden: Flight 666'], + ['25', '2009', '7.3', 'Kynodontas'], + ['26', '2009', '5.3', 'Robo-geisha'], + ['27', '2009', '4.8', 'American Pie Presents the Book of Love'], + ['28', '2009', '5.6', 'Kyûketsu Shôjo tai Shôjo Furanken'], + ['29', '2009', '4.4', 'The Human Centipede (First Sequence)'], + ['30', '2009', '7.4', 'Dom zly'], + ['31', '2009', '4.8', 'Wlatcy móch: Cmoki, czopki i mondzioly'], + ['32', '2009', '8.3', 'Inglourious Basterds'], + ['33', '2009', '7.6', 'Watchmen'], + ['34', '2009', '7.6', 'Harry Potter and the Half-Blood Prince'], + ['35', '2009', '6.6', 'X-Men Origins: Wolverine'], + ['36', '2009', '6.1', 'Push'], + ['37', '2009', '7.1', '9'], + ['38', '2009', '7.8', 'Mr. Nobody'], + ['39', '2009', '7.1', 'Brothers'], + ['40', '2009', '5.6', 'The Pink Panther 2'], + ['41', '2009', '6.6', 'Antichrist'], + ['42', '2009', '5.8', 'Brüno'], + ['43', '2009', '6.4', '17 Again'], + ['44', '2009', '6.3', 'Bandslam'], + ['45', '2009', '6.3', 'Surrogates'], + ['46', '2009', '7.6', 'Sherlock Holmes'], + ['1', '2010', '7.3', 'Megamind'], + ['2', '2010', '6.5', 'Alice in Wonderland'], + ['3', '2010', '6.9', 'The Book of Eli'], + ['4', '2010', '8.1', 'Shutter Island'], + ['5', '2010', '7', 'Iron Man 2'], + ['6', '2010', '6.5', 'Due Date'], + ['7', '2010', '7.1', 'RED'], + ['8', '2010', '7.6', 'Kick-Ass'], + ['9', '2010', '5.1', 'Srpski film'], + ['10', '2010', '7.1', 'Easy A'], + ['11', '2010', '7.7', 'The Social Network'], + ['12', '2010', '7.1', 'Enthiran'], + ['13', '2010', '6.5', 'The Expendables'], + ['14', '2010', '8.8', 'Inception'], + ['15', '2010', '6.7', 'The Other Guys'], + ['16', '2010', '8', 'The King,s Speech'], + ['17', '2010', '6.8', 'The 3rd Letter'], + ['18', '2010', '5.8', 'Rubber'], + ['19', '2010', '7.1', 'Rózyczka'], + ['20', '2010', '6.8', 'The A-Team'], + ['21', '2010', '8.3', 'Toy Story 3'], + ['22', '2010', '7.5', 'Scott Pilgrim vs. the World'], + ['23', '2010', '7.6', 'The Town'], + ['24', '2010', '5.8', 'Eat Pray Love'], + ['25', '2010', '7.7', 'Harry Potter and the Deathly Hallows: Part 1'], + ['26', '2010', '8', 'Black Swan'], + ['27', '2010', '6.6', 'Machete'], + ['1', '2011', '8.1', 'Harry Potter and the Deathly Hallows: Part 2'], + ['2', '2011', '5.5', 'Your Highness'], + ['3', '2011', '6.3', 'A Very Harold & Kumar 3D Christmas'], + ['4', '2011', '7.7', 'X: First Class'], + ['5', '2011', '6.6', 'Pirates of the Caribbean: On Stranger Tides'], + ['6', '2011', '7.6', 'Rise of the Planet of the Apes'], + ['7', '2011', '6.5', 'The Hangover Part II'], + ['8', '2011', '7.3', 'The Best Exotic Marigold Hotel'], + ['9', '2011', '8.1', 'The Help'], + ['10', '2011', '6.9', 'Horrible Bosses'], + ['11', '2011', '7.5', 'Sherlock Holmes: A Game of Shadows'], + ['12', '2011', '6.4', 'Flypaper'], + ['13', '2011', '7.8', 'The Girl with the Dragon Tattoo'], + ['14', '2011', '6.1', '30 Minutes or Less'], + ['15', '2011', '6.1', 'Hobo with a Shotgun'], + ['16', '2011', '5.7', 'A Few Best Men'], + ['17', '2011', '8.5', 'Intouchables'], + ['18', '2011', '4.8', 'A Cadaver Christmas'], + ['19', '2011', '5.7', 'Chillerama'], + ['20', '2011', '4.2', '1920 Bitwa Warszawska'], + ['21', '2011', '4.7', 'Treasure Guards'], + ['22', '2011', '6.7', 'Sala samobójców'], + ['23', '2011', '6.9', 'Captain America: The First Avenger'], + ['24', '2011', '8.5', 'Samsara'], + ['25', '2011', '7.8', 'Drive'], + ['26', '2011', '7', 'Thor'], + ['1', '2012', '7.8', 'Skyfall'], + ['2', '2012', '7.3', 'Lawless'], + ['3', '2012', '7.2', '21 Jump Street'], + ['4', '2012', '7.4', 'Looper'], + ['5', '2012', '7.1', 'Dredd'], + ['6', '2012', '8.4', 'The Dark Knight Rises'], + ['7', '2012', '7.2', 'The Hunger Games'], + ['8', '2012', '6.3', 'Taken 2'], + ['9', '2012', '6.8', 'Men in Black 3'], + ['10', '2012', '7', 'Get the Gringo'], + ['11', '2012', '5.3', 'Astérix & Obélix: Au service de sa Majesté'], + ['12', '2012', '6.7', 'American Reunion'], + ['13', '2012', '6.7', 'Project X'], + ['14', '2012', '6.9', 'Ted'], + ['15', '2012', '6.4', 'The Dictator'], + ['16', '2012', '5.7', 'Wrath of the Titans'], + ['17', '2012', '6.6', 'The Expendables 2'], + ['18', '2012', '7.1', 'The Words'], + ['19', '2012', '8.4', 'Django Unchained'], + ['20', '2012', '7.6', 'End of Watch'], + ['21', '2012', '4.5', 'Mac & Devin Go to High School'], + ['22', '2012', '6.8', 'Sinister'], + ['23', '2012', '8.3', 'Jagten'], + ['24', '2012', '3.2', 'Nazis at the Center of the Earth'], + ['25', '2012', '7', 'Rasskazy'], + ['26', '2012', '3.1', 'Abraham Lincoln vs. Zombies'], + ['27', '2012', '8.3', 'Paperman'], + ['28', '2012', '5.8', 'Deddo sushi'], + ['29', '2012', '7.3', 'Drogówka'], + ['30', '2012', '7.9', 'Life of Pi'], + ['31', '2012', '8.1', 'The Avengers'], + ['32', '2012', '7.9', 'The Hobbit: An Unexpected Journey'], + ['33', '2012', '6.8', 'Hitchcock'], + ['1', '2013', '7.8', 'The Hobbit: The Desolation of Smaug'], + ['2', '2013', '6.6', 'Last Vegas'], + ['3', '2013', '7.2', 'Iron Man Three'], + ['4', '2013', '6.7', 'Gangster Squad'], + ['5', '2013', '4.3', 'Movie 43'], + ['6', '2013', '7.3', 'The Great Gatsby'], + ['7', '2013', '6.4', 'Riddick'], + ['8', '2013', '6.7', 'The Wolverine'], + ['9', '2013', '7.5', 'The Conjuring'], + ['10', '2013', '7.8', 'Captain Phillips'], + ['11', '2013', '6.4', '3096 Tage'], + ['12', '2013', '7.3', 'Now You See Me'], + ['13', '2013', '7', 'We,re the Millers'], + ['14', '2013', '7.2', 'American Hustle'], + ['15', '2013', '5.8', 'The Hangover Part III'], + ['16', '2013', '7.5', 'The Hunger Games: Catching Fire'], + ['17', '2013', '6.4', 'Pain & Gain'], + ['18', '2013', '6.9', 'Thor: The Dark World'], + ['19', '2013', '5.6', 'Machete Kills'], + ['20', '2013', '8.1', '12 Years a Slave'], + ['21', '2013', '7.1', 'Hundraåringen som klev ut genom fönstret och försvann'], + ['22', '2013', '7.5', 'Frozen'], + ['23', '2013', '6.1', 'The Zero Theorem'], + ['24', '2013', '6.4', 'Delivery Man'], + ['25', '2013', '3.3', 'Sharknado'], + ['26', '2013', '6.5', 'Bad Grandpa'], + ['27', '2013', '7.3', 'The Secret Life of Walter Mitty'], + ['28', '2013', '7.1', 'Man of Steel'], + ['29', '2013', '3.5', 'Scary Movie 5'], + ['30', '2013', '7', 'World War Z'], + ['31', '2013', '8.2', 'The Wolf of Wall Street'], + ['1', '2014', '7.9', 'Boyhood'], + ['2', '2014', '7.4', 'You,re Not You'], + ['3', '2014', '6.2', '300: Rise of an Empire'], + ['4', '2014', '7.8', 'The Lego Movie'], + ['5', '2014', '7', 'Hector and the Search for Happiness'], + ['6', '2014', '7.8', 'Captain America: The Winter Soldier'], + ['7', '2014', '8', 'X-Men: Days of Future Past'], + ['8', '2014', '6.7', 'Penguins of Madagascar'], + ['9', '2014', '6.6', 'The Hunger Games: Mockingjay - Part 1'], + ['10', '2014', '8.1', 'Guardians of the Galaxy'], + ['11', '2014', '8', 'The Imitation Game'], + ['12', '2014', '7.6', 'Dawn of the Planet of the Apes'], + ['13', '2014', '7.3', 'American Sniper'], + ['14', '2014', '7.8', 'Big Hero 6'], + ['15', '2014', '8.1', 'The Grand Budapest Hotel'], + ['16', '2014', '7', '22 Jump Street'], + ['17', '2014', '7.2', 'Wild'], + ['18', '2014', '7.4', 'The Hobbit: The Battle of the Five Armies'], + ['19', '2014', '6.1', 'The Expendables 3'], + ['20', '2014', '4.9', 'Space Station 76'], + ['21', '2014', '5.9', 'Swearnet: The Movie'], + ['22', '2014', '6.2', 'Wyrmwood'], + ['23', '2014', '7.7', 'Birdman or (The Unexpected Virtue of Ignorance)'], + ['24', '2014', '8.5', 'Whiplash'], + ['25', '2014', '4.8', 'Zombeavers'], + ['26', '2014', '7', 'Qu,est-ce qu,on a fait au Bon Dieu?'], + ['27', '2014', '7.7', 'Kingsman: The Secret Service'], + ['28', '2014', '7.9', 'Nightcrawler'], + ['29', '2014', '7.4', 'John Wick'], + ['30', '2014', '7.7', 'The Theory of Everything'], + ['31', '2014', '7.3', 'Trailer Park Boys: Don,t Legalize It'], + ['32', '2014', '7.7', 'What We Do in the Shadows'], + ['33', '2014', '7.9', 'Khid thueng withaya'], + ['34', '2014', '3.8', 'Blood Lake: Attack of the Killer Lampreys'], + ['35', '2014', '7.7', 'Bogowie'], + ['36', '2014', '6.7', 'Miasto 44'], + ['37', '2014', '7.2', 'Lava'], + ['38', '2014', '3.9', 'Dzien dobry, kocham cie!'], + ['39', '2014', '6.5', 'Sin City: A Dame to Kill For'], + ['40', '2014', '7.7', 'Ex Machina'], + ['41', '2014', '8.6', 'Interstellar'], + ['1', '2015', '8.1', 'Mad Max: Fury Road'], + ['2', '2015', '7.9', 'Straight Outta Compton'], + ['3', '2015', '6.2', 'Daddy,s Home'], + ['4', '2015', '7.8', 'The Big Short'], + ['5', '2015', '8', 'The Revenant'], + ['6', '2015', '6.8', 'Chappie'], + ['7', '2015', '8.1', 'Spotlight'], + ['8', '2015', '6.6', 'The Hunger Games: Mockingjay - Part 2'], + ['9', '2015', '8.2', 'Inside Out'], + ['10', '2015', '5.6', 'Pixels'], + ['11', '2015', '6.8', 'Spectre'], + ['12', '2015', '7.3', 'Avengers: Age of Ultron'], + ['13', '2015', '8', 'Star Wars: Episode VII - The Force Awakens'], + ['14', '2015', '6.6', 'The Second Best Exotic Marigold Hotel'], + ['15', '2015', '7.1', 'Everest'], + ['16', '2015', '8.2', 'Room'], + ['17', '2015', '7.3', 'Youth'], + ['18', '2015', '7.8', 'The Hateful Eight'], + ['19', '2015', '8', 'Kung Fury'], + ['20', '2015', '7.3', 'The Walk'], + ['21', '2015', '6.6', 'Sundays'], + ['22', '2015', '8', 'The Martian'], + ['23', '2015', '7.1', 'Le tout nouveau testament'], + ['24', '2015', '7.1', 'Er ist wieder da'], + ['25', '2015', '6.9', 'Carte Blanche'], + ['26', '2015', '7.8', 'Limitless'], + ['27', '2015', '7.3', 'Ant-Man'], + ['28', '2015', '5.9', 'Timelike'], + ['29', '2015', '7.2', 'The Man Who Knew Infinity'], + ['30', '2015', '6.7', 'The Wedding Ringer'], + ['1', '2016', '7.2', '10 Cloverfield Lane'], + ['2', '2016', '7.5', 'Doctor Strange'], + ['3', '2016', '6', 'Suicide Squad'], + ['4', '2016', '8', 'Deadpool'], + ['5', '2016', '5.9', 'True Memoirs of an International Assassin'], + ['6', '2016', '7.1', 'War Dogs'], + ['7', '2016', '8.1', 'Hacksaw Ridge'], + ['8', '2016', '7.9', 'Arrival'], + ['9', '2016', '7.6', 'Hell or High Water'], + ['10', '2016', '7.2', 'Fences'], + ['11', '2016', '8', 'Zootopia'], + ['12', '2016', '7.3', 'Fantastic Beasts and Where to Find Them'], + ['13', '2016', '7', 'X-Men: Apocalypse'], + ['14', '2016', '7.1', 'Sing'], + ['15', '2016', '7.8', 'Captain America: Civil War'], + ['16', '2016', '7.9', 'Captain Fantastic'], + ['17', '2016', '8.1', 'Lion'], + ['18', '2016', '7.8', 'Rogue One'], + ['19', '2016', '8', 'La La Land'], + ['20', '2016', '7.4', 'The Nice Guys'], + ['21', '2016', '7.8', 'Manchester by the Sea'], + ['22', '2016', '7', 'Swiss Army Man'], + ['23', '2016', '7.8', 'Kubo and the Two Strings'], + ['24', '2016', '6.3', 'Mindhorn'], + ['25', '2016', '7.8', 'Hidden Figures'], + ['26', '2016', '7.8', 'Perfetti sconosciuti'], + ['27', '2016', '7.4', 'Moonlight'], + ['28', '2016', '6.5', 'Pitbull. Nowe porzadki'], + ['29', '2016', '5.6', 'Marie Curie'], + ['30', '2016', '7.5', 'Ostatnia rodzina'], + ['31', '2016', '5.8', 'Pitbull. Niebezpieczne kobiety'], + ['1', '2017', '5.7', 'Downsizing'], + ['2', '2017', '7.4', 'It'], + ['3', '2017', '7.6', 'The Greatest Showman'], + ['4', '2017', '8', 'Blade Runner 2049'], + ['5', '2017', '7.5', 'Spider-Man: Homecoming'], + ['6', '2017', '7', 'Jumanji: Welcome to the Jungle'], + ['7', '2017', '8.4', 'Coco'], + ['8', '2017', '6.7', 'Atomic Blonde'], + ['9', '2017', '7.1', 'Star Wars: Episode VIII - The Last Jedi'], + ['10', '2017', '7.2', 'Beauty and the Beast'], + ['11', '2017', '5.6', 'El Camino Christmas'], + ['12', '2017', '8.1', 'Logan'], + ['13', '2017', '6.5', 'Murder on the Orient Express'], + ['14', '2017', '7.4', 'War for the Planet of the Apes'], + ['15', '2017', '7.9', 'Thor: Ragnarok'], + ['16', '2017', '7.4', 'The Disaster Artist'], + ['17', '2017', '6', 'Power Rangers'], + ['18', '2017', '7.2', 'The Wife'], + ['19', '2017', '7.6', 'Baby Driver'], + ['20', '2017', '7.7', 'Guardians of the Galaxy Vol. 2'], + ['21', '2017', '7.3', 'Okja'], + ['22', '2017', '7.3', 'The Lego Batman Movie'], + ['23', '2017', '6.3', 'The Babysitter'], + ['24', '2017', '7.5', 'Wonder Woman'], + ['25', '2017', '7.4', 'Darkest Hour'], + ['26', '2017', '6.8', 'Kingsman: The Golden Circle'], + ['27', '2017', '7.4', 'Lady Bird'], + ['28', '2017', '7.9', 'Dunkirk'], + ['29', '2017', '8.2', 'Three Billboards Outside Ebbing, Missouri'], + ['30', '2017', '7.7', 'Get Out'], + ['31', '2017', '6.6', 'Mother!'], + ['32', '2017', '5.9', 'The Polka King'], + ['33', '2017', '7.5', 'I, Tonya'], + ['34', '2017', '7.3', 'The Shape of Water'], + ['35', '2017', '7.6', 'The Florida Project'], + ['36', '2017', '7.9', 'Call Me by Your Name'], + ['37', '2017', '7.5', 'Phantom Thread'], + ['38', '2017', '7.1', 'First Reformed'], + ['39', '2017', '7.2', 'The Post'], + ['40', '2017', '6.1', 'Casting JonBenet'], + ['41', '2017', '7.2', 'Cicha noc'], + ['42', '2017', '6.5', 'Fanatyk'], + ['1', '2018', '7.3', 'First Man'], + ['2', '2018', '6.7', 'Venom'], + ['3', '2018', '6.3', 'Tomb Raider'], + ['4', '2018', '7.1', 'Aquaman'], + ['5', '2018', '7.7', 'A Star Is Born'], + ['6', '2018', '7.5', 'Ready Player One'], + ['7', '2018', '8', 'Bohemian Rhapsody'], + ['8', '2018', '7.3', 'Black Panther'], + ['9', '2018', '6.5', 'Mowgli'], + ['10', '2018', '5.6', 'The Cloverfield Paradox'], + ['11', '2018', '7', 'Game Night'], + ['12', '2018', '7.7', 'Incredibles 2'], + ['13', '2018', '7', 'Solo: A Star Wars Story'], + ['14', '2018', '7.2', 'Leave No Trace'], + ['15', '2018', '6.6', 'Fantastic Beasts: The Crimes of Grindelwald'], + ['16', '2018', '7.1', 'Can You Ever Forgive Me?'], + ['17', '2018', '8.5', 'Spider-Man: Into the Spider-Verse'], + ['18', '2018', '7.6', 'The Favourite'], + ['19', '2018', '7.1', 'Ant-Man and the Wasp'], + ['20', '2018', '7.8', 'Deadpool 2'], + ['21', '2018', '7.8', 'Roma'], + ['22', '2018', '7.2', 'Vice'], + ['23', '2018', '7.3', 'The Ballad of Buster Scruggs'], + ['24', '2018', '7.6', 'Zimna wojna'], + ['25', '2018', '7.6', 'A Quiet Place'], + ['26', '2018', '6.9', 'At Eternity,s Gate'], + ['27', '2018', '6.2', 'Gotowi na wszystko. Exterminator'], + ['28', '2018', '8.2', 'Green Book'], + ['29', '2018', '5.6', 'The Man Who Killed Hitler and Then The Bigfoot'], + ['30', '2018', '7.2', 'If Beale Street Could Talk'], + ['31', '2018', '7.5', 'BlacKkKlansman'], + ['32', '2018', '8.2', 'Free Solo'], + ['33', '2018', '8.4', 'Bi-Weekly Roundup: Avengers Infinity War'], + ['34', '2018', '7.2', 'Climax'], + ['35', '2018', '7.3', 'Black Mirror: Bandersnatch'], + ['1', '2019', '6.5', 'Triple Frontier'], + ['2', '2019', '7', 'Captain Marvel'], + ['3', '2019', '8.7', 'Avengers: Endgame'], + ['4', '2019', '6.8', 'Guava Island'], + ['5', '2019', '6.1', 'Kindergarten Cop'] + ] } export const data_1974_1990 = { - series: data.series, - records: data.records, - filter: (record) => Number(record.Year) >= 1974 && Number(record.Year) <= 1990 + series: data.series, + records: data.records, + filter: (record) => Number(record.Year) >= 1974 && Number(record.Year) <= 1990 } diff --git a/test/integration/test_data/capitals.mjs b/test/integration/test_data/capitals.mjs index 0080c3668..913964daa 100644 --- a/test/integration/test_data/capitals.mjs +++ b/test/integration/test_data/capitals.mjs @@ -1,229 +1,229 @@ export const data = { - series: [ - { name: 'Capital', type: 'dimension' }, - { name: 'Latitude', type: 'measure' }, - { name: 'Longitude', type: 'measure' }, - { name: 'Population', type: 'measure' } - ], - records: [ - ['Abu Dhabi', 24.4666666666667, 54.366667, 1010092], - ['Abuja', 9.08333333333333, 7.533333, 1235880], - ['Accra', 5.55, -0.216667, 2388000], - ['Adamstown', -25.0666666666667, -130.083333, 40], - ['Addis Ababa', 9.03333333333333, 38.7, 3040740], - ['Algiers', 36.75, 3.05, 3915811], - ['Alofi', -19.0166666666667, -169.916667, 597], - ['Amman', 31.95, 35.933333, 4061150], - ['Amsterdam', 52.35, 4.916667, 905234], - ['Andorra la Vella', 42.5, 1.516667, 22873], - ['Ankara', 39.9333333333333, 32.866667, 5747325], - ['Antananarivo', -18.9166666666667, 47.516667, 1275207], - ['Apia', -13.8166666666667, -171.766667, 41611], - ['Ashgabat', 37.95, 58.383333, 791000], - ['Asmara', 15.3333333333333, 38.933333, 963000], - ['Astana', 51.1666666666667, 71.416667, 1239900], - ['Asuncion', -25.2666666666667, -57.666667, 521559], - ['Atafu', -9.166667, -171.833333, 541], - ['Athens', 37.9833333333333, 23.733333, 637798], - ['Avarua', -21.2, -159.766667, 4906], - ['Baghdad', 33.3333333333333, 44.4, 7682136], - ['Baku', 40.3833333333333, 49.866667, 2303100], - ['Bamako', 12.65, -8, 1809106], - ['Bandar Seri Begawan', 4.88333333333333, 114.933333, 100700], - ['Bangkok', 13.75, 100.516667, 8305218], - ['Bangui', 4.36666666666667, 18.583333, 889231], - ['Banjul', 13.45, -16.566667, 73000], - ['Basseterre', 17.3, -62.716667, 14000], - ['Beijing', 39.9166666666667, 116.383333, 21542000], - ['Beirut', 33.8666666666667, 35.5, 361366], - ['Belgrade', 44.8333333333333, 20.5, 1688667], - ['Belmopan', 17.25, -88.766667, 20621], - ['Berlin', 52.5166666666667, 13.4, 3677472], - ['Bern', 46.9166666666667, 7.466667, 134591], - ['Bishkek', 42.8666666666667, 74.6, 1074075], - ['Bissau', 11.85, -15.583333, 492004], - ['Bogota', 4.6, -74.083333, 7181469], - ['Brasilia', -15.7833333333333, -47.916667, 2648532], - ['Bratislava', 48.15, 17.116667, 440948], - ['Brazzaville', -4.25, 15.283333, 1696392], - ['Bridgetown', 13.1, -59.616667, 110000], - ['Brussels', 50.8333333333333, 4.333333, 187686], - ['Bucharest', 44.4333333333333, 26.1, 1716983], - ['Budapest', 47.5, 19.083333, 1706851], - ['Buenos Aires', -34.5833333333333, -58.666667, 2891082], - ['Cairo', 30.05, 31.25, 10107125], - ['Canberra', -35.2666666666667, 149.133333, 431380], - ['Caracas', 10.4833333333333, -66.866667, 2245744], - ['Castries', 14, -61, 20000], - ['Charlotte Amalie', 18.35, -64.933333, 14477], - ['Chisinau', 47, 28.85, 779300], - ['Conakry', 9.5, -13.7, 1660973], - ['Copenhagen', 55.6666666666667, 12.583333, 638117], - ['Dakar', 14.7333333333333, -17.633333, 1438725], - ['Damascus', 33.5, 36.3, 2079000], - ['Dhaka', 23.7166666666667, 90.4, 8906039], - ['Dili', -8.58333333333333, 125.6, 277279], - ['Djibouti', 11.5833333333333, 43.15, 604013], - ['Doha', 25.2833333333333, 51.533333, 1186023], - ['Douglas', 54.15, -4.483333, 27938], - ['Dublin', 53.3166666666667, -6.233333, 588233], - ['Dushanbe', 38.55, 68.766667, 863400], - ['Freetown', 8.48333333333333, -13.233333, 1055964], - ['Funafuti', -8.51666666666667, 179.216667, 6320], - ['Gaborone', -24.6333333333333, 25.9, 273602], - ['Georgetown', 6.8, -58.15, 118363], - ['Gibraltar', 36.1333333333333, -5.35, 34003], - ['Guatemala City', 14.6166666666667, -90.516667, 2934841], - ['Gustavia', 17.8833333333333, -62.85, 2615], - ['Hagatna', 13.4666666666667, 144.733333, 1051], - ['Hamilton', 32.2833333333333, -64.783333, 854], - ['Hanoi', 21.0333333333333, 105.85, 8053663], - ['Harare', -17.8166666666667, 31.033333, 2123132], - ['Havana', 23.1166666666667, -82.35, 2132183], - ['Helsinki', 60.1666666666667, 24.933333, 658864], - ['Honiara', -9.43333333333333, 159.95, 92344], - ['Islamabad', 33.6833333333333, 73.05, 1014825], - ['Jakarta', -6.16666666666667, 106.816667, 10562088], - ['Jamestown', -15.9333333333333, -5.716667, 629], - ['Jerusalem', 31.7666666666667, 35.233333, 936425], - ['Juba', 4.85, 31.616667, 525953], - ['Kabul', 34.5166666666667, 69.183333, 4601789], - ['Kampala', 0.316666666666667, 32.55, 1680600], - ['Kathmandu', 27.7166666666667, 85.316667, 845767], - ['Khartoum', 15.6, 32.533333, 2682431], - ['Kigali', -1.95, 30.05, 1132686], - ['King Edward Point', -54.283333, -36.5, 22], - ['Kingston ', 18, -76.8, 341], - ['Kingston', -29.05, 167.966667, 662491], - ['Kingstown', 13.1333333333333, -61.216667, 12909], - ['Kinshasa', -4.31666666666667, 15.3, 12691000], - ['Kuala Lumpur', 3.16666666666667, 101.7, 1782500], - ['Kuwait City', 29.3666666666667, 47.966667, 2989000], - ['Kyiv', 50.4333333333333, 30.516667, 2920873], - ['Libreville', 0.383333333333333, 9.45, 703904], - ['Lilongwe', -13.9666666666667, 33.783333, 989318], - ['Lima', -12.05, -77.05, 8852000], - ['Lisbon', 38.7166666666667, -9.133333, 509614], - ['Ljubljana', 46.05, 14.516667, 285604], - ['Lome', 6.11666666666667, 1.216667, 837437], - ['London', 51.5, -0.083333, 9002488], - ['Longyearbyen', 78.2166666666667, 15.633333, 2417], - ['Luanda', -8.83333333333333, 13.216667, 2571861], - ['Lusaka', -15.4166666666667, 28.283333, 2731696], - ['Luxembourg', 49.6, 6.116667, 124509], - ['Madrid', 40.4, -3.683333, 3305408], - ['Majuro', 7.1, 171.383333, 27797], - ['Malabo', 3.75, 8.783333, 297000], - ['Male', 4.16666666666667, 73.5, 133412], - ['Managua', 12.1333333333333, -86.25, 1055247], - ['Manama', 26.2333333333333, 50.566667, 200000], - ['Manila', 14.6, 120.966667, 1846513], - ['Maputo', -25.95, 32.583333, 1124988], - ['Mariehamn', 60.116667, 19.9, 11736], - ['Marigot', 18.0731, -63.0822, 3229], - ['Maseru', -29.3166666666667, 27.483333, 330760], - ['Mata-Utu', -13.95, -171.933333, 1029], - ['Mbabane', -26.3166666666667, 31.133333, 94874], - ['Mexico City', 19.4333333333333, -99.133333, 9209944], - ['Minsk', 53.9, 27.566667, 1996553], - ['Mogadishu', 2.06666666666667, 45.333333, 2388000], - ['Monaco', 43.7333333333333, 7.416667, 38350], - ['Monrovia', 6.3, -10.8, 1010970], - ['Montevideo', -34.85, -56.166667, 1319108], - ['Moroni', -11.7, 43.233333, 111326], - ['Moscow', 55.75, 37.6, 12655050], - ['Muscat', 23.6166666666667, 58.583333, 1294101], - ['Nairobi', -1.28333333333333, 36.816667, 4397073], - ['Nassau', 25.0833333333333, -77.35, 274400], - ["N'Djamena", 12.1, 15.033333, 916000], - ['New Delhi', 28.6, 77.2, 249998], - ['Niamey', 13.5166666666667, 2.116667, 1334984], - ['Nicosia', 35.1666666666667, 33.366667, 326739], - ['Nouakchott', 18.0666666666667, -15.966667, 1195600], - ['Noumea', -22.2666666666667, 166.45, 94285], - ["Nuku'alofa", -21.1333333333333, -175.2, 27600], - ['Nuuk', 64.1833333333333, -51.75, 18800], - ['Oranjestad', 12.5166666666667, -70.033333, 28294], - ['Oslo', 59.9166666666667, 10.75, 697010], - ['Ottawa', 45.4166666666667, -75.7, 1017449], - ['Ouagadougou', 12.3666666666667, -1.516667, 2453496], - ['Pago Pago', -14.2666666666667, -170.7, 3656], - ['Palikir', 6.91666666666667, 158.15, 6647], - ['Panama City', 8.96666666666667, -79.533333, 880691], - ['Papeete', -17.5333333333333, -149.566667, 26926], - ['Paramaribo', 5.83333333333333, -55.166667, 240924], - ['Paris', 48.8666666666667, 2.333333, 2139907], - ['Podgorica', 42.4333333333333, 19.266667, 190488], - ['Port-au-Prince', 18.5333333333333, -72.333333, 987310], - ['Port Louis', -20.15, 57.483333, 147066], - ['Port Moresby', -9.45, 147.183333, 364145], - ['Port of Spain', 10.65, -61.516667, 37074], - ['Porto-Novo', 6.48333333333333, 2.616667, 264320], - ['Port-Vila', -17.7333333333333, 168.316667, 51437], - ['Prague', 50.0833333333333, 14.466667, 1275406], - ['Praia', 14.9166666666667, -23.516667, 159050], - ['Pretoria', -25.7, 28.216667, 2921488], - ['Pristina', 42.6666666666667, 21.166667, 198897], - ['Pyongyang', 39.0166666666667, 125.75, 2870000], - ['Quito', -0.216666666666667, -78.5, 2800388], - ['Rabat', 34.0166666666667, -6.816667, 577827], - ['Reykjavik', 64.15, -21.95, 133262], - ['Riga', 56.95, 24.1, 605802], - ['Riyadh', 24.65, 46.7, 7676654], - ['Road Town', 18.4166666666667, -64.616667, 12603], - ['Rome', 41.9, 12.483333, 2761632], - ['Roseau', 15.3, -61.4, 14725], - ['Saint Helier', 49.1833333333333, -2.1, 37540], - ['Saint Peter Port', 49.45, -2.533333, 18958], - ['Saint-Pierre', 46.7666666666667, -56.183333, 5394], - ['Saipan', 15.2, 145.75, 47565], - ['Sanaa', 15.35, 44.2, 2575347], - ['San Jose', 9.93333333333333, -84.083333, 342188], - ['San Juan', 18.4666666666667, -66.116667, 342259], - ['San Salvador', 13.7, -89.2, 570459], - ['Santiago', -33.45, -70.666667, 6310000], - ['Santo Domingo', 18.4666666666667, -69.9, 1111838], - ['Sao Tome', 0.333333333333333, 6.733333, 71868], - ['Sarajevo', 43.8666666666667, 18.416667, 275524], - ['Seoul', 37.55, 126.983333, 9508451], - ['Singapore', 1.28333333333333, 103.85, 5453600], - ['Skopje', 42, 21.433333, 544086], - ['Sofia', 42.6833333333333, 23.316667, 1307439], - ['Stanley', -51.7, -57.85, 2460], - ['Stockholm', 59.3333333333333, 18.05, 978770], - ['Suva', -18.1333333333333, 178.416667, 93970], - ['Taipei', 25.0333333333333, 121.516667, 2608332], - ['Tallinn', 59.4333333333333, 24.716667, 438341], - ['Tarawa', -0.883333333333333, 169.533333, 70480], - ['Tashkent', 41.3166666666667, 69.25, 2860600], - ['Tbilisi', 41.6833333333333, 44.833333, 1201769], - ['Tegucigalpa', 14.1, -87.216667, 1444085], - ['Tehran', 35.7, 51.416667, 8693706], - ['The Valley', 18.2166666666667, -63.05, 1067], - ['Thimphu', 27.4666666666667, 89.633333, 114551], - ['Tirana', 41.3166666666667, 19.816667, 557422], - ['Tokyo', 35.6833333333333, 139.75, 13921000], - ['Torshavn', 62, -6.766667, 22738], - ['Tripoli', 32.8833333333333, 13.166667, 1170000], - ['Tunis', 36.8, 10.183333, 638845], - ['Ulaanbaatar', 47.9166666666667, 106.916667, 1466125], - ['Vaduz', 47.1333333333333, 9.516667, 5774], - ['Valletta', 35.8833333333333, 14.5, 5827], - ['Vatican City', 41.9, 12.45, 453], - ['Victoria', -4.61666666666667, 55.45, 26450], - ['Vienna', 48.2, 16.366667, 1962779], - ['Vientiane', 17.9666666666667, 102.6, 927724], - ['Vilnius', 54.6833333333333, 25.316667, 576195], - ['Warsaw', 52.25, 21, 1863056], - ['Washington', 38.883333, -77, 670050], - ['Wellington', -41.3, 174.783333, 217000], - ['West Island', -12.1666666666667, 96.833333, 134], - ['Willemstad', 12.1, -68.916667, 136660], - ['Windhoek', -22.5666666666667, 17.083333, 431000], - ['Yamoussoukro', 6.81666666666667, -5.266667, 361893], - ['Yaounde', 3.86666666666667, 11.516667, 2765568], - ['Yaren', -0.5477, 166.920867, 747], - ['Yerevan', 40.1666666666667, 44.5, 1096100], - ['Zagreb', 45.8, 16, 769944] - ] + series: [ + { name: 'Capital', type: 'dimension' }, + { name: 'Latitude', type: 'measure' }, + { name: 'Longitude', type: 'measure' }, + { name: 'Population', type: 'measure' } + ], + records: [ + ['Abu Dhabi', 24.4666666666667, 54.366667, 1010092], + ['Abuja', 9.08333333333333, 7.533333, 1235880], + ['Accra', 5.55, -0.216667, 2388000], + ['Adamstown', -25.0666666666667, -130.083333, 40], + ['Addis Ababa', 9.03333333333333, 38.7, 3040740], + ['Algiers', 36.75, 3.05, 3915811], + ['Alofi', -19.0166666666667, -169.916667, 597], + ['Amman', 31.95, 35.933333, 4061150], + ['Amsterdam', 52.35, 4.916667, 905234], + ['Andorra la Vella', 42.5, 1.516667, 22873], + ['Ankara', 39.9333333333333, 32.866667, 5747325], + ['Antananarivo', -18.9166666666667, 47.516667, 1275207], + ['Apia', -13.8166666666667, -171.766667, 41611], + ['Ashgabat', 37.95, 58.383333, 791000], + ['Asmara', 15.3333333333333, 38.933333, 963000], + ['Astana', 51.1666666666667, 71.416667, 1239900], + ['Asuncion', -25.2666666666667, -57.666667, 521559], + ['Atafu', -9.166667, -171.833333, 541], + ['Athens', 37.9833333333333, 23.733333, 637798], + ['Avarua', -21.2, -159.766667, 4906], + ['Baghdad', 33.3333333333333, 44.4, 7682136], + ['Baku', 40.3833333333333, 49.866667, 2303100], + ['Bamako', 12.65, -8, 1809106], + ['Bandar Seri Begawan', 4.88333333333333, 114.933333, 100700], + ['Bangkok', 13.75, 100.516667, 8305218], + ['Bangui', 4.36666666666667, 18.583333, 889231], + ['Banjul', 13.45, -16.566667, 73000], + ['Basseterre', 17.3, -62.716667, 14000], + ['Beijing', 39.9166666666667, 116.383333, 21542000], + ['Beirut', 33.8666666666667, 35.5, 361366], + ['Belgrade', 44.8333333333333, 20.5, 1688667], + ['Belmopan', 17.25, -88.766667, 20621], + ['Berlin', 52.5166666666667, 13.4, 3677472], + ['Bern', 46.9166666666667, 7.466667, 134591], + ['Bishkek', 42.8666666666667, 74.6, 1074075], + ['Bissau', 11.85, -15.583333, 492004], + ['Bogota', 4.6, -74.083333, 7181469], + ['Brasilia', -15.7833333333333, -47.916667, 2648532], + ['Bratislava', 48.15, 17.116667, 440948], + ['Brazzaville', -4.25, 15.283333, 1696392], + ['Bridgetown', 13.1, -59.616667, 110000], + ['Brussels', 50.8333333333333, 4.333333, 187686], + ['Bucharest', 44.4333333333333, 26.1, 1716983], + ['Budapest', 47.5, 19.083333, 1706851], + ['Buenos Aires', -34.5833333333333, -58.666667, 2891082], + ['Cairo', 30.05, 31.25, 10107125], + ['Canberra', -35.2666666666667, 149.133333, 431380], + ['Caracas', 10.4833333333333, -66.866667, 2245744], + ['Castries', 14, -61, 20000], + ['Charlotte Amalie', 18.35, -64.933333, 14477], + ['Chisinau', 47, 28.85, 779300], + ['Conakry', 9.5, -13.7, 1660973], + ['Copenhagen', 55.6666666666667, 12.583333, 638117], + ['Dakar', 14.7333333333333, -17.633333, 1438725], + ['Damascus', 33.5, 36.3, 2079000], + ['Dhaka', 23.7166666666667, 90.4, 8906039], + ['Dili', -8.58333333333333, 125.6, 277279], + ['Djibouti', 11.5833333333333, 43.15, 604013], + ['Doha', 25.2833333333333, 51.533333, 1186023], + ['Douglas', 54.15, -4.483333, 27938], + ['Dublin', 53.3166666666667, -6.233333, 588233], + ['Dushanbe', 38.55, 68.766667, 863400], + ['Freetown', 8.48333333333333, -13.233333, 1055964], + ['Funafuti', -8.51666666666667, 179.216667, 6320], + ['Gaborone', -24.6333333333333, 25.9, 273602], + ['Georgetown', 6.8, -58.15, 118363], + ['Gibraltar', 36.1333333333333, -5.35, 34003], + ['Guatemala City', 14.6166666666667, -90.516667, 2934841], + ['Gustavia', 17.8833333333333, -62.85, 2615], + ['Hagatna', 13.4666666666667, 144.733333, 1051], + ['Hamilton', 32.2833333333333, -64.783333, 854], + ['Hanoi', 21.0333333333333, 105.85, 8053663], + ['Harare', -17.8166666666667, 31.033333, 2123132], + ['Havana', 23.1166666666667, -82.35, 2132183], + ['Helsinki', 60.1666666666667, 24.933333, 658864], + ['Honiara', -9.43333333333333, 159.95, 92344], + ['Islamabad', 33.6833333333333, 73.05, 1014825], + ['Jakarta', -6.16666666666667, 106.816667, 10562088], + ['Jamestown', -15.9333333333333, -5.716667, 629], + ['Jerusalem', 31.7666666666667, 35.233333, 936425], + ['Juba', 4.85, 31.616667, 525953], + ['Kabul', 34.5166666666667, 69.183333, 4601789], + ['Kampala', 0.316666666666667, 32.55, 1680600], + ['Kathmandu', 27.7166666666667, 85.316667, 845767], + ['Khartoum', 15.6, 32.533333, 2682431], + ['Kigali', -1.95, 30.05, 1132686], + ['King Edward Point', -54.283333, -36.5, 22], + ['Kingston ', 18, -76.8, 341], + ['Kingston', -29.05, 167.966667, 662491], + ['Kingstown', 13.1333333333333, -61.216667, 12909], + ['Kinshasa', -4.31666666666667, 15.3, 12691000], + ['Kuala Lumpur', 3.16666666666667, 101.7, 1782500], + ['Kuwait City', 29.3666666666667, 47.966667, 2989000], + ['Kyiv', 50.4333333333333, 30.516667, 2920873], + ['Libreville', 0.383333333333333, 9.45, 703904], + ['Lilongwe', -13.9666666666667, 33.783333, 989318], + ['Lima', -12.05, -77.05, 8852000], + ['Lisbon', 38.7166666666667, -9.133333, 509614], + ['Ljubljana', 46.05, 14.516667, 285604], + ['Lome', 6.11666666666667, 1.216667, 837437], + ['London', 51.5, -0.083333, 9002488], + ['Longyearbyen', 78.2166666666667, 15.633333, 2417], + ['Luanda', -8.83333333333333, 13.216667, 2571861], + ['Lusaka', -15.4166666666667, 28.283333, 2731696], + ['Luxembourg', 49.6, 6.116667, 124509], + ['Madrid', 40.4, -3.683333, 3305408], + ['Majuro', 7.1, 171.383333, 27797], + ['Malabo', 3.75, 8.783333, 297000], + ['Male', 4.16666666666667, 73.5, 133412], + ['Managua', 12.1333333333333, -86.25, 1055247], + ['Manama', 26.2333333333333, 50.566667, 200000], + ['Manila', 14.6, 120.966667, 1846513], + ['Maputo', -25.95, 32.583333, 1124988], + ['Mariehamn', 60.116667, 19.9, 11736], + ['Marigot', 18.0731, -63.0822, 3229], + ['Maseru', -29.3166666666667, 27.483333, 330760], + ['Mata-Utu', -13.95, -171.933333, 1029], + ['Mbabane', -26.3166666666667, 31.133333, 94874], + ['Mexico City', 19.4333333333333, -99.133333, 9209944], + ['Minsk', 53.9, 27.566667, 1996553], + ['Mogadishu', 2.06666666666667, 45.333333, 2388000], + ['Monaco', 43.7333333333333, 7.416667, 38350], + ['Monrovia', 6.3, -10.8, 1010970], + ['Montevideo', -34.85, -56.166667, 1319108], + ['Moroni', -11.7, 43.233333, 111326], + ['Moscow', 55.75, 37.6, 12655050], + ['Muscat', 23.6166666666667, 58.583333, 1294101], + ['Nairobi', -1.28333333333333, 36.816667, 4397073], + ['Nassau', 25.0833333333333, -77.35, 274400], + ["N'Djamena", 12.1, 15.033333, 916000], + ['New Delhi', 28.6, 77.2, 249998], + ['Niamey', 13.5166666666667, 2.116667, 1334984], + ['Nicosia', 35.1666666666667, 33.366667, 326739], + ['Nouakchott', 18.0666666666667, -15.966667, 1195600], + ['Noumea', -22.2666666666667, 166.45, 94285], + ["Nuku'alofa", -21.1333333333333, -175.2, 27600], + ['Nuuk', 64.1833333333333, -51.75, 18800], + ['Oranjestad', 12.5166666666667, -70.033333, 28294], + ['Oslo', 59.9166666666667, 10.75, 697010], + ['Ottawa', 45.4166666666667, -75.7, 1017449], + ['Ouagadougou', 12.3666666666667, -1.516667, 2453496], + ['Pago Pago', -14.2666666666667, -170.7, 3656], + ['Palikir', 6.91666666666667, 158.15, 6647], + ['Panama City', 8.96666666666667, -79.533333, 880691], + ['Papeete', -17.5333333333333, -149.566667, 26926], + ['Paramaribo', 5.83333333333333, -55.166667, 240924], + ['Paris', 48.8666666666667, 2.333333, 2139907], + ['Podgorica', 42.4333333333333, 19.266667, 190488], + ['Port-au-Prince', 18.5333333333333, -72.333333, 987310], + ['Port Louis', -20.15, 57.483333, 147066], + ['Port Moresby', -9.45, 147.183333, 364145], + ['Port of Spain', 10.65, -61.516667, 37074], + ['Porto-Novo', 6.48333333333333, 2.616667, 264320], + ['Port-Vila', -17.7333333333333, 168.316667, 51437], + ['Prague', 50.0833333333333, 14.466667, 1275406], + ['Praia', 14.9166666666667, -23.516667, 159050], + ['Pretoria', -25.7, 28.216667, 2921488], + ['Pristina', 42.6666666666667, 21.166667, 198897], + ['Pyongyang', 39.0166666666667, 125.75, 2870000], + ['Quito', -0.216666666666667, -78.5, 2800388], + ['Rabat', 34.0166666666667, -6.816667, 577827], + ['Reykjavik', 64.15, -21.95, 133262], + ['Riga', 56.95, 24.1, 605802], + ['Riyadh', 24.65, 46.7, 7676654], + ['Road Town', 18.4166666666667, -64.616667, 12603], + ['Rome', 41.9, 12.483333, 2761632], + ['Roseau', 15.3, -61.4, 14725], + ['Saint Helier', 49.1833333333333, -2.1, 37540], + ['Saint Peter Port', 49.45, -2.533333, 18958], + ['Saint-Pierre', 46.7666666666667, -56.183333, 5394], + ['Saipan', 15.2, 145.75, 47565], + ['Sanaa', 15.35, 44.2, 2575347], + ['San Jose', 9.93333333333333, -84.083333, 342188], + ['San Juan', 18.4666666666667, -66.116667, 342259], + ['San Salvador', 13.7, -89.2, 570459], + ['Santiago', -33.45, -70.666667, 6310000], + ['Santo Domingo', 18.4666666666667, -69.9, 1111838], + ['Sao Tome', 0.333333333333333, 6.733333, 71868], + ['Sarajevo', 43.8666666666667, 18.416667, 275524], + ['Seoul', 37.55, 126.983333, 9508451], + ['Singapore', 1.28333333333333, 103.85, 5453600], + ['Skopje', 42, 21.433333, 544086], + ['Sofia', 42.6833333333333, 23.316667, 1307439], + ['Stanley', -51.7, -57.85, 2460], + ['Stockholm', 59.3333333333333, 18.05, 978770], + ['Suva', -18.1333333333333, 178.416667, 93970], + ['Taipei', 25.0333333333333, 121.516667, 2608332], + ['Tallinn', 59.4333333333333, 24.716667, 438341], + ['Tarawa', -0.883333333333333, 169.533333, 70480], + ['Tashkent', 41.3166666666667, 69.25, 2860600], + ['Tbilisi', 41.6833333333333, 44.833333, 1201769], + ['Tegucigalpa', 14.1, -87.216667, 1444085], + ['Tehran', 35.7, 51.416667, 8693706], + ['The Valley', 18.2166666666667, -63.05, 1067], + ['Thimphu', 27.4666666666667, 89.633333, 114551], + ['Tirana', 41.3166666666667, 19.816667, 557422], + ['Tokyo', 35.6833333333333, 139.75, 13921000], + ['Torshavn', 62, -6.766667, 22738], + ['Tripoli', 32.8833333333333, 13.166667, 1170000], + ['Tunis', 36.8, 10.183333, 638845], + ['Ulaanbaatar', 47.9166666666667, 106.916667, 1466125], + ['Vaduz', 47.1333333333333, 9.516667, 5774], + ['Valletta', 35.8833333333333, 14.5, 5827], + ['Vatican City', 41.9, 12.45, 453], + ['Victoria', -4.61666666666667, 55.45, 26450], + ['Vienna', 48.2, 16.366667, 1962779], + ['Vientiane', 17.9666666666667, 102.6, 927724], + ['Vilnius', 54.6833333333333, 25.316667, 576195], + ['Warsaw', 52.25, 21, 1863056], + ['Washington', 38.883333, -77, 670050], + ['Wellington', -41.3, 174.783333, 217000], + ['West Island', -12.1666666666667, 96.833333, 134], + ['Willemstad', 12.1, -68.916667, 136660], + ['Windhoek', -22.5666666666667, 17.083333, 431000], + ['Yamoussoukro', 6.81666666666667, -5.266667, 361893], + ['Yaounde', 3.86666666666667, 11.516667, 2765568], + ['Yaren', -0.5477, 166.920867, 747], + ['Yerevan', 40.1666666666667, 44.5, 1096100], + ['Zagreb', 45.8, 16, 769944] + ] } diff --git a/test/integration/test_data/chart_precision.mjs b/test/integration/test_data/chart_precision.mjs index 65b875843..41453f154 100755 --- a/test/integration/test_data/chart_precision.mjs +++ b/test/integration/test_data/chart_precision.mjs @@ -1,29 +1,29 @@ export const data = { - series: [ - { - name: 'Parents', - type: 'dimension', - values: ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'D', 'D', 'D', 'D'] - }, - { - name: 'Childs', - type: 'dimension', - values: ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd'] - }, - { - name: 'GrandChild', - type: 'dimension', - values: ['a', 'a', 'b', 'b', 'a', 'a', 'b', 'b', 'c', 'c', 'd', 'd', 'c', 'c', 'd', 'd'] - }, - { - name: 'Values parent', - type: 'measure', - values: [1, 2, 4, 3, 3, 4, 2, 1, 4, 3, 1, 2, 2, 1, 3, 4] - }, - { - name: 'Values child', - type: 'measure', - values: [0, -1, 5, 6, 6, 5, -1, 0, 5, 6, 0, -1, -1, 0, 6, 5] - } - ] + series: [ + { + name: 'Parents', + type: 'dimension', + values: ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'D', 'D', 'D', 'D'] + }, + { + name: 'Childs', + type: 'dimension', + values: ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd'] + }, + { + name: 'GrandChild', + type: 'dimension', + values: ['a', 'a', 'b', 'b', 'a', 'a', 'b', 'b', 'c', 'c', 'd', 'd', 'c', 'c', 'd', 'd'] + }, + { + name: 'Values parent', + type: 'measure', + values: [1, 2, 4, 3, 3, 4, 2, 1, 4, 3, 1, 2, 2, 1, 3, 4] + }, + { + name: 'Values child', + type: 'measure', + values: [0, -1, 5, 6, 6, 5, -1, 0, 5, 6, 0, -1, -1, 0, 6, 5] + } + ] } diff --git a/test/integration/test_data/chart_types_eu.mjs b/test/integration/test_data/chart_types_eu.mjs index dcd16a7f7..a542ff9af 100755 --- a/test/integration/test_data/chart_types_eu.mjs +++ b/test/integration/test_data/chart_types_eu.mjs @@ -1,387 +1,389 @@ function Rand(a) { - return function () { - let t = (a += 0x6d2b79f5) - t = Math.imul(t ^ (t >>> 15), t | 1) - t ^= t + Math.imul(t ^ (t >>> 7), t | 61) - return ((t ^ (t >>> 14)) >>> 0) / 4294967296 - } + return function () { + let t = (a += 0x6d2b79f5) + t = Math.imul(t ^ (t >>> 15), t | 1) + t ^= t + Math.imul(t ^ (t >>> 7), t | 61) + return ((t ^ (t >>> 14)) >>> 0) / 4294967296 + } } const rand = Rand(1234) const countries = [ - 'Austria', - 'Belgium', - 'Bulgaria', - 'Cyprus', - 'Czechia', - 'Germany', - 'Denmark', - 'Estonia', - 'Greece', - 'Spain', - 'Finland', - 'France', - 'Croatia', - 'Hungary', - 'Ireland', - 'Italy', - 'Lithuania', - 'Luxembourg', - 'Latvia', - 'Malta', - 'Netherlands', - 'Poland', - 'Portugal', - 'Romania', - 'Sweden', - 'Slovenia', - 'Slovakia', - 'UK' + 'Austria', + 'Belgium', + 'Bulgaria', + 'Cyprus', + 'Czechia', + 'Germany', + 'Denmark', + 'Estonia', + 'Greece', + 'Spain', + 'Finland', + 'France', + 'Croatia', + 'Hungary', + 'Ireland', + 'Italy', + 'Lithuania', + 'Luxembourg', + 'Latvia', + 'Malta', + 'Netherlands', + 'Poland', + 'Portugal', + 'Romania', + 'Sweden', + 'Slovenia', + 'Slovakia', + 'UK' ] const codes = [ - 'AT', - 'BE', - 'BG', - 'CY', - 'CZ', - 'DE', - 'DK', - 'EE', - 'EL', - 'ES', - 'FI', - 'FR', - 'HR', - 'HU', - 'IE', - 'IT', - 'LT', - 'LU', - 'LV', - 'MT', - 'NL', - 'PL', - 'PT', - 'RO', - 'SE', - 'SI', - 'SK', - 'UK' + 'AT', + 'BE', + 'BG', + 'CY', + 'CZ', + 'DE', + 'DK', + 'EE', + 'EL', + 'ES', + 'FI', + 'FR', + 'HR', + 'HU', + 'IE', + 'IT', + 'LT', + 'LU', + 'LV', + 'MT', + 'NL', + 'PL', + 'PT', + 'RO', + 'SE', + 'SI', + 'SK', + 'UK' ] const countriesData = new Array(28 * 7 * 4 * 3) const codeData = new Array(28 * 7 * 4 * 3) for (let i = 0; i < 12; i++) - for (let j = 0; j < countries.length; j++) - for (let k = 0; k < 7; k++) { - countriesData[(i * 28 + j) * 7 + k] = countries[j] - codeData[(i * 28 + j) * 7 + k] = codes[j] - } + for (let j = 0; j < countries.length; j++) + for (let k = 0; k < 7; k++) { + countriesData[(i * 28 + j) * 7 + k] = countries[j] + codeData[(i * 28 + j) * 7 + k] = codes[j] + } const yearsData = [] for (let n = 0; n < 4; n++) { - for (let i = 0; i < 28; i++) yearsData.push('01', '02', '03', '04', '05', '06', '07') - for (let i = 0; i < 28; i++) yearsData.push('08', '09', '10', '11', '12', '13', '14') - for (let i = 0; i < 28; i++) yearsData.push('15', '16', '17', '18', '19', '20', '21') + for (let i = 0; i < 28; i++) yearsData.push('01', '02', '03', '04', '05', '06', '07') + for (let i = 0; i < 28; i++) yearsData.push('08', '09', '10', '11', '12', '13', '14') + for (let i = 0; i < 28; i++) yearsData.push('15', '16', '17', '18', '19', '20', '21') } const posNums = [ - 6, 8, 16, 17, 8, 10, 4, 22, 19, 28, 28, 23, 29, 17, 20, 24, 39, 22, 29, 49, 13, 3, 8, 9, 10, 11, - 5, 1, 12, 25, 24, 33, 22, 37, 5, 53, 78, 40, 20, 34, 37, 30, 38, 23, 24, 32, 27, 24, 34, 31, 27, - 25, 21, 21, 28, 16, 2, 11, 11, 7, 7, 7, 1, 16, 23, 20, 27, 14, 17, 14, 29, 14, 27, 33, 28, 26, 17, - 42, 32, 38, 44, 32, 38, 21, 15, 25, 16, 17, 14, 30, 9, 10, 12, 18, 13, 24, 22, 9, 29, 28, 34, 28, - 25, 30, 12, 10, 19, 17, 22, 17, 22, 8, 21, 20, 1, 23, 13, 12, 10, 7, 15, 13, 11, 11, 12, 5, 21, - 23, 20, 20, 19, 36, 1, 12, 5, 2, 11, 8, 10, 3, 42, 27, 35, 56, 29, 51, 5, 32, 24, 35, 19, 26, 30, - 10, 21, 28, 24, 31, 28, 18, 13, 15, 27, 23, 25, 15, 16, 2, 15, 23, 14, 26, 38, 26, 21, 19, 28, 11, - 14, 14, 15, 10, 25, 19, 16, 19, 16, 15, 8, 50, 40, 42, 56, 43, 30, 34, 16, 15, 28, 35, 31, 34, 21, - 12, 13, 9, 21, 14, 19, 10, 15, 26, 15, 25, 23, 28, 9, 1, 3, 7, 12, 7, 8, 3, 25, 46, 46, 46, 43, - 55, 22, 68, 113, 19, 31, 43, 51, 40, 12, 17, 16, 16, 13, 20, 17, 6, 22, 42, 35, 28, 30, 21, 22, - 22, 26, 23, 21, 19, 12, 3, 7, 18, 14, 10, 12, 7, 14, 13, 15, 24, 18, 20, 9, 6, 11, 6, 13, 13, 6, - 10, 6, 14, 14, 11, 10, 10, 7, 34, 40, 43, 41, 42, 54, 20, 18, 19, 29, 17, 15, 18, 9, 26, 27, 32, - 43, 44, 66, 18, 13, 13, 12, 15, 13, 8, 10, 9, 8, 11, 11, 2, 7, 3, 10, 13, 18, 17, 19, 29, 0, 21, - 36, 45, 33, 37, 27, 20, 6, 10, 18, 10, 11, 24, 1, 12, 24, 41, 26, 25, 17, 13, 7, 8, 10, 6, 4, 11, - 7, 12, 7, 13, 6, 15, 10, 2, 9, 3, 4, 4, 7, 10, 6, 16, 30, 29, 33, 38, 39, 18, 28, 39, 35, 39, 35, - 28, 10, 8, 24, 13, 25, 13, 7, 16, 23, 13, 19, 18, 18, 14, 14, 25, 21, 13, 18, 12, 8, 10, 15, 25, - 19, 22, 22, 30, 8, 24, 19, 21, 29, 15, 12, 9, 10, 11, 3, 9, 9, 4, 0, 20, 34, 9, 9, 13, 11, 12, 12, - 1, 15, 4, 7, 2, 4, 3, 10, 17, 12, 15, 13, 9, 42, 59, 51, 43, 50, 51, 26, 27, 27, 35, 37, 27, 20, - 12, 19, 8, 11, 6, 5, 8, 7, 23, 9, 26, 12, 17, 15, 10, 45, 41, 37, 40, 40, 47, 23, 6, 8, 24, 15, - 12, 11, 2, 15, 18, 27, 23, 11, 15, 7, 37, 45, 38, 46, 35, 40, 24, 24, 17, 13, 35, 27, 32, 20, 14, - 4, 9, 12, 4, 5, 5, 21, 26, 23, 29, 21, 40, 1, 2, 3, 1, 1, 3, 4, 0, 3, 4, 3, 3, 4, 6, 0, 19, 15, 9, - 9, 20, 11, 6, 24, 48, 51, 52, 43, 43, 16, 21, 18, 22, 18, 26, 19, 3, 0, 2, 4, 1, 0, 4, 1, 21, 19, - 26, 19, 14, 13, 2, 33, 35, 27, 21, 26, 21, 6, 19, 18, 10, 12, 8, 6, 5, 20, 26, 22, 31, 14, 23, 8, - 11, 23, 27, 20, 15, 19, 13, 25, 39, 31, 37, 36, 45, 17, 12, 19, 17, 11, 10, 16, 7, 18, 10, 4, 8, - 5, 4, 8, 53, 46, 33, 20, 33, 36, 17, 11, 10, 9, 13, 7, 5, 5, 11, 14, 15, 11, 13, 9, 9, 25, 28, 41, - 46, 34, 59, 35, 21, 28, 26, 25, 16, 15, 10, 19, 30, 20, 16, 23, 20, 22, 13, 13, 16, 20, 18, 14, - 13, 19, 33, 41, 28, 45, 48, 32, 26, 22, 20, 21, 23, 17, 12, 19, 14, 24, 20, 17, 9, 7, 5, 11, 16, - 19, 7, 19, 15, 28, 42, 48, 63, 55, 37, 38, 5, 15, 15, 11, 14, 13, 4, 13, 19, 12, 13, 20, 26, 3, 3, - 0, 4, 2, 3, 7, 1, 12, 13, 19, 29, 21, 20, 1, 8, 13, 15, 18, 22, 19, 11, 22, 33, 39, 43, 42, 37, - 26, 15, 26, 41, 25, 20, 29, 16, 21, 23, 18, 17, 17, 7, 7, 10, 32, 33, 26, 26, 30, 20, 17, 21, 22, - 14, 21, 19, 7, 22, 12, 17, 15, 17, 7, 4, 7, 8, 7, 3, 4, 4, 4, 1, 2, 7, 0, 2, 2, 1, 9, 0, 5, 4, 2, - 2, 0, 2, 2, 2, 0, 0, 0, 0, 6, 3, 0, 4, 1, 0, 0, 9, 13, 4, 6, 9, 4, 7, 5, 10, 6, 14, 9, 10, 9, 8, - 5, 6, 4, 6, 1, 3, 1, 0, 2, 2, 0, 1, 0, 1, 1, 1, 2, 1, 0, 0, 2, 7, 3, 6, 7, 7, 2, 2, 3, 1, 5, 1, 4, - 1, 4, 3, 4, 5, 3, 0, 0, 2, 0, 3, 2, 4, 1, 2, 0, 8, 18, 6, 7, 7, 5, 3, 3, 4, 6, 0, 1, 0, 3, 9, 3, - 5, 1, 1, 2, 0, 3, 2, 2, 1, 1, 0, 8, 4, 3, 4, 5, 13, 0, 2, 2, 0, 3, 4, 0, 2, 6, 3, 1, 4, 5, 7, 0, - 7, 5, 6, 2, 5, 3, 1, 4, 1, 4, 0, 0, 1, 0, 10, 7, 9, 3, 3, 7, 0, 3, 0, 2, 2, 2, 2, 1, 11, 2, 3, 4, - 3, 5, 0, 2, 4, 4, 0, 2, 2, 0, 7, 7, 3, 4, 4, 5, 2, 3, 6, 7, 5, 4, 9, 1, 13, 6, 4, 12, 4, 9, 1, 8, - 4, 6, 5, 8, 9, 6, 5, 7, 1, 3, 3, 3, 1, 12, 17, 6, 17, 12, 19, 10, 27, 50, 22, 28, 12, 21, 16, 6, - 3, 1, 3, 14, 6, 4, 18, 14, 7, 3, 10, 15, 9, 0, 4, 4, 1, 3, 6, 1, 4, 7, 3, 5, 2, 4, 1, 12, 5, 23, - 20, 15, 13, 10, 3, 5, 11, 6, 6, 7, 6, 10, 9, 12, 13, 12, 12, 4, 7, 6, 11, 7, 3, 3, 3, 9, 3, 6, 4, - 5, 5, 2, 1, 3, 5, 8, 5, 6, 3, 13, 10, 12, 13, 13, 11, 23, 3, 3, 6, 2, 2, 3, 3, 19, 18, 27, 24, 20, - 30, 4, 2, 0, 0, 0, 0, 0, 0, 9, 7, 12, 9, 10, 12, 1, 21, 29, 15, 21, 19, 17, 9, 2, 1, 10, 7, 6, 2, - 5, 5, 12, 12, 9, 11, 8, 5, 6, 17, 15, 21, 22, 15, 16, 4, 0, 4, 3, 3, 1, 1, 14, 9, 16, 10, 12, 11, - 2, 1, 8, 8, 13, 14, 7, 9, 13, 10, 10, 12, 8, 14, 4, 12, 16, 25, 15, 19, 12, 6, 1, 1, 2, 3, 2, 2, - 2, 2, 2, 0, 4, 0, 4, 1, 2, 6, 3, 4, 6, 2, 2, 20, 52, 8, 24, 9, 17, 29, 30, 38, 39, 27, 24, 23, 13, - 3, 4, 6, 2, 5, 3, 1, 0, 1, 1, 2, 1, 2, 0, 4, 11, 10, 6, 5, 5, 2, 22, 28, 27, 19, 13, 16, 12, 15, - 9, 16, 15, 16, 10, 6, 8, 3, 4, 6, 7, 5, 5, 11, 9, 15, 8, 5, 4, 11, 12, 13, 28, 22, 5, 9, 3, 2, 6, - 5, 4, 7, 7, 0, 8, 0, 0, 0, 3, 1, 0, 7, 9, 12, 9, 8, 4, 4, 2, 3, 2, 1, 2, 7, 0, 6, 1, 1, 5, 1, 6, - 1, 21, 21, 31, 21, 23, 26, 1, 0, 7, 10, 5, 5, 4, 1, 2, 4, 2, 6, 1, 3, 1, 6, 6, 9, 8, 11, 12, 2, - 30, 54, 32, 32, 20, 24, 22, 4, 9, 4, 8, 5, 8, 3, 3, 8, 5, 8, 7, 9, 2, 12, 11, 9, 16, 3, 6, 5, 5, - 5, 12, 4, 1, 0, 2, 4, 4, 4, 0, 7, 3, 0, 4, 4, 3, 7, 1, 0, 0, 3, 6, 0, 4, 2, 0, 0, 4, 6, 1, 4, 5, - 1, 0, 14, 11, 3, 3, 9, 6, 3, 1, 7, 6, 6, 7, 4, 2, 7, 8, 11, 2, 3, 7, 3, 7, 0, 2, 6, 0, 0, 0, 4, 3, - 2, 0, 4, 3, 0, 0, 0, 5, 3, 2, 5, 0, 5, 5, 6, 4, 3, 1, 1, 5, 4, 3, 3, 5, 2, 0, 0, 7, 5, 6, 7, 2, 2, - 9, 9, 7, 9, 6, 1, 2, 1, 5, 2, 3, 1, 0, 0, 2, 11, 4, 1, 1, 4, 4, 2, 2, 1, 1, 1, 2, 1, 5, 16, 9, 6, - 9, 15, 2, 0, 0, 3, 4, 0, 0, 0, 3, 4, 9, 3, 7, 5, 0, 3, 2, 5, 2, 2, 4, 1, 3, 2, 3, 1, 1, 2, 1, 14, - 13, 12, 9, 15, 15, 2, 9, 4, 8, 6, 3, 9, 8, 8, 5, 6, 4, 5, 2, 1, 0, 5, 15, 4, 6, 4, 0, 5, 9, 4, 7, - 0, 3, 1, 10, 10, 6, 16, 12, 9, 6, 5, 3, 2, 10, 8, 8, 5, 5, 18, 17, 13, 12, 6, 8, 2, 1, 1, 3, 2, 4, - 2, 9, 4, 5, 6, 5, 10, 0, 37, 55, 10, 11, 21, 27, 20, 6, 5, 15, 14, 13, 11, 11, 8, 7, 5, 7, 6, 10, - 5, 2, 6, 4, 7, 9, 3, 4, 3, 4, 2, 5, 4, 0, 0, 0, 7, 7, 17, 19, 17, 11, 1, 0, 5, 0, 4, 3, 3, 7, 13, - 14, 15, 14, 12, 0, 9, 4, 13, 9, 12, 12, 2, 13, 15, 20, 11, 11, 9, 5, 9, 8, 9, 10, 5, 7, 12, 15, 3, - 4, 12, 4, 6, 9, 2, 1, 1, 1, 1, 2, 1, 3, 7, 2, 10, 8, 14, 0, 0, 5, 1, 4, 2, 2, 3, 0, 3, 12, 10, 9, - 32, 0, 1, 10, 11, 6, 9, 11, 2, 9, 1, 5, 3, 6, 4, 7, 10, 6, 15, 5, 8, 6, 3, 3, 15, 13, 17, 8, 16, - 13, 6, 13, 11, 11, 13, 10, 6, 8, 11, 7, 15, 13, 9, 1, 5, 5, 10, 2, 10, 4, 7, 8, 9, 8, 13, 10, 10, - 8, 16, 17, 5, 10, 12, 12, 6, 3, 3, 8, 6, 1, 4, 0, 4, 1, 5, 2, 0, 1, 0, 1, 4, 5, 6, 7, 5, 5, 43, - 50, 26, 26, 25, 37, 21, 15, 3, 12, 16, 5, 8, 5, 8, 13, 13, 10, 7, 7, 3, 0, 3, 1, 3, 1, 4, 3, 5, 9, - 14, 12, 9, 7, 0, 8, 8, 8, 6, 13, 9, 7, 6, 12, 5, 9, 8, 9, 5, 3, 6, 9, 7, 7, 12, 0, 18, 2, 17, 3, - 16, 8, 8, 5, 8, 17, 7, 5, 3, 5, 5, 4, 6, 8, 5, 2, 4, 11, 2, 8, 1, 2, 2, 0, 10, 3, 10, 9, 8, 8, 3, - 3, 9, 8, 3, 3, 2, 0, 6, 4, 2, 0, 2, 4, 0, 12, 14, 19, 23, 18, 20, 1, 9, 5, 14, 8, 4, 4, 1, 6, 6, - 9, 6, 10, 5, 1, 5, 10, 8, 15, 7, 6, 3, 9, 16, 16, 15, 11, 19, 7, 4, 8, 14, 5, 11, 9, 2, 6, 8, 11, - 12, 6, 6, 1, 7, 7, 6, 9, 13, 9, 2, 8, 10, 11, 19, 11, 8, 10, 9, 16, 17, 23, 15, 18, 4, 2, 2, 9, 8, - 13, 10, 1, 0, 1, 3, 0, 2, 1, 1, 9, 24, 8, 10, 19, 11, 3, 47, 57, 13, 6, 9, 42, 29, 3, 3, 12, 21, - 10, 9, 4, 4, 13, 13, 16, 17, 3, 3, 2, 1, 1, 5, 1, 1, 1, 3, 3, 6, 9, 6, 2, 3, 0, 7, 8, 6, 10, 7, 2, - 6, 16, 19, 13, 5, 13, 14, 4, 2, 3, 6, 5, 0, 0, 6, 9, 10, 7, 5, 9, 3, 9, 8, 12, 16, 15, 9, 5, 1, 4, - 4, 8, 5, 6, 0, 2, 6, 5, 7, 2, 1, 0, 1, 5, 2, 8, 6, 4, 1, 7, 4, 6, 4, 4, 4, 0, 8, 3, 6, 4, 2, 1, 1, - 6, 9, 26, 31, 22, 37, 2, 7, 11, 19, 11, 6, 8, 3, 5, 2, 6, 4, 0, 6, 2, 3, 4, 7, 5, 4, 5, 0, 9, 12, - 13, 12, 12, 20, 9, 6, 10, 13, 5, 9, 10, 5, 2, 12, 11, 7, 10, 8, 1, 7, 2, 10, 9, 7, 5, 4, 8, 10, - 11, 19, 11, 8, 10, 9, 16, 17, 23, 15, 18, 4, 2, 2, 9, 8, 13, 10, 1, 0, 1, 3, 0, 2, 1, 1, 9, 24, 8, - 10, 19, 11, 3, 47, 57, 13, 6, 9, 42, 29, 3, 3, 12, 21, 10, 9, 4, 4, 13, 13, 16, 17, 3, 3, 2, 1, 1, - 5, 1, 1, 1, 3, 3, 6, 9, 6, 2, 3, 0, 7, 8, 6, 10, 7, 2, 6, 16, 19, 13, 5, 13, 14, 4, 2, 3, 6, 5, 0, - 0, 6, 9, 10, 7, 5, 9, 3, 9, 8, 12, 16, 15, 9, 5, 1, 4, 4, 8, 5, 6, 0, 2, 6, 5, 7, 2, 1, 0, 1, 5, - 2, 8, 6, 4, 1, 7, 4, 6, 4, 4, 4, 0, 8, 3, 6, 4, 2, 1, 1, 6, 9, 26, 31, 22, 37, 2, 7, 11, 19, 11, - 6, 8, 3, 5, 2, 6, 4, 0, 6, 2, 3, 4, 7, 5, 4, 5, 0, 9, 12, 13, 12, 12, 20, 9, 6, 10, 13, 5, 9, 10, - 5, 2, 12, 11, 7, 10, 8, 1, 7, 2, 10, 9, 7, 5, 4 + 6, 8, 16, 17, 8, 10, 4, 22, 19, 28, 28, 23, 29, 17, 20, 24, 39, 22, 29, 49, 13, 3, 8, 9, 10, 11, + 5, 1, 12, 25, 24, 33, 22, 37, 5, 53, 78, 40, 20, 34, 37, 30, 38, 23, 24, 32, 27, 24, 34, 31, 27, + 25, 21, 21, 28, 16, 2, 11, 11, 7, 7, 7, 1, 16, 23, 20, 27, 14, 17, 14, 29, 14, 27, 33, 28, 26, + 17, 42, 32, 38, 44, 32, 38, 21, 15, 25, 16, 17, 14, 30, 9, 10, 12, 18, 13, 24, 22, 9, 29, 28, + 34, 28, 25, 30, 12, 10, 19, 17, 22, 17, 22, 8, 21, 20, 1, 23, 13, 12, 10, 7, 15, 13, 11, 11, 12, + 5, 21, 23, 20, 20, 19, 36, 1, 12, 5, 2, 11, 8, 10, 3, 42, 27, 35, 56, 29, 51, 5, 32, 24, 35, 19, + 26, 30, 10, 21, 28, 24, 31, 28, 18, 13, 15, 27, 23, 25, 15, 16, 2, 15, 23, 14, 26, 38, 26, 21, + 19, 28, 11, 14, 14, 15, 10, 25, 19, 16, 19, 16, 15, 8, 50, 40, 42, 56, 43, 30, 34, 16, 15, 28, + 35, 31, 34, 21, 12, 13, 9, 21, 14, 19, 10, 15, 26, 15, 25, 23, 28, 9, 1, 3, 7, 12, 7, 8, 3, 25, + 46, 46, 46, 43, 55, 22, 68, 113, 19, 31, 43, 51, 40, 12, 17, 16, 16, 13, 20, 17, 6, 22, 42, 35, + 28, 30, 21, 22, 22, 26, 23, 21, 19, 12, 3, 7, 18, 14, 10, 12, 7, 14, 13, 15, 24, 18, 20, 9, 6, + 11, 6, 13, 13, 6, 10, 6, 14, 14, 11, 10, 10, 7, 34, 40, 43, 41, 42, 54, 20, 18, 19, 29, 17, 15, + 18, 9, 26, 27, 32, 43, 44, 66, 18, 13, 13, 12, 15, 13, 8, 10, 9, 8, 11, 11, 2, 7, 3, 10, 13, 18, + 17, 19, 29, 0, 21, 36, 45, 33, 37, 27, 20, 6, 10, 18, 10, 11, 24, 1, 12, 24, 41, 26, 25, 17, 13, + 7, 8, 10, 6, 4, 11, 7, 12, 7, 13, 6, 15, 10, 2, 9, 3, 4, 4, 7, 10, 6, 16, 30, 29, 33, 38, 39, + 18, 28, 39, 35, 39, 35, 28, 10, 8, 24, 13, 25, 13, 7, 16, 23, 13, 19, 18, 18, 14, 14, 25, 21, + 13, 18, 12, 8, 10, 15, 25, 19, 22, 22, 30, 8, 24, 19, 21, 29, 15, 12, 9, 10, 11, 3, 9, 9, 4, 0, + 20, 34, 9, 9, 13, 11, 12, 12, 1, 15, 4, 7, 2, 4, 3, 10, 17, 12, 15, 13, 9, 42, 59, 51, 43, 50, + 51, 26, 27, 27, 35, 37, 27, 20, 12, 19, 8, 11, 6, 5, 8, 7, 23, 9, 26, 12, 17, 15, 10, 45, 41, + 37, 40, 40, 47, 23, 6, 8, 24, 15, 12, 11, 2, 15, 18, 27, 23, 11, 15, 7, 37, 45, 38, 46, 35, 40, + 24, 24, 17, 13, 35, 27, 32, 20, 14, 4, 9, 12, 4, 5, 5, 21, 26, 23, 29, 21, 40, 1, 2, 3, 1, 1, 3, + 4, 0, 3, 4, 3, 3, 4, 6, 0, 19, 15, 9, 9, 20, 11, 6, 24, 48, 51, 52, 43, 43, 16, 21, 18, 22, 18, + 26, 19, 3, 0, 2, 4, 1, 0, 4, 1, 21, 19, 26, 19, 14, 13, 2, 33, 35, 27, 21, 26, 21, 6, 19, 18, + 10, 12, 8, 6, 5, 20, 26, 22, 31, 14, 23, 8, 11, 23, 27, 20, 15, 19, 13, 25, 39, 31, 37, 36, 45, + 17, 12, 19, 17, 11, 10, 16, 7, 18, 10, 4, 8, 5, 4, 8, 53, 46, 33, 20, 33, 36, 17, 11, 10, 9, 13, + 7, 5, 5, 11, 14, 15, 11, 13, 9, 9, 25, 28, 41, 46, 34, 59, 35, 21, 28, 26, 25, 16, 15, 10, 19, + 30, 20, 16, 23, 20, 22, 13, 13, 16, 20, 18, 14, 13, 19, 33, 41, 28, 45, 48, 32, 26, 22, 20, 21, + 23, 17, 12, 19, 14, 24, 20, 17, 9, 7, 5, 11, 16, 19, 7, 19, 15, 28, 42, 48, 63, 55, 37, 38, 5, + 15, 15, 11, 14, 13, 4, 13, 19, 12, 13, 20, 26, 3, 3, 0, 4, 2, 3, 7, 1, 12, 13, 19, 29, 21, 20, + 1, 8, 13, 15, 18, 22, 19, 11, 22, 33, 39, 43, 42, 37, 26, 15, 26, 41, 25, 20, 29, 16, 21, 23, + 18, 17, 17, 7, 7, 10, 32, 33, 26, 26, 30, 20, 17, 21, 22, 14, 21, 19, 7, 22, 12, 17, 15, 17, 7, + 4, 7, 8, 7, 3, 4, 4, 4, 1, 2, 7, 0, 2, 2, 1, 9, 0, 5, 4, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 6, 3, 0, + 4, 1, 0, 0, 9, 13, 4, 6, 9, 4, 7, 5, 10, 6, 14, 9, 10, 9, 8, 5, 6, 4, 6, 1, 3, 1, 0, 2, 2, 0, 1, + 0, 1, 1, 1, 2, 1, 0, 0, 2, 7, 3, 6, 7, 7, 2, 2, 3, 1, 5, 1, 4, 1, 4, 3, 4, 5, 3, 0, 0, 2, 0, 3, + 2, 4, 1, 2, 0, 8, 18, 6, 7, 7, 5, 3, 3, 4, 6, 0, 1, 0, 3, 9, 3, 5, 1, 1, 2, 0, 3, 2, 2, 1, 1, 0, + 8, 4, 3, 4, 5, 13, 0, 2, 2, 0, 3, 4, 0, 2, 6, 3, 1, 4, 5, 7, 0, 7, 5, 6, 2, 5, 3, 1, 4, 1, 4, 0, + 0, 1, 0, 10, 7, 9, 3, 3, 7, 0, 3, 0, 2, 2, 2, 2, 1, 11, 2, 3, 4, 3, 5, 0, 2, 4, 4, 0, 2, 2, 0, + 7, 7, 3, 4, 4, 5, 2, 3, 6, 7, 5, 4, 9, 1, 13, 6, 4, 12, 4, 9, 1, 8, 4, 6, 5, 8, 9, 6, 5, 7, 1, + 3, 3, 3, 1, 12, 17, 6, 17, 12, 19, 10, 27, 50, 22, 28, 12, 21, 16, 6, 3, 1, 3, 14, 6, 4, 18, 14, + 7, 3, 10, 15, 9, 0, 4, 4, 1, 3, 6, 1, 4, 7, 3, 5, 2, 4, 1, 12, 5, 23, 20, 15, 13, 10, 3, 5, 11, + 6, 6, 7, 6, 10, 9, 12, 13, 12, 12, 4, 7, 6, 11, 7, 3, 3, 3, 9, 3, 6, 4, 5, 5, 2, 1, 3, 5, 8, 5, + 6, 3, 13, 10, 12, 13, 13, 11, 23, 3, 3, 6, 2, 2, 3, 3, 19, 18, 27, 24, 20, 30, 4, 2, 0, 0, 0, 0, + 0, 0, 9, 7, 12, 9, 10, 12, 1, 21, 29, 15, 21, 19, 17, 9, 2, 1, 10, 7, 6, 2, 5, 5, 12, 12, 9, 11, + 8, 5, 6, 17, 15, 21, 22, 15, 16, 4, 0, 4, 3, 3, 1, 1, 14, 9, 16, 10, 12, 11, 2, 1, 8, 8, 13, 14, + 7, 9, 13, 10, 10, 12, 8, 14, 4, 12, 16, 25, 15, 19, 12, 6, 1, 1, 2, 3, 2, 2, 2, 2, 2, 0, 4, 0, + 4, 1, 2, 6, 3, 4, 6, 2, 2, 20, 52, 8, 24, 9, 17, 29, 30, 38, 39, 27, 24, 23, 13, 3, 4, 6, 2, 5, + 3, 1, 0, 1, 1, 2, 1, 2, 0, 4, 11, 10, 6, 5, 5, 2, 22, 28, 27, 19, 13, 16, 12, 15, 9, 16, 15, 16, + 10, 6, 8, 3, 4, 6, 7, 5, 5, 11, 9, 15, 8, 5, 4, 11, 12, 13, 28, 22, 5, 9, 3, 2, 6, 5, 4, 7, 7, + 0, 8, 0, 0, 0, 3, 1, 0, 7, 9, 12, 9, 8, 4, 4, 2, 3, 2, 1, 2, 7, 0, 6, 1, 1, 5, 1, 6, 1, 21, 21, + 31, 21, 23, 26, 1, 0, 7, 10, 5, 5, 4, 1, 2, 4, 2, 6, 1, 3, 1, 6, 6, 9, 8, 11, 12, 2, 30, 54, 32, + 32, 20, 24, 22, 4, 9, 4, 8, 5, 8, 3, 3, 8, 5, 8, 7, 9, 2, 12, 11, 9, 16, 3, 6, 5, 5, 5, 12, 4, + 1, 0, 2, 4, 4, 4, 0, 7, 3, 0, 4, 4, 3, 7, 1, 0, 0, 3, 6, 0, 4, 2, 0, 0, 4, 6, 1, 4, 5, 1, 0, 14, + 11, 3, 3, 9, 6, 3, 1, 7, 6, 6, 7, 4, 2, 7, 8, 11, 2, 3, 7, 3, 7, 0, 2, 6, 0, 0, 0, 4, 3, 2, 0, + 4, 3, 0, 0, 0, 5, 3, 2, 5, 0, 5, 5, 6, 4, 3, 1, 1, 5, 4, 3, 3, 5, 2, 0, 0, 7, 5, 6, 7, 2, 2, 9, + 9, 7, 9, 6, 1, 2, 1, 5, 2, 3, 1, 0, 0, 2, 11, 4, 1, 1, 4, 4, 2, 2, 1, 1, 1, 2, 1, 5, 16, 9, 6, + 9, 15, 2, 0, 0, 3, 4, 0, 0, 0, 3, 4, 9, 3, 7, 5, 0, 3, 2, 5, 2, 2, 4, 1, 3, 2, 3, 1, 1, 2, 1, + 14, 13, 12, 9, 15, 15, 2, 9, 4, 8, 6, 3, 9, 8, 8, 5, 6, 4, 5, 2, 1, 0, 5, 15, 4, 6, 4, 0, 5, 9, + 4, 7, 0, 3, 1, 10, 10, 6, 16, 12, 9, 6, 5, 3, 2, 10, 8, 8, 5, 5, 18, 17, 13, 12, 6, 8, 2, 1, 1, + 3, 2, 4, 2, 9, 4, 5, 6, 5, 10, 0, 37, 55, 10, 11, 21, 27, 20, 6, 5, 15, 14, 13, 11, 11, 8, 7, 5, + 7, 6, 10, 5, 2, 6, 4, 7, 9, 3, 4, 3, 4, 2, 5, 4, 0, 0, 0, 7, 7, 17, 19, 17, 11, 1, 0, 5, 0, 4, + 3, 3, 7, 13, 14, 15, 14, 12, 0, 9, 4, 13, 9, 12, 12, 2, 13, 15, 20, 11, 11, 9, 5, 9, 8, 9, 10, + 5, 7, 12, 15, 3, 4, 12, 4, 6, 9, 2, 1, 1, 1, 1, 2, 1, 3, 7, 2, 10, 8, 14, 0, 0, 5, 1, 4, 2, 2, + 3, 0, 3, 12, 10, 9, 32, 0, 1, 10, 11, 6, 9, 11, 2, 9, 1, 5, 3, 6, 4, 7, 10, 6, 15, 5, 8, 6, 3, + 3, 15, 13, 17, 8, 16, 13, 6, 13, 11, 11, 13, 10, 6, 8, 11, 7, 15, 13, 9, 1, 5, 5, 10, 2, 10, 4, + 7, 8, 9, 8, 13, 10, 10, 8, 16, 17, 5, 10, 12, 12, 6, 3, 3, 8, 6, 1, 4, 0, 4, 1, 5, 2, 0, 1, 0, + 1, 4, 5, 6, 7, 5, 5, 43, 50, 26, 26, 25, 37, 21, 15, 3, 12, 16, 5, 8, 5, 8, 13, 13, 10, 7, 7, 3, + 0, 3, 1, 3, 1, 4, 3, 5, 9, 14, 12, 9, 7, 0, 8, 8, 8, 6, 13, 9, 7, 6, 12, 5, 9, 8, 9, 5, 3, 6, 9, + 7, 7, 12, 0, 18, 2, 17, 3, 16, 8, 8, 5, 8, 17, 7, 5, 3, 5, 5, 4, 6, 8, 5, 2, 4, 11, 2, 8, 1, 2, + 2, 0, 10, 3, 10, 9, 8, 8, 3, 3, 9, 8, 3, 3, 2, 0, 6, 4, 2, 0, 2, 4, 0, 12, 14, 19, 23, 18, 20, + 1, 9, 5, 14, 8, 4, 4, 1, 6, 6, 9, 6, 10, 5, 1, 5, 10, 8, 15, 7, 6, 3, 9, 16, 16, 15, 11, 19, 7, + 4, 8, 14, 5, 11, 9, 2, 6, 8, 11, 12, 6, 6, 1, 7, 7, 6, 9, 13, 9, 2, 8, 10, 11, 19, 11, 8, 10, 9, + 16, 17, 23, 15, 18, 4, 2, 2, 9, 8, 13, 10, 1, 0, 1, 3, 0, 2, 1, 1, 9, 24, 8, 10, 19, 11, 3, 47, + 57, 13, 6, 9, 42, 29, 3, 3, 12, 21, 10, 9, 4, 4, 13, 13, 16, 17, 3, 3, 2, 1, 1, 5, 1, 1, 1, 3, + 3, 6, 9, 6, 2, 3, 0, 7, 8, 6, 10, 7, 2, 6, 16, 19, 13, 5, 13, 14, 4, 2, 3, 6, 5, 0, 0, 6, 9, 10, + 7, 5, 9, 3, 9, 8, 12, 16, 15, 9, 5, 1, 4, 4, 8, 5, 6, 0, 2, 6, 5, 7, 2, 1, 0, 1, 5, 2, 8, 6, 4, + 1, 7, 4, 6, 4, 4, 4, 0, 8, 3, 6, 4, 2, 1, 1, 6, 9, 26, 31, 22, 37, 2, 7, 11, 19, 11, 6, 8, 3, 5, + 2, 6, 4, 0, 6, 2, 3, 4, 7, 5, 4, 5, 0, 9, 12, 13, 12, 12, 20, 9, 6, 10, 13, 5, 9, 10, 5, 2, 12, + 11, 7, 10, 8, 1, 7, 2, 10, 9, 7, 5, 4, 8, 10, 11, 19, 11, 8, 10, 9, 16, 17, 23, 15, 18, 4, 2, 2, + 9, 8, 13, 10, 1, 0, 1, 3, 0, 2, 1, 1, 9, 24, 8, 10, 19, 11, 3, 47, 57, 13, 6, 9, 42, 29, 3, 3, + 12, 21, 10, 9, 4, 4, 13, 13, 16, 17, 3, 3, 2, 1, 1, 5, 1, 1, 1, 3, 3, 6, 9, 6, 2, 3, 0, 7, 8, 6, + 10, 7, 2, 6, 16, 19, 13, 5, 13, 14, 4, 2, 3, 6, 5, 0, 0, 6, 9, 10, 7, 5, 9, 3, 9, 8, 12, 16, 15, + 9, 5, 1, 4, 4, 8, 5, 6, 0, 2, 6, 5, 7, 2, 1, 0, 1, 5, 2, 8, 6, 4, 1, 7, 4, 6, 4, 4, 4, 0, 8, 3, + 6, 4, 2, 1, 1, 6, 9, 26, 31, 22, 37, 2, 7, 11, 19, 11, 6, 8, 3, 5, 2, 6, 4, 0, 6, 2, 3, 4, 7, 5, + 4, 5, 0, 9, 12, 13, 12, 12, 20, 9, 6, 10, 13, 5, 9, 10, 5, 2, 12, 11, 7, 10, 8, 1, 7, 2, 10, 9, + 7, 5, 4 ] const smallNums = [ - ...new Array(28).fill([0.1122, 0.0918, 0.0918, 0.0969, 0.0918, 0.0969, 0.0969]).flat(), - ...new Array(28).fill([0.0566, 0.0721, 0.0721, 0.0772, 0.0824, 0.0875, 0.0875]).flat(), - ...new Array(28).fill([0.0885, 0.0781, 0.0729, 0.0625, 0.0729, 0.0625, 0.0625]).flat(), - ...new Array(28).fill([0.0691, 0.0642, 0.0691, 0.0691, 0.0592, 0.0642, 0.0691]).flat(), - ...new Array(28).fill([0.0142, 0.0142, 0.0095, 0.0095, 0.0095, 0.0095, 0.0047]).flat(), - ...new Array(28).fill([0.0306, 0.0408, 0.0306, 0.0357, 0.0357, 0.0357, 0.0408]).flat(), - ...new Array(28).fill([0.0357, 0.0408, 0.0357, 0.0357, 0.0408, 0.0306, 0.0306]).flat(), - ...new Array(28).fill([0.0189, 0.0252, 0.0189, 0.0126, 0.0126, 0.0126, 0.0063]).flat(), - ...new Array(28).fill([0.0225, 0.0225, 0.0338, 0.0281, 0.0338, 0.0338, 0.0394]).flat(), - ...new Array(28).fill([0.0388, 0.0388, 0.0388, 0.0388, 0.0388, 0.0333, 0.0222]).flat(), - ...new Array(28).fill([0.0238, 0.0238, 0.0333, 0.038, 0.0333, 0.0333, 0.0285]).flat(), - 0.2734, - 0.25, - 0.2707, - 0.4756, - 0.362, - 0.2545, - 0.5, - 0.2734, - 0.375, - 0.464, - 0.6486, - 0.4827, - 0.5515, - 0.2083, - 0.0781, - 0.0312, - 0.232, - 0.2594, - 0.3218, - 0.2121, - 0.0833, - 0, - 0.0625, - 0.1546, - 0, - 0.1609, - 0.0424, - 0.2083, - 0.3125, - 0.4687, - 0.3093, - 0.3027, - 0.5632, - 0.2969, - 0.25, - 0.4687, - 0.3125, - 0.2707, - 0.1297, - 0.1609, - 0.5939, - 0.5416, - 0.0781, - 0.0937, - 0.3093, - 0.5189, - 0.2816, - 0.3393, - 0.1666, - 0.1171, - 0.2812, - 0.3093, - 0.5621, - 0.4827, - 0.1272, - 0.1666, - 0.0781, - 0.0312, - 0.0386, - 0.1297, - 0.0402, - 0.0424, - 0.0416, - 0.1562, - 0.0937, - 0.1546, - 0.2594, - 0.2413, - 0.1272, - 0.2916, - 0, - 0.1562, - 0.1933, - 0.1297, - 0.2816, - 0.2121, - 0.0833, - 0.1953, - 0.4375, - 0.5027, - 0.3891, - 0.1609, - 0.4666, - 0.625, - 0.1171, - 0.0312, - 0.0773, - 0.1729, - 0.1206, - 0, - 0, - 0.1953, - 0.25, - 0.232, - 0.2162, - 0.1206, - 0.2969, - 0.1666, - 0.2734, - 0.1875, - 0.1933, - 0.4324, - 0.4827, - 0.2969, - 0.375, - 0.039, - 0.0937, - 0.116, - 0.2162, - 0.1609, - 0.1696, - 0, - 0.0781, - 0.1562, - 0.1546, - 0.1729, - 0.0804, - 0.0424, - 0, - 0.0781, - 0.1875, - 0.116, - 0.3891, - 0.362, - 0.2545, - 0.1666, - 0.2343, - 0.0937, - 0.1546, - 0.1297, - 0.1206, - 0.0848, - 0, - 0.5078, - 0.125, - 0.348, - 0.2594, - 0.0804, - 0.0424, - 0.0833, - 0.1953, - 0.25, - 0.5414, - 0.6918, - 0.5632, - 0.6363, - 0.75, - 0.2343, - 0.2187, - 0.3867, - 0.3891, - 0.1609, - 0.2545, - 0.2083, - 0.1953, - 0.0625, - 0.1546, - 0.1297, - 0, - 0.1696, - 0.125, - 0.0781, - 0.0937, - 0.1546, - 0.1729, - 0.1206, - 0.1696, - 0, - 0.2734, - 0.2187, - 0.348, - 0.3027, - 0.3218, - 0.5515, - 0.3333, - 0.1953, - 0.1875, - 0.3093, - 0.1297, - 0.2413, - 0.2969, - 0.3333, - 0.0781, - 0.2187, - 0.232, - 0.1729, - 0.2816, - 0.2545, - 0.125, - 0.1953, - 0.0312, - 0.2707, - 0.2162, - 0.2413, - 0.2121, - 0.1666 + ...new Array(28).fill([0.1122, 0.0918, 0.0918, 0.0969, 0.0918, 0.0969, 0.0969]).flat(), + ...new Array(28).fill([0.0566, 0.0721, 0.0721, 0.0772, 0.0824, 0.0875, 0.0875]).flat(), + ...new Array(28).fill([0.0885, 0.0781, 0.0729, 0.0625, 0.0729, 0.0625, 0.0625]).flat(), + ...new Array(28).fill([0.0691, 0.0642, 0.0691, 0.0691, 0.0592, 0.0642, 0.0691]).flat(), + ...new Array(28).fill([0.0142, 0.0142, 0.0095, 0.0095, 0.0095, 0.0095, 0.0047]).flat(), + ...new Array(28).fill([0.0306, 0.0408, 0.0306, 0.0357, 0.0357, 0.0357, 0.0408]).flat(), + ...new Array(28).fill([0.0357, 0.0408, 0.0357, 0.0357, 0.0408, 0.0306, 0.0306]).flat(), + ...new Array(28).fill([0.0189, 0.0252, 0.0189, 0.0126, 0.0126, 0.0126, 0.0063]).flat(), + ...new Array(28).fill([0.0225, 0.0225, 0.0338, 0.0281, 0.0338, 0.0338, 0.0394]).flat(), + ...new Array(28).fill([0.0388, 0.0388, 0.0388, 0.0388, 0.0388, 0.0333, 0.0222]).flat(), + ...new Array(28).fill([0.0238, 0.0238, 0.0333, 0.038, 0.0333, 0.0333, 0.0285]).flat(), + 0.2734, + 0.25, + 0.2707, + 0.4756, + 0.362, + 0.2545, + 0.5, + 0.2734, + 0.375, + 0.464, + 0.6486, + 0.4827, + 0.5515, + 0.2083, + 0.0781, + 0.0312, + 0.232, + 0.2594, + 0.3218, + 0.2121, + 0.0833, + 0, + 0.0625, + 0.1546, + 0, + 0.1609, + 0.0424, + 0.2083, + 0.3125, + 0.4687, + 0.3093, + 0.3027, + 0.5632, + 0.2969, + 0.25, + 0.4687, + 0.3125, + 0.2707, + 0.1297, + 0.1609, + 0.5939, + 0.5416, + 0.0781, + 0.0937, + 0.3093, + 0.5189, + 0.2816, + 0.3393, + 0.1666, + 0.1171, + 0.2812, + 0.3093, + 0.5621, + 0.4827, + 0.1272, + 0.1666, + 0.0781, + 0.0312, + 0.0386, + 0.1297, + 0.0402, + 0.0424, + 0.0416, + 0.1562, + 0.0937, + 0.1546, + 0.2594, + 0.2413, + 0.1272, + 0.2916, + 0, + 0.1562, + 0.1933, + 0.1297, + 0.2816, + 0.2121, + 0.0833, + 0.1953, + 0.4375, + 0.5027, + 0.3891, + 0.1609, + 0.4666, + 0.625, + 0.1171, + 0.0312, + 0.0773, + 0.1729, + 0.1206, + 0, + 0, + 0.1953, + 0.25, + 0.232, + 0.2162, + 0.1206, + 0.2969, + 0.1666, + 0.2734, + 0.1875, + 0.1933, + 0.4324, + 0.4827, + 0.2969, + 0.375, + 0.039, + 0.0937, + 0.116, + 0.2162, + 0.1609, + 0.1696, + 0, + 0.0781, + 0.1562, + 0.1546, + 0.1729, + 0.0804, + 0.0424, + 0, + 0.0781, + 0.1875, + 0.116, + 0.3891, + 0.362, + 0.2545, + 0.1666, + 0.2343, + 0.0937, + 0.1546, + 0.1297, + 0.1206, + 0.0848, + 0, + 0.5078, + 0.125, + 0.348, + 0.2594, + 0.0804, + 0.0424, + 0.0833, + 0.1953, + 0.25, + 0.5414, + 0.6918, + 0.5632, + 0.6363, + 0.75, + 0.2343, + 0.2187, + 0.3867, + 0.3891, + 0.1609, + 0.2545, + 0.2083, + 0.1953, + 0.0625, + 0.1546, + 0.1297, + 0, + 0.1696, + 0.125, + 0.0781, + 0.0937, + 0.1546, + 0.1729, + 0.1206, + 0.1696, + 0, + 0.2734, + 0.2187, + 0.348, + 0.3027, + 0.3218, + 0.5515, + 0.3333, + 0.1953, + 0.1875, + 0.3093, + 0.1297, + 0.2413, + 0.2969, + 0.3333, + 0.0781, + 0.2187, + 0.232, + 0.1729, + 0.2816, + 0.2545, + 0.125, + 0.1953, + 0.0312, + 0.2707, + 0.2162, + 0.2413, + 0.2121, + 0.1666 ] const hugeNums = smallNums.map((x) => Math.floor(x * rand() * 1000000000)) @@ -391,84 +393,86 @@ const negSmallNums = smallNums.map((x) => x * (rand() > 0.5 ? 1 : -1)) const negHugeNums = hugeNums.map((x) => x * (rand() > 0.5 ? 1 : -1)) export const data = { - series: [ - { name: 'Country_code', type: 'dimension', values: codeData }, - { name: 'Country', type: 'dimension', values: countriesData }, - { - name: 'Joy factors', - type: 'dimension', - values: [ - ...new Array(588).fill('Happiness'), - ...new Array(588).fill('Creativity'), - ...new Array(588).fill('Friendship'), - ...new Array(588).fill('Love') - ] - }, - { name: 'Year', type: 'dimension', values: yearsData }, - { name: 'Value 2 (+)', type: 'measure', values: posNums }, - { name: 'Value 1 (+)', type: 'measure', values: smallNums }, - { name: 'Value 3 (+)', type: 'measure', values: hugeNums }, - { name: 'Value 5 (+/-)', type: 'measure', values: negNums }, - { name: 'Value 4 (+/-)', type: 'measure', values: negSmallNums }, - { name: 'Value 6 (+/-)', type: 'measure', values: negHugeNums }, - { name: 'index', type: 'measure', values: new Array(2352).fill(1) } - ] + series: [ + { name: 'Country_code', type: 'dimension', values: codeData }, + { name: 'Country', type: 'dimension', values: countriesData }, + { + name: 'Joy factors', + type: 'dimension', + values: [ + ...new Array(588).fill('Happiness'), + ...new Array(588).fill('Creativity'), + ...new Array(588).fill('Friendship'), + ...new Array(588).fill('Love') + ] + }, + { name: 'Year', type: 'dimension', values: yearsData }, + { name: 'Value 2 (+)', type: 'measure', values: posNums }, + { name: 'Value 1 (+)', type: 'measure', values: smallNums }, + { name: 'Value 3 (+)', type: 'measure', values: hugeNums }, + { name: 'Value 5 (+/-)', type: 'measure', values: negNums }, + { name: 'Value 4 (+/-)', type: 'measure', values: negSmallNums }, + { name: 'Value 6 (+/-)', type: 'measure', values: negHugeNums }, + { name: 'index', type: 'measure', values: new Array(2352).fill(1) } + ] } export const data_3 = { - series: data.series, - filter: (record) => - record.Country === 'Austria' || record.Country === 'Belgium' || record.Country === 'Bulgaria' + series: data.series, + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' } export const data_4 = { - series: data.series, - filter: (record) => - record.Country === 'Bulgaria' || - record.Country === 'Germany' || - record.Country === 'Malta' || - record.Country === 'Lithuania' + series: data.series, + filter: (record) => + record.Country === 'Bulgaria' || + record.Country === 'Germany' || + record.Country === 'Malta' || + record.Country === 'Lithuania' } export const data_6 = { - series: data.series, - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' + series: data.series, + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' } export const data_8 = { - series: data.series, - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Cyprus' || - record.Country === 'Estonia' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'France' || - record.Country === 'Croatia' + series: data.series, + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Cyprus' || + record.Country === 'Estonia' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'France' || + record.Country === 'Croatia' } export const data_14 = { - series: data.series, - filter: (record) => - record.Country === 'Austria' || - record.Country === 'Belgium' || - record.Country === 'Bulgaria' || - record.Country === 'Cyprus' || - record.Country === 'Czechia' || - record.Country === 'Denmark' || - record.Country === 'Estonia' || - record.Country === 'Greece' || - record.Country === 'Germany' || - record.Country === 'Spain' || - record.Country === 'Finland' || - record.Country === 'France' || - record.Country === 'Croatia' || - record.Country === 'Hungary' + series: data.series, + filter: (record) => + record.Country === 'Austria' || + record.Country === 'Belgium' || + record.Country === 'Bulgaria' || + record.Country === 'Cyprus' || + record.Country === 'Czechia' || + record.Country === 'Denmark' || + record.Country === 'Estonia' || + record.Country === 'Greece' || + record.Country === 'Germany' || + record.Country === 'Spain' || + record.Country === 'Finland' || + record.Country === 'France' || + record.Country === 'Croatia' || + record.Country === 'Hungary' } diff --git a/test/integration/test_data/correlogram_data.mjs b/test/integration/test_data/correlogram_data.mjs index abd853e63..4813ca19e 100644 --- a/test/integration/test_data/correlogram_data.mjs +++ b/test/integration/test_data/correlogram_data.mjs @@ -1,73 +1,73 @@ export const data = { - series: [ - { name: 'Alphabet 1', type: 'dimension' }, - { name: 'Alphabet 2', type: 'dimension' }, - { name: 'Frequency', type: 'measure' } - ], - records: [ - ['A', 'A', '49'], - ['A', 'B', '9'], - ['A', 'C', '33'], - ['A', 'D', '26'], - ['A', 'E', '3'], - ['A', 'F', '16'], - ['A', 'G', '15'], - ['A', 'H', '1'], - ['B', 'A', '9'], - ['B', 'B', '51'], - ['B', 'C', '7'], - ['B', 'D', '22'], - ['B', 'E', '7'], - ['B', 'F', '25'], - ['B', 'G', '24'], - ['B', 'H', '31'], - ['C', 'A', '33'], - ['C', 'B', '7'], - ['C', 'C', '39'], - ['C', 'D', '19'], - ['C', 'E', '37'], - ['C', 'F', '17'], - ['C', 'G', '41'], - ['C', 'H', '11'], - ['D', 'A', '26'], - ['D', 'B', '22'], - ['D', 'C', '19'], - ['D', 'D', '43'], - ['D', 'E', '32'], - ['D', 'F', '38'], - ['D', 'G', '23'], - ['D', 'H', '26'], - ['E', 'A', '3'], - ['E', 'B', '7'], - ['E', 'C', '37'], - ['E', 'D', '32'], - ['E', 'E', '55'], - ['E', 'F', '26'], - ['E', 'G', '9'], - ['E', 'H', '4'], - ['F', 'A', '16'], - ['F', 'B', '25'], - ['F', 'C', '17'], - ['F', 'D', '38'], - ['F', 'E', '26'], - ['F', 'F', '66'], - ['F', 'G', '6'], - ['F', 'H', '32'], - ['G', 'A', '15'], - ['G', 'B', '24'], - ['G', 'C', '41'], - ['G', 'D', '23'], - ['G', 'E', '9'], - ['G', 'F', '6'], - ['G', 'G', '38'], - ['G', 'H', '12'], - ['H', 'A', '1'], - ['H', 'B', '31'], - ['H', 'C', '11'], - ['H', 'D', '26'], - ['H', 'E', '4'], - ['H', 'F', '32'], - ['H', 'G', '12'], - ['H', 'H', '35'] - ] + series: [ + { name: 'Alphabet 1', type: 'dimension' }, + { name: 'Alphabet 2', type: 'dimension' }, + { name: 'Frequency', type: 'measure' } + ], + records: [ + ['A', 'A', '49'], + ['A', 'B', '9'], + ['A', 'C', '33'], + ['A', 'D', '26'], + ['A', 'E', '3'], + ['A', 'F', '16'], + ['A', 'G', '15'], + ['A', 'H', '1'], + ['B', 'A', '9'], + ['B', 'B', '51'], + ['B', 'C', '7'], + ['B', 'D', '22'], + ['B', 'E', '7'], + ['B', 'F', '25'], + ['B', 'G', '24'], + ['B', 'H', '31'], + ['C', 'A', '33'], + ['C', 'B', '7'], + ['C', 'C', '39'], + ['C', 'D', '19'], + ['C', 'E', '37'], + ['C', 'F', '17'], + ['C', 'G', '41'], + ['C', 'H', '11'], + ['D', 'A', '26'], + ['D', 'B', '22'], + ['D', 'C', '19'], + ['D', 'D', '43'], + ['D', 'E', '32'], + ['D', 'F', '38'], + ['D', 'G', '23'], + ['D', 'H', '26'], + ['E', 'A', '3'], + ['E', 'B', '7'], + ['E', 'C', '37'], + ['E', 'D', '32'], + ['E', 'E', '55'], + ['E', 'F', '26'], + ['E', 'G', '9'], + ['E', 'H', '4'], + ['F', 'A', '16'], + ['F', 'B', '25'], + ['F', 'C', '17'], + ['F', 'D', '38'], + ['F', 'E', '26'], + ['F', 'F', '66'], + ['F', 'G', '6'], + ['F', 'H', '32'], + ['G', 'A', '15'], + ['G', 'B', '24'], + ['G', 'C', '41'], + ['G', 'D', '23'], + ['G', 'E', '9'], + ['G', 'F', '6'], + ['G', 'G', '38'], + ['G', 'H', '12'], + ['H', 'A', '1'], + ['H', 'B', '31'], + ['H', 'C', '11'], + ['H', 'D', '26'], + ['H', 'E', '4'], + ['H', 'F', '32'], + ['H', 'G', '12'], + ['H', 'H', '35'] + ] } diff --git a/test/integration/test_data/cube_test_data.mjs b/test/integration/test_data/cube_test_data.mjs index 19ce2a94f..e25820b97 100755 --- a/test/integration/test_data/cube_test_data.mjs +++ b/test/integration/test_data/cube_test_data.mjs @@ -1,17 +1,17 @@ export const data = { - dimensions: [ - { name: 'Genres', values: ['Pop', 'Rock', 'Jazz', 'Metal'] }, - { name: 'Kinds', values: ['Hard', 'Smooth', 'Experimental', 'Alter'] } - ], - measures: [ - { - name: 'Popularity', - values: [ - [114, 96, 78, 52], - [56, 36, 174, 121], - [127, 83, 94, 58], - [46, 55, 65, 21] - ] - } - ] + dimensions: [ + { name: 'Genres', values: ['Pop', 'Rock', 'Jazz', 'Metal'] }, + { name: 'Kinds', values: ['Hard', 'Smooth', 'Experimental', 'Alter'] } + ], + measures: [ + { + name: 'Popularity', + values: [ + [114, 96, 78, 52], + [56, 36, 174, 121], + [127, 83, 94, 58], + [46, 55, 65, 21] + ] + } + ] } diff --git a/test/integration/test_data/data_missing_long.mjs b/test/integration/test_data/data_missing_long.mjs index 1af7497c0..f26199f0a 100755 --- a/test/integration/test_data/data_missing_long.mjs +++ b/test/integration/test_data/data_missing_long.mjs @@ -1,261 +1,261 @@ export const data = { - series: [ - { - name: 'Timeseries', - type: 'dimension', - values: [ - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021' - ] - }, - { - name: 'Channel title for long names', - type: 'dimension', - values: [ - 'Long name wich has no end', - 'Long name wich has no end', - 'Long name wich has no end', - 'Long name wich has no end', - `Raw + series: [ + { + name: 'Timeseries', + type: 'dimension', + values: [ + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021' + ] + }, + { + name: 'Channel title for long names', + type: 'dimension', + values: [ + 'Long name wich has no end', + 'Long name wich has no end', + 'Long name wich has no end', + 'Long name wich has no end', + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Raw + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Raw + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Raw + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット` - ] - }, - { - name: `Childs of long names which have no end`, - type: 'dimension', - values: [ - 'Very long label of this element', - '', - 'It is also long enough', - 'Short one', - 'Jap', - 'キャラクターセット', - `Raw + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット` + ] + }, + { + name: `Childs of long names which have no end`, + type: 'dimension', + values: [ + 'Very long label of this element', + '', + 'It is also long enough', + 'Short one', + 'Jap', + 'キャラクターセット', + `Raw break`, - 'h', - 'i', - 'j', - /* 'k', 'l', */ 'Very long label of this element', - '', - 'It is also long enough', - 'Short one', - 'Jap', - 'キャラクターセット', - `Raw + 'h', + 'i', + 'j', + /* 'k', 'l', */ 'Very long label of this element', + '', + 'It is also long enough', + 'Short one', + 'Jap', + 'キャラクターセット', + `Raw break`, - 'h', - 'i', - 'j', - /* 'k', 'l', */ 'Very long label of this element', - '', - 'It is also long enough', - 'Short one', - 'Jap', - 'キャラクターセット', - `Raw + 'h', + 'i', + 'j', + /* 'k', 'l', */ 'Very long label of this element', + '', + 'It is also long enough', + 'Short one', + 'Jap', + 'キャラクターセット', + `Raw break`, - 'h', - 'i', - 'j', - /* 'k', 'l', */ 'Very long label of this element', - '', - 'It is also long enough', - 'Short one', - 'Jap', - 'キャラクターセット', - `Raw + 'h', + 'i', + 'j', + /* 'k', 'l', */ 'Very long label of this element', + '', + 'It is also long enough', + 'Short one', + 'Jap', + 'キャラクターセット', + `Raw break`, - 'h', - 'i', - 'j' /*, 'k', 'l' */ - ] - }, - { - name: 'カテゴリー3', - type: 'dimension', - values: [ - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100' - ] - }, - { - name: 'This data series contains the first values', - type: 'measure', - values: [ - 15, 32, 14, 12, 28, 36, 23, 21, 12, 13, 27, 8, 16, 42, 21, 11, 27, 39, 21, 27, 14, 15, 31, - 12, 29, 45, 28, 13, 30, 41, 27, 35, 16, 15, 34, 15, 35, 48, 29, 15, 35, 46, 32, 39, 16, 18, - 36, 18 - ] - }, - { - name: `This data series + 'h', + 'i', + 'j' /*, 'k', 'l' */ + ] + }, + { + name: 'カテゴリー3', + type: 'dimension', + values: [ + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100' + ] + }, + { + name: 'This data series contains the first values', + type: 'measure', + values: [ + 15, 32, 14, 12, 28, 36, 23, 21, 12, 13, 27, 8, 16, 42, 21, 11, 27, 39, 21, 27, 14, + 15, 31, 12, 29, 45, 28, 13, 30, 41, 27, 35, 16, 15, 34, 15, 35, 48, 29, 15, 35, 46, + 32, 39, 16, 18, 36, 18 + ] + }, + { + name: `This data series contains the second values`, - type: 'measure', - values: [ - 213, 621, 189, 210, 476, 542, 124, 87, 342, 276, 234, 204, 245, 672, 213, 234, 482, 567, - 165, 132, 365, 281, 285, 218, 264, 734, 265, 276, 521, 602, 187, 152, 323, 262, 312, 232, - 287, 811, 312, 287, 562, 651, 215, 198, 352, 306, 372, 268 - ] - }, - { - name: '値3', - type: 'measure', - values: [ - 639, 354, 278, 312, 1241, 1512, 863, 789, 765, 653, 542, 497, 673, 412, 308, 345, 1329, - 1671, 962, 821, 798, 681, 584, 518, 706, 432, 326, 358, 1382, 1715, 1073, 912, 821, 721, - 618, 542, 721, 462, 372, 367, 1404, 1729, 1142, 941, 834, 778, 651, 598 - ] - } - ] + type: 'measure', + values: [ + 213, 621, 189, 210, 476, 542, 124, 87, 342, 276, 234, 204, 245, 672, 213, 234, 482, + 567, 165, 132, 365, 281, 285, 218, 264, 734, 265, 276, 521, 602, 187, 152, 323, 262, + 312, 232, 287, 811, 312, 287, 562, 651, 215, 198, 352, 306, 372, 268 + ] + }, + { + name: '値3', + type: 'measure', + values: [ + 639, 354, 278, 312, 1241, 1512, 863, 789, 765, 653, 542, 497, 673, 412, 308, 345, + 1329, 1671, 962, 821, 798, 681, 584, 518, 706, 432, 326, 358, 1382, 1715, 1073, 912, + 821, 721, 618, 542, 721, 462, 372, 367, 1404, 1729, 1142, 941, 834, 778, 651, 598 + ] + } + ] } diff --git a/test/integration/test_data/data_missing_long_more_conti.mjs b/test/integration/test_data/data_missing_long_more_conti.mjs index 16513ad46..e218abf4e 100755 --- a/test/integration/test_data/data_missing_long_more_conti.mjs +++ b/test/integration/test_data/data_missing_long_more_conti.mjs @@ -1,294 +1,294 @@ export const data = { - series: [ - { - name: 'Timeseries', - type: 'dimension', - values: [ - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021' - ] - }, - { - name: 'Categ. Parent', - type: 'dimension', - values: [ - 'A', - 'A', - 'A', - 'A', - 'B', - 'B', - 'B', - 'B', - 'C', - 'C', - 'C', - 'C', - 'A', - 'A', - 'A', - 'A', - 'B', - 'B', - 'B', - 'B', - 'C', - 'C', - 'C', - 'C', - 'A', - 'A', - 'A', - 'A', - 'B', - 'B', - 'B', - 'B', - 'C', - 'C', - 'C', - 'C', - 'A', - 'A', - 'A', - 'A', - 'B', - 'B', - 'B', - 'B', - 'C', - 'C', - 'C', - 'C' - ] - }, - { - name: 'Categ. Child', - type: 'dimension', - values: [ - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l' - ] - }, - { - name: 'Categories 3', - type: 'dimension', - values: [ - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100' - ] - }, - { - name: 'Values 1', - type: 'measure', - values: [ - 15, - 32, - 14, - 12, - 28, - 36, - 23, - 21, - 12, - 13, - 27, - 8, - 16, - 42, - 21, - 11, - 27, - 39, - 21, - 27, - 14, - 15, - 31, - 12, - 29, - 45, - 28, - 13, - 30, - 41, - 27, - 35, - 16, - 15, - 34, - 15, - 35, - 48, - 29, - 15, - 35, - 46, - 32, - 39, - 16, - 18, - 36, - 18, - 21, - 18 // 2 more elements - ] - }, - { - name: 'Values 2', - type: 'measure', - values: [ - 213, 621, 189, 210, 476, 542, 124, 87, 342, 276, 234, 204, 245, 672, 213, 234, 482, 567, - 165, 132, 365, 281, 285, 218, 264, 734, 265, 276, 521, 602, 187, 152, 323, 262, 312, 232, - 287, 811, 312, 287, 562, 651, 215, 198, 352, 306, 372, 268 - ] - }, - { - name: 'Values 3', - type: 'measure', - values: [ - 639, 354, 278, 312, 1241, 1512, 863, 789, 765, 653, 542, 497, 673, 412, 308, 345, 1329, - 1671, 962, 821, 798, 681, 584, 518, 706, 432, 326, 358, 1382, 1715, 1073, 912, 821, 721, - 618, 542, 721, 462, 372, 367, 1404, 1729, 1142, 941, 834, 778, 651, 598 - ] - } - ] + series: [ + { + name: 'Timeseries', + type: 'dimension', + values: [ + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021' + ] + }, + { + name: 'Categ. Parent', + type: 'dimension', + values: [ + 'A', + 'A', + 'A', + 'A', + 'B', + 'B', + 'B', + 'B', + 'C', + 'C', + 'C', + 'C', + 'A', + 'A', + 'A', + 'A', + 'B', + 'B', + 'B', + 'B', + 'C', + 'C', + 'C', + 'C', + 'A', + 'A', + 'A', + 'A', + 'B', + 'B', + 'B', + 'B', + 'C', + 'C', + 'C', + 'C', + 'A', + 'A', + 'A', + 'A', + 'B', + 'B', + 'B', + 'B', + 'C', + 'C', + 'C', + 'C' + ] + }, + { + name: 'Categ. Child', + type: 'dimension', + values: [ + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l' + ] + }, + { + name: 'Categories 3', + type: 'dimension', + values: [ + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100' + ] + }, + { + name: 'Values 1', + type: 'measure', + values: [ + 15, + 32, + 14, + 12, + 28, + 36, + 23, + 21, + 12, + 13, + 27, + 8, + 16, + 42, + 21, + 11, + 27, + 39, + 21, + 27, + 14, + 15, + 31, + 12, + 29, + 45, + 28, + 13, + 30, + 41, + 27, + 35, + 16, + 15, + 34, + 15, + 35, + 48, + 29, + 15, + 35, + 46, + 32, + 39, + 16, + 18, + 36, + 18, + 21, + 18 // 2 more elements + ] + }, + { + name: 'Values 2', + type: 'measure', + values: [ + 213, 621, 189, 210, 476, 542, 124, 87, 342, 276, 234, 204, 245, 672, 213, 234, 482, + 567, 165, 132, 365, 281, 285, 218, 264, 734, 265, 276, 521, 602, 187, 152, 323, 262, + 312, 232, 287, 811, 312, 287, 562, 651, 215, 198, 352, 306, 372, 268 + ] + }, + { + name: 'Values 3', + type: 'measure', + values: [ + 639, 354, 278, 312, 1241, 1512, 863, 789, 765, 653, 542, 497, 673, 412, 308, 345, + 1329, 1671, 962, 821, 798, 681, 584, 518, 706, 432, 326, 358, 1382, 1715, 1073, 912, + 821, 721, 618, 542, 721, 462, 372, 367, 1404, 1729, 1142, 941, 834, 778, 651, 598 + ] + } + ] } diff --git a/test/integration/test_data/data_missing_long_more_disc.mjs b/test/integration/test_data/data_missing_long_more_disc.mjs index 7d9ee0b0c..8a2e18519 100755 --- a/test/integration/test_data/data_missing_long_more_disc.mjs +++ b/test/integration/test_data/data_missing_long_more_disc.mjs @@ -1,271 +1,271 @@ export const data = { - series: [ - { - name: 'Timeseries', - type: 'dimension', - values: [ - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021' - ] - }, - { - name: 'Channel title for long names', - type: 'dimension', - values: [ - 'Long name wich has no end', - 'Long name wich has no end', - 'Long name wich has no end', - 'Long name wich has no end', - `Raw + series: [ + { + name: 'Timeseries', + type: 'dimension', + values: [ + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021' + ] + }, + { + name: 'Channel title for long names', + type: 'dimension', + values: [ + 'Long name wich has no end', + 'Long name wich has no end', + 'Long name wich has no end', + 'Long name wich has no end', + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Raw + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Raw + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Long name wich has no end`, - `Raw + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Long name wich has no end`, + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `Raw + `Raw break`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット`, - `キャラクターセット` // 2 more elements - ] - }, - { - name: `Childs of long names which have no end`, - type: 'dimension', - values: [ - 'Very long label of this element', - '', - 'It is also long enough', - 'Short one', - 'Japanese', - 'キャラクターセット', - `Raw + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット`, + `キャラクターセット` // 2 more elements + ] + }, + { + name: `Childs of long names which have no end`, + type: 'dimension', + values: [ + 'Very long label of this element', + '', + 'It is also long enough', + 'Short one', + 'Japanese', + 'キャラクターセット', + `Raw break`, - 'h', - 'i', - 'j', - 'k', - 'l', - 'Very long label of this element', - '', - 'It is also long enough', - 'Short one', - 'Japanese', - 'キャラクターセット', - `Raw + 'h', + 'i', + 'j', + 'k', + 'l', + 'Very long label of this element', + '', + 'It is also long enough', + 'Short one', + 'Japanese', + 'キャラクターセット', + `Raw break`, - 'h', - 'i', - 'j', - 'k', - 'l', - 'Very long label of this element', - '', - 'It is also long enough', - 'Short one', - 'Japanese', - 'キャラクターセット', - `Raw + 'h', + 'i', + 'j', + 'k', + 'l', + 'Very long label of this element', + '', + 'It is also long enough', + 'Short one', + 'Japanese', + 'キャラクターセット', + `Raw break`, - 'h', - 'i', - 'j', - 'k', - 'l', - 'Very long label of this element', - '', - 'It is also long enough', - 'Short one', - 'Japanese', - 'キャラクターセット', - `Raw + 'h', + 'i', + 'j', + 'k', + 'l', + 'Very long label of this element', + '', + 'It is also long enough', + 'Short one', + 'Japanese', + 'キャラクターセット', + `Raw break`, - 'h', - 'i', - 'j', - 'k', - 'l' - ] - }, - { - name: 'カテゴリー3', - type: 'dimension', - values: [ - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100' - ] - }, - { - name: 'This data series contains the first values', - type: 'measure', - values: [ - 15, 32, 14, 12, 28, 36, 23, 21, 12, 13, 27, 8, 16, 42, 21, 11, 27, 39, 21, 27, 14, 15, 31, - 12, 29, 45, 28, 13, 30, 41, 27, 35, 16, 15, 34, 15, 35, 48, 29, 15, 35, 46, 32, 39, 16, 18, - 36, 18 - ] - }, - { - name: `This data series + 'h', + 'i', + 'j', + 'k', + 'l' + ] + }, + { + name: 'カテゴリー3', + type: 'dimension', + values: [ + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100' + ] + }, + { + name: 'This data series contains the first values', + type: 'measure', + values: [ + 15, 32, 14, 12, 28, 36, 23, 21, 12, 13, 27, 8, 16, 42, 21, 11, 27, 39, 21, 27, 14, + 15, 31, 12, 29, 45, 28, 13, 30, 41, 27, 35, 16, 15, 34, 15, 35, 48, 29, 15, 35, 46, + 32, 39, 16, 18, 36, 18 + ] + }, + { + name: `This data series contains the second values`, - type: 'measure', - values: [ - 213, 621, 189, 210, 476, 542, 124, 87, 342, 276, 234, 204, 245, 672, 213, 234, 482, 567, - 165, 132, 365, 281, 285, 218, 264, 734, 265, 276, 521, 602, 187, 152, 323, 262, 312, 232, - 287, 811, 312, 287, 562, 651, 215, 198, 352, 306, 372, 268 - ] - }, - { - name: '値3', - type: 'measure', - values: [ - 639, 354, 278, 312, 1241, 1512, 863, 789, 765, 653, 542, 497, 673, 412, 308, 345, 1329, - 1671, 962, 821, 798, 681, 584, 518, 706, 432, 326, 358, 1382, 1715, 1073, 912, 821, 721, - 618, 542, 721, 462, 372, 367, 1404, 1729, 1142, 941, 834, 778, 651, 598 - ] - } - ] + type: 'measure', + values: [ + 213, 621, 189, 210, 476, 542, 124, 87, 342, 276, 234, 204, 245, 672, 213, 234, 482, + 567, 165, 132, 365, 281, 285, 218, 264, 734, 265, 276, 521, 602, 187, 152, 323, 262, + 312, 232, 287, 811, 312, 287, 562, 651, 215, 198, 352, 306, 372, 268 + ] + }, + { + name: '値3', + type: 'measure', + values: [ + 639, 354, 278, 312, 1241, 1512, 863, 789, 765, 653, 542, 497, 673, 412, 308, 345, + 1329, 1671, 962, 821, 798, 681, 584, 518, 706, 432, 326, 358, 1382, 1715, 1073, 912, + 821, 721, 618, 542, 721, 462, 372, 367, 1404, 1729, 1142, 941, 834, 778, 651, 598 + ] + } + ] } diff --git a/test/integration/test_data/funnel_data.mjs b/test/integration/test_data/funnel_data.mjs index 5a02b0fbc..65b74f28c 100644 --- a/test/integration/test_data/funnel_data.mjs +++ b/test/integration/test_data/funnel_data.mjs @@ -1,14 +1,14 @@ export const data = { - series: [ - { name: 'Phase', type: 'dimension' }, - { name: 'Filter', type: 'dimension' }, - { name: 'Num', type: 'measure' } - ], - records: [ - ['5th', 'a', '12'], - ['4th', 'b', '67'], - ['3rd', 'c', '275'], - ['2nd', 'd', '1231'], - ['1st', 'e', '5342'] - ] + series: [ + { name: 'Phase', type: 'dimension' }, + { name: 'Filter', type: 'dimension' }, + { name: 'Num', type: 'measure' } + ], + records: [ + ['5th', 'a', '12'], + ['4th', 'b', '67'], + ['3rd', 'c', '275'], + ['2nd', 'd', '1231'], + ['1st', 'e', '5342'] + ] } diff --git a/test/integration/test_data/icicle.mjs b/test/integration/test_data/icicle.mjs index 7791f6126..ca7bd6f60 100755 --- a/test/integration/test_data/icicle.mjs +++ b/test/integration/test_data/icicle.mjs @@ -1,242 +1,242 @@ export const data = { - series: [ - { - name: 'Country_code', - type: 'dimension', - values: [ - 'AT', - 'BE', - 'BG', - 'CY', - 'CZ', - 'DE', - 'DK', - 'EE', - 'EL', - 'ES', - 'FI', - 'FR', - 'HR', - 'HU', - 'AT', - 'BE', - 'BG', - 'CY', - 'CZ', - 'AT', - 'BE', - 'BG', - 'CY', - 'AT', - 'BE', - 'BG', - 'CY', - 'AT' - ] - }, - { - name: 'Type', - type: 'dimension', - values: [ - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors' - ] - }, - { - name: 'Joy factors/Country', - type: 'dimension', - values: [ - 'Austria', - 'Belgium', - 'Bulgaria', - 'Cyprus', - 'Czechia', - 'Germany', - 'Denmark', - 'Estonia', - 'Greece', - 'Spain', - 'Finland', - 'France', - 'Croatia', - 'Hungary', - 'Terrorism', - 'Terrorism', - 'Terrorism', - 'Terrorism', - 'Terrorism', - 'Poverty', - 'Poverty', - 'Poverty', - 'Poverty', - 'Climate change', - 'Climate change', - 'Climate change', - 'Climate change', - 'Political extremism' - ] - }, - { - name: 'Year', - type: 'dimension', - values: [ - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020' - ] - }, - { - name: 'Value 2 (+)', - type: 'measure', - values: [ - '51', - '47', - '30', - '20', - '15', - '14', - '13', - '12', - '11', - '11', - '8', - '8', - '4', - '2', - '51', - '47', - '30', - '20', - '15', - '14', - '13', - '12', - '11', - '11', - '8', - '8', - '4', - '2' - ] - }, - { - name: 'Value 5 (+/-)', - type: 'measure', - values: [ - '51', - '47', - '30', - '-20', - '15', - '14', - '13', - '12', - '-11', - '-11', - '-8', - '-8', - '-4', - '2', - '51', - '47', - '30', - '-20', - '15', - '14', - '13', - '12', - '-11', - '-11', - '-8', - '-8', - '-4', - '2' - ] - }, - { - name: 'index', - type: 'measure', - values: [ - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1', - '1' - ] - } - ] + series: [ + { + name: 'Country_code', + type: 'dimension', + values: [ + 'AT', + 'BE', + 'BG', + 'CY', + 'CZ', + 'DE', + 'DK', + 'EE', + 'EL', + 'ES', + 'FI', + 'FR', + 'HR', + 'HU', + 'AT', + 'BE', + 'BG', + 'CY', + 'CZ', + 'AT', + 'BE', + 'BG', + 'CY', + 'AT', + 'BE', + 'BG', + 'CY', + 'AT' + ] + }, + { + name: 'Type', + type: 'dimension', + values: [ + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors' + ] + }, + { + name: 'Joy factors/Country', + type: 'dimension', + values: [ + 'Austria', + 'Belgium', + 'Bulgaria', + 'Cyprus', + 'Czechia', + 'Germany', + 'Denmark', + 'Estonia', + 'Greece', + 'Spain', + 'Finland', + 'France', + 'Croatia', + 'Hungary', + 'Terrorism', + 'Terrorism', + 'Terrorism', + 'Terrorism', + 'Terrorism', + 'Poverty', + 'Poverty', + 'Poverty', + 'Poverty', + 'Climate change', + 'Climate change', + 'Climate change', + 'Climate change', + 'Political extremism' + ] + }, + { + name: 'Year', + type: 'dimension', + values: [ + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020' + ] + }, + { + name: 'Value 2 (+)', + type: 'measure', + values: [ + '51', + '47', + '30', + '20', + '15', + '14', + '13', + '12', + '11', + '11', + '8', + '8', + '4', + '2', + '51', + '47', + '30', + '20', + '15', + '14', + '13', + '12', + '11', + '11', + '8', + '8', + '4', + '2' + ] + }, + { + name: 'Value 5 (+/-)', + type: 'measure', + values: [ + '51', + '47', + '30', + '-20', + '15', + '14', + '13', + '12', + '-11', + '-11', + '-8', + '-8', + '-4', + '2', + '51', + '47', + '30', + '-20', + '15', + '14', + '13', + '12', + '-11', + '-11', + '-8', + '-8', + '-4', + '2' + ] + }, + { + name: 'index', + type: 'measure', + values: [ + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1', + '1' + ] + } + ] } diff --git a/test/integration/test_data/icicle2.mjs b/test/integration/test_data/icicle2.mjs index 405816c96..505221ab9 100644 --- a/test/integration/test_data/icicle2.mjs +++ b/test/integration/test_data/icicle2.mjs @@ -1,91 +1,91 @@ export const data = { - series: [ - { name: 'Levels', type: 'dimension' }, - { name: 'Level names', type: 'dimension' }, - { name: 'Value', type: 'measure' }, - { name: 'Color', type: 'dimension' } - ], - records: [ - ['Third', 'Subgroup 111', '23', 'a'], - ['Third', 'Subgroup 112', '18', 'a'], - ['Third', 'Subgroup 121', '21', 'a'], - ['Third', 'Subgroup 122', '11', 'a'], - ['Third', 'Subgroup 123', '7', 'a'], - ['Third', 'Subgroup 131', '22', 'a'], - ['Third', 'Subgroup 132', '7', 'a'], - ['Third', 'Subgroup 133', '5', 'a'], - ['Third', 'Subgroup 141', '20', 'a'], - ['Third', 'Subgroup 142', '9', 'a'], - ['Third', 'Subgroup 151', '19', 'a'], - ['Third', 'Subgroup 152', '9', 'a'], - ['Third', 'Subgroup 211', '15', 'b'], - ['Third', 'Subgroup 212', '12', 'b'], - ['Third', 'Subgroup 221', '15', 'b'], - ['Third', 'Subgroup 222', '11', 'b'], - ['Third', 'Subgroup 231', '11', 'b'], - ['Third', 'Subgroup 232', '9', 'b'], - ['Third', 'Subgroup 233', '5', 'b'], - ['Third', 'Subgroup 241', '12', 'b'], - ['Third', 'Subgroup 242', '12', 'b'], - ['Third', 'Subgroup 311', '18', 'c'], - ['Third', 'Subgroup 321', '8', 'c'], - ['Third', 'Subgroup 322', '8', 'c'], - ['Third', 'Subgroup 331', '8', 'c'], - ['Third', 'Subgroup 341', '4', 'c'], - ['Third', 'Subgroup 411', '2', 'd'], - ['Second', 'Subgroup 11', '23', 'a'], - ['Second', 'Subgroup 11', '18', 'a'], - ['Second', 'Subgroup 12', '21', 'a'], - ['Second', 'Subgroup 12', '11', 'a'], - ['Second', 'Subgroup 12', '7', 'a'], - ['Second', 'Subgroup 13', '22', 'a'], - ['Second', 'Subgroup 13', '7', 'a'], - ['Second', 'Subgroup 13', '5', 'a'], - ['Second', 'Subgroup 14', '20', 'a'], - ['Second', 'Subgroup 14', '9', 'a'], - ['Second', 'Subgroup 15', '19', 'a'], - ['Second', 'Subgroup 15', '9', 'a'], - ['Second', 'Subgroup 21', '15', 'b'], - ['Second', 'Subgroup 21', '12', 'b'], - ['Second', 'Subgroup 22', '15', 'b'], - ['Second', 'Subgroup 22', '11', 'b'], - ['Second', 'Subgroup 23', '11', 'b'], - ['Second', 'Subgroup 23', '9', 'b'], - ['Second', 'Subgroup 23', '5', 'b'], - ['Second', 'Subgroup 24', '12', 'b'], - ['Second', 'Subgroup 24', '12', 'b'], - ['Second', 'Subgroup 31', '18', 'c'], - ['Second', 'Subgroup 32', '8', 'c'], - ['Second', 'Subgroup 32', '8', 'c'], - ['Second', 'Subgroup 33', '8', 'c'], - ['Second', 'Subgroup 34', '4', 'c'], - ['Second', 'Subgroup 41', '2', 'd'], - ['First', 'Group1', '23', 'a'], - ['First', 'Group1', '18', 'a'], - ['First', 'Group1', '21', 'a'], - ['First', 'Group1', '11', 'a'], - ['First', 'Group1', '7', 'a'], - ['First', 'Group1', '22', 'a'], - ['First', 'Group1', '7', 'a'], - ['First', 'Group1', '5', 'a'], - ['First', 'Group1', '20', 'a'], - ['First', 'Group1', '9', 'a'], - ['First', 'Group1', '19', 'a'], - ['First', 'Group1', '9', 'a'], - ['First', 'Group2', '15', 'b'], - ['First', 'Group2', '12', 'b'], - ['First', 'Group2', '15', 'b'], - ['First', 'Group2', '11', 'b'], - ['First', 'Group2', '11', 'b'], - ['First', 'Group2', '9', 'b'], - ['First', 'Group2', '5', 'b'], - ['First', 'Group2', '12', 'b'], - ['First', 'Group2', '12', 'b'], - ['First', 'Group3', '18', 'c'], - ['First', 'Group3', '8', 'c'], - ['First', 'Group3', '8', 'c'], - ['First', 'Group3', '8', 'c'], - ['First', 'Group3', '4', 'c'], - ['First', 'Group4', '2', 'd'] - ] + series: [ + { name: 'Levels', type: 'dimension' }, + { name: 'Level names', type: 'dimension' }, + { name: 'Value', type: 'measure' }, + { name: 'Color', type: 'dimension' } + ], + records: [ + ['Third', 'Subgroup 111', '23', 'a'], + ['Third', 'Subgroup 112', '18', 'a'], + ['Third', 'Subgroup 121', '21', 'a'], + ['Third', 'Subgroup 122', '11', 'a'], + ['Third', 'Subgroup 123', '7', 'a'], + ['Third', 'Subgroup 131', '22', 'a'], + ['Third', 'Subgroup 132', '7', 'a'], + ['Third', 'Subgroup 133', '5', 'a'], + ['Third', 'Subgroup 141', '20', 'a'], + ['Third', 'Subgroup 142', '9', 'a'], + ['Third', 'Subgroup 151', '19', 'a'], + ['Third', 'Subgroup 152', '9', 'a'], + ['Third', 'Subgroup 211', '15', 'b'], + ['Third', 'Subgroup 212', '12', 'b'], + ['Third', 'Subgroup 221', '15', 'b'], + ['Third', 'Subgroup 222', '11', 'b'], + ['Third', 'Subgroup 231', '11', 'b'], + ['Third', 'Subgroup 232', '9', 'b'], + ['Third', 'Subgroup 233', '5', 'b'], + ['Third', 'Subgroup 241', '12', 'b'], + ['Third', 'Subgroup 242', '12', 'b'], + ['Third', 'Subgroup 311', '18', 'c'], + ['Third', 'Subgroup 321', '8', 'c'], + ['Third', 'Subgroup 322', '8', 'c'], + ['Third', 'Subgroup 331', '8', 'c'], + ['Third', 'Subgroup 341', '4', 'c'], + ['Third', 'Subgroup 411', '2', 'd'], + ['Second', 'Subgroup 11', '23', 'a'], + ['Second', 'Subgroup 11', '18', 'a'], + ['Second', 'Subgroup 12', '21', 'a'], + ['Second', 'Subgroup 12', '11', 'a'], + ['Second', 'Subgroup 12', '7', 'a'], + ['Second', 'Subgroup 13', '22', 'a'], + ['Second', 'Subgroup 13', '7', 'a'], + ['Second', 'Subgroup 13', '5', 'a'], + ['Second', 'Subgroup 14', '20', 'a'], + ['Second', 'Subgroup 14', '9', 'a'], + ['Second', 'Subgroup 15', '19', 'a'], + ['Second', 'Subgroup 15', '9', 'a'], + ['Second', 'Subgroup 21', '15', 'b'], + ['Second', 'Subgroup 21', '12', 'b'], + ['Second', 'Subgroup 22', '15', 'b'], + ['Second', 'Subgroup 22', '11', 'b'], + ['Second', 'Subgroup 23', '11', 'b'], + ['Second', 'Subgroup 23', '9', 'b'], + ['Second', 'Subgroup 23', '5', 'b'], + ['Second', 'Subgroup 24', '12', 'b'], + ['Second', 'Subgroup 24', '12', 'b'], + ['Second', 'Subgroup 31', '18', 'c'], + ['Second', 'Subgroup 32', '8', 'c'], + ['Second', 'Subgroup 32', '8', 'c'], + ['Second', 'Subgroup 33', '8', 'c'], + ['Second', 'Subgroup 34', '4', 'c'], + ['Second', 'Subgroup 41', '2', 'd'], + ['First', 'Group1', '23', 'a'], + ['First', 'Group1', '18', 'a'], + ['First', 'Group1', '21', 'a'], + ['First', 'Group1', '11', 'a'], + ['First', 'Group1', '7', 'a'], + ['First', 'Group1', '22', 'a'], + ['First', 'Group1', '7', 'a'], + ['First', 'Group1', '5', 'a'], + ['First', 'Group1', '20', 'a'], + ['First', 'Group1', '9', 'a'], + ['First', 'Group1', '19', 'a'], + ['First', 'Group1', '9', 'a'], + ['First', 'Group2', '15', 'b'], + ['First', 'Group2', '12', 'b'], + ['First', 'Group2', '15', 'b'], + ['First', 'Group2', '11', 'b'], + ['First', 'Group2', '11', 'b'], + ['First', 'Group2', '9', 'b'], + ['First', 'Group2', '5', 'b'], + ['First', 'Group2', '12', 'b'], + ['First', 'Group2', '12', 'b'], + ['First', 'Group3', '18', 'c'], + ['First', 'Group3', '8', 'c'], + ['First', 'Group3', '8', 'c'], + ['First', 'Group3', '8', 'c'], + ['First', 'Group3', '4', 'c'], + ['First', 'Group4', '2', 'd'] + ] } diff --git a/test/integration/test_data/infinite_data.mjs b/test/integration/test_data/infinite_data.mjs index ebb349d03..2ff6d1e9a 100644 --- a/test/integration/test_data/infinite_data.mjs +++ b/test/integration/test_data/infinite_data.mjs @@ -1,32359 +1,32359 @@ export const data = { - series: [ - { name: 'Region', type: 'dimension' }, - { name: 'Country code', type: 'dimension' }, - { name: 'Joy factors', type: 'dimension' }, - { name: 'Age group', type: 'dimension' }, - { name: 'Value 1', type: 'measure' }, - { name: 'Value 2', type: 'measure' }, - { name: 'Value 3', type: 'measure' }, - { name: 'Value 4', type: 'measure' }, - { name: 'Value 5', type: 'measure' }, - { name: 'Value 6', type: 'measure' }, - { name: 'Hor', type: 'measure' }, - { name: 'Ver', type: 'measure' }, - { name: 'Value 7', type: 'measure' } - ], - records: [ - [ - 'West', - 'AT', - 'Love', - '15-24', - 6, - 0.112244898, - 0.2249488753, - 0.04782882316, - 0.7692307692, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '25-34', - 8, - 0.09183673469, - 0.2437923251, - 0.04782882316, - 0.9230769231, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '35-44', - 16, - 0.09183673469, - 0.4829268293, - 0.04782882316, - 1.692307692, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '45-54', - 17, - 0.09693877551, - 0.4103671706, - 0.04782882316, - 1.538461538, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '55-64', - 8, - 0.09183673469, - 0.28125, - 0.04782882316, - 1.076923077, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '65-74', - 10, - 0.09693877551, - 0.3173277662, - 0.04782882316, - 1.230769231, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '75+', - 4, - 0.09693877551, - 0.2130044843, - 0.04782882316, - 0.7692307692, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '15-24', - 22, - 0.112244898, - 0.7648261759, - 0.1076148521, - 2.409448819, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '25-34', - 19, - 0.09183673469, - 0.5282167043, - 0.1076148521, - 1.842519685, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '35-44', - 28, - 0.09183673469, - 0.8341463415, - 0.1076148521, - 2.692913386, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '45-54', - 28, - 0.09693877551, - 0.7386609071, - 0.1076148521, - 2.551181102, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '55-64', - 23, - 0.09183673469, - 0.6830357143, - 0.1076148521, - 2.409448819, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '65-74', - 29, - 0.09693877551, - 0.8329853862, - 0.1076148521, - 2.976377953, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '75+', - 17, - 0.09693877551, - 0.9372197309, - 0.1076148521, - 3.118110236, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '15-24', - 20, - 0.112244898, - 0.854805726, - 0.1195720579, - 2.753623188, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '25-34', - 24, - 0.09183673469, - 0.6501128668, - 0.1195720579, - 2.31884058, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '35-44', - 39, - 0.09183673469, - 1.097560976, - 0.1195720579, - 3.623188406, - 25, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '45-54', - 22, - 0.09693877551, - 0.5745140389, - 0.1195720579, - 2.028985507, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '55-64', - 29, - 0.09183673469, - 0.7232142857, - 0.1195720579, - 2.608695652, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '65-74', - 49, - 0.09693877551, - 1.03131524, - 0.1195720579, - 3.768115942, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '75+', - 13, - 0.09693877551, - 0.8520179372, - 0.1195720579, - 2.898550725, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '15-24', - 3, - 0.112244898, - 0.2249488753, - 0.06576463184, - 0.7236842105, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '25-34', - 8, - 0.09183673469, - 0.4469525959, - 0.06576463184, - 1.592105263, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '35-44', - 9, - 0.09183673469, - 0.5707317073, - 0.06576463184, - 1.881578947, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '45-54', - 10, - 0.09693877551, - 0.5334773218, - 0.06576463184, - 1.881578947, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '55-64', - 11, - 0.09183673469, - 0.8035714286, - 0.06576463184, - 2.894736842, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '65-74', - 5, - 0.09693877551, - 0.3966597077, - 0.06576463184, - 1.447368421, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '75+', - 1, - 0.09693877551, - 0.1704035874, - 0.06576463184, - 0.5789473684, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '15-24', - 12, - 0.112244898, - 0.4948875256, - 0.1076148521, - 1.65, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '25-34', - 25, - 0.09183673469, - 0.6094808126, - 0.1076148521, - 2.25, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '35-44', - 24, - 0.09183673469, - 0.9658536585, - 0.1076148521, - 3.3, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '45-54', - 33, - 0.09693877551, - 0.9438444924, - 0.1076148521, - 3.45, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '55-64', - 22, - 0.09183673469, - 0.6428571429, - 0.1076148521, - 2.4, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '65-74', - 37, - 0.09693877551, - 0.9519832985, - 0.1076148521, - 3.6, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '75+', - 5, - 0.09693877551, - 0.3834080717, - 0.1076148521, - 1.35, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '15-24', - 53, - 0.112244898, - 0.5848670757, - 0.08370044053, - 1.82, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '25-34', - 78, - 0.09183673469, - 0.5688487585, - 0.08370044053, - 1.96, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '35-44', - 40, - 0.09183673469, - 0.9219512195, - 0.08370044053, - 2.94, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '45-54', - 20, - 0.09693877551, - 0.4514038877, - 0.08370044053, - 1.54, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '55-64', - 34, - 0.09183673469, - 0.6026785714, - 0.08370044053, - 2.1, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '65-74', - 37, - 0.09693877551, - 0.51565762, - 0.08370044053, - 1.82, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '75+', - 30, - 0.09693877551, - 0.5538116592, - 0.08370044053, - 1.82, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '15-24', - 38, - 0.112244898, - 1.214723926, - 0.1255506608, - 3.805369128, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '25-34', - 23, - 0.09183673469, - 0.7720090293, - 0.1255506608, - 2.677852349, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '35-44', - 24, - 0.09183673469, - 0.7024390244, - 0.1255506608, - 2.255033557, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '45-54', - 32, - 0.09693877551, - 0.7796976242, - 0.1255506608, - 2.677852349, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '55-64', - 27, - 0.09183673469, - 0.7633928571, - 0.1255506608, - 2.677852349, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '65-74', - 24, - 0.09693877551, - 0.7536534447, - 0.1255506608, - 2.677852349, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '75+', - 34, - 0.09693877551, - 1.278026906, - 0.1255506608, - 4.228187919, - 30, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '15-24', - 31, - 0.112244898, - 1.214723926, - 0.113593455, - 3.828358209, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '25-34', - 27, - 0.09183673469, - 0.7720090293, - 0.113593455, - 2.694029851, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '35-44', - 25, - 0.09183673469, - 0.7024390244, - 0.113593455, - 2.268656716, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '45-54', - 21, - 0.09693877551, - 0.6976241901, - 0.113593455, - 2.410447761, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '55-64', - 21, - 0.09183673469, - 0.6428571429, - 0.113593455, - 2.268656716, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '65-74', - 28, - 0.09693877551, - 0.8329853862, - 0.113593455, - 2.97761194, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '75+', - 16, - 0.09693877551, - 0.7668161435, - 0.113593455, - 2.552238806, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '15-24', - 2, - 0.112244898, - 0.0899795501, - 0.02989301447, - 0.303030303, - 2, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '25-34', - 11, - 0.09183673469, - 0.3250564334, - 0.02989301447, - 1.212121212, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '35-44', - 11, - 0.09183673469, - 0.3073170732, - 0.02989301447, - 1.060606061, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '45-54', - 7, - 0.09693877551, - 0.2051835853, - 0.02989301447, - 0.7575757576, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '55-64', - 7, - 0.09183673469, - 0.2410714286, - 0.02989301447, - 0.9090909091, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '65-74', - 7, - 0.09693877551, - 0.1586638831, - 0.02989301447, - 0.6060606061, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '75+', - 1, - 0.09693877551, - 0.04260089686, - 0.02989301447, - 0.1515151515, - 1, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '15-24', - 16, - 0.112244898, - 0.7648261759, - 0.1076148521, - 2.390625, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '25-34', - 23, - 0.09183673469, - 0.7313769752, - 0.1076148521, - 2.53125, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '35-44', - 20, - 0.09183673469, - 0.6146341463, - 0.1076148521, - 1.96875, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '45-54', - 27, - 0.09693877551, - 0.7796976242, - 0.1076148521, - 2.671875, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '55-64', - 14, - 0.09183673469, - 0.5625, - 0.1076148521, - 1.96875, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '65-74', - 17, - 0.09693877551, - 0.7536534447, - 0.1076148521, - 2.671875, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '75+', - 14, - 0.09693877551, - 1.150224215, - 0.1076148521, - 3.796875, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '15-24', - 29, - 0.112244898, - 1.034764826, - 0.1076148521, - 3.338709677, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '25-34', - 14, - 0.09183673469, - 0.4469525959, - 0.1076148521, - 1.596774194, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '35-44', - 27, - 0.09183673469, - 0.7902439024, - 0.1076148521, - 2.612903226, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '45-54', - 33, - 0.09693877551, - 0.8617710583, - 0.1076148521, - 3.048387097, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '55-64', - 28, - 0.09183673469, - 0.7232142857, - 0.1076148521, - 2.612903226, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '65-74', - 26, - 0.09693877551, - 0.6743215031, - 0.1076148521, - 2.467741935, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '75+', - 17, - 0.09693877551, - 0.6816143498, - 0.1076148521, - 2.322580645, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '15-24', - 42, - 0.112244898, - 1.529652352, - 0.1674008811, - 4.83248731, - 34, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '25-34', - 32, - 0.09183673469, - 1.097065463, - 0.1674008811, - 3.837563452, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '35-44', - 38, - 0.09183673469, - 1.097560976, - 0.1674008811, - 3.553299492, - 25, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '45-54', - 44, - 0.09693877551, - 1.272138229, - 0.1674008811, - 4.406091371, - 31, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '55-64', - 32, - 0.09183673469, - 1.044642857, - 0.1674008811, - 3.695431472, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '65-74', - 38, - 0.09693877551, - 1.229645094, - 0.1674008811, - 4.406091371, - 31, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '75+', - 21, - 0.09693877551, - 0.9798206278, - 0.1674008811, - 3.269035533, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '15-24', - 15, - 0.112244898, - 0.5398773006, - 0.07772183763, - 1.813953488, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '25-34', - 25, - 0.09183673469, - 0.6501128668, - 0.07772183763, - 2.418604651, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '35-44', - 16, - 0.09183673469, - 0.4390243902, - 0.07772183763, - 1.511627907, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '45-54', - 17, - 0.09693877551, - 0.4514038877, - 0.07772183763, - 1.662790698, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '55-64', - 14, - 0.09183673469, - 0.3616071429, - 0.07772183763, - 1.360465116, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '65-74', - 30, - 0.09693877551, - 0.6743215031, - 0.07772183763, - 2.569767442, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '75+', - 9, - 0.09693877551, - 0.4686098655, - 0.07772183763, - 1.662790698, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '15-24', - 10, - 0.112244898, - 0.3149284254, - 0.07174323474, - 1.024390244, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '25-34', - 12, - 0.09183673469, - 0.4063205418, - 0.07174323474, - 1.463414634, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '35-44', - 18, - 0.09183673469, - 0.4390243902, - 0.07174323474, - 1.463414634, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '45-54', - 13, - 0.09693877551, - 0.4103671706, - 0.07174323474, - 1.463414634, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '55-64', - 24, - 0.09183673469, - 0.6428571429, - 0.07174323474, - 2.341463415, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '65-74', - 22, - 0.09693877551, - 0.6346555324, - 0.07174323474, - 2.341463415, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '75+', - 9, - 0.09693877551, - 0.5538116592, - 0.07174323474, - 1.902439024, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '15-24', - 29, - 0.112244898, - 0.9447852761, - 0.113593455, - 2.891304348, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '25-34', - 28, - 0.09183673469, - 0.7720090293, - 0.113593455, - 2.615942029, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '35-44', - 34, - 0.09183673469, - 0.6585365854, - 0.113593455, - 2.065217391, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '45-54', - 28, - 0.09693877551, - 0.6976241901, - 0.113593455, - 2.34057971, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '55-64', - 25, - 0.09183673469, - 0.8035714286, - 0.113593455, - 2.753623188, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '65-74', - 30, - 0.09693877551, - 1.03131524, - 0.113593455, - 3.579710145, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '75+', - 12, - 0.09693877551, - 0.8520179372, - 0.113593455, - 2.753623188, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '15-24', - 10, - 0.112244898, - 0.4498977505, - 0.07174323474, - 1.445783133, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '25-34', - 19, - 0.09183673469, - 0.5688487585, - 0.07174323474, - 2.024096386, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '35-44', - 17, - 0.09183673469, - 0.5268292683, - 0.07174323474, - 1.734939759, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '45-54', - 22, - 0.09693877551, - 0.5334773218, - 0.07174323474, - 1.879518072, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '55-64', - 17, - 0.09183673469, - 0.5223214286, - 0.07174323474, - 1.879518072, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '65-74', - 22, - 0.09693877551, - 0.4759916493, - 0.07174323474, - 1.734939759, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '75+', - 8, - 0.09693877551, - 0.3834080717, - 0.07174323474, - 1.301204819, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '15-24', - 21, - 0.112244898, - 0.6748466258, - 0.06576463184, - 2.291666667, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '25-34', - 20, - 0.09183673469, - 0.6094808126, - 0.06576463184, - 2.291666667, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '35-44', - 1, - 0.09183673469, - 0.04390243902, - 0.06576463184, - 0.1527777778, - 1, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '45-54', - 23, - 0.09693877551, - 0.5334773218, - 0.06576463184, - 1.986111111, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '55-64', - 13, - 0.09183673469, - 0.4017857143, - 0.06576463184, - 1.527777778, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '65-74', - 12, - 0.09693877551, - 0.3966597077, - 0.06576463184, - 1.527777778, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '75+', - 10, - 0.09693877551, - 0.3408071749, - 0.06576463184, - 1.222222222, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '15-24', - 7, - 0.112244898, - 0.4948875256, - 0.09565764632, - 1.543859649, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '25-34', - 15, - 0.09183673469, - 0.8532731377, - 0.09565764632, - 2.947368421, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '35-44', - 13, - 0.09183673469, - 0.6585365854, - 0.09565764632, - 2.105263158, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '45-54', - 11, - 0.09693877551, - 0.5745140389, - 0.09565764632, - 1.964912281, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '55-64', - 11, - 0.09183673469, - 0.7633928571, - 0.09565764632, - 2.666666667, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '65-74', - 12, - 0.09693877551, - 0.7536534447, - 0.09565764632, - 2.666666667, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '75+', - 5, - 0.09693877551, - 0.6390134529, - 0.09565764632, - 2.105263158, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '15-24', - 21, - 0.112244898, - 0.854805726, - 0.09565764632, - 2.841121495, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '25-34', - 23, - 0.09183673469, - 0.6501128668, - 0.09565764632, - 2.392523364, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '35-44', - 20, - 0.09183673469, - 0.6585365854, - 0.09565764632, - 2.242990654, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '45-54', - 20, - 0.09693877551, - 0.6155507559, - 0.09565764632, - 2.242990654, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '55-64', - 19, - 0.09183673469, - 0.6026785714, - 0.09565764632, - 2.242990654, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '65-74', - 36, - 0.09693877551, - 0.6346555324, - 0.09565764632, - 2.392523364, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '75+', - 1, - 0.09693877551, - 0.4686098655, - 0.09565764632, - 1.644859813, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '15-24', - 12, - 0.112244898, - 0.854805726, - 0.07174323474, - 2.746987952, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '25-34', - 5, - 0.09183673469, - 0.3250564334, - 0.07174323474, - 1.156626506, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '35-44', - 2, - 0.09183673469, - 0.1317073171, - 0.07174323474, - 0.4337349398, - 3, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '45-54', - 11, - 0.09693877551, - 0.656587473, - 0.07174323474, - 2.313253012, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '55-64', - 8, - 0.09183673469, - 0.4821428571, - 0.07174323474, - 1.734939759, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '65-74', - 10, - 0.09693877551, - 0.5949895616, - 0.07174323474, - 2.168674699, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '75+', - 3, - 0.09693877551, - 0.4260089686, - 0.07174323474, - 1.445783133, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '15-24', - 42, - 0.112244898, - 1.574642127, - 0.1434864695, - 4.516129032, - 35, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '25-34', - 27, - 0.09183673469, - 0.934537246, - 0.1434864695, - 2.967741935, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '35-44', - 35, - 0.09183673469, - 0.8341463415, - 0.1434864695, - 2.451612903, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '45-54', - 56, - 0.09693877551, - 1.149028078, - 0.1434864695, - 3.612903226, - 28, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '55-64', - 29, - 0.09183673469, - 0.7232142857, - 0.1434864695, - 2.322580645, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '65-74', - 51, - 0.09693877551, - 0.8329853862, - 0.1434864695, - 2.709677419, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '75+', - 5, - 0.09693877551, - 1.789237668, - 0.1434864695, - 5.419354839, - 42, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '15-24', - 32, - 0.112244898, - 1.214723926, - 0.113593455, - 3.828358209, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '25-34', - 24, - 0.09183673469, - 0.6501128668, - 0.113593455, - 2.268656716, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '35-44', - 35, - 0.09183673469, - 0.8341463415, - 0.113593455, - 2.694029851, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '45-54', - 19, - 0.09693877551, - 0.6155507559, - 0.113593455, - 2.126865672, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '55-64', - 26, - 0.09183673469, - 0.7232142857, - 0.113593455, - 2.552238806, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '65-74', - 30, - 0.09693877551, - 0.9123173278, - 0.113593455, - 3.26119403, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '75+', - 10, - 0.09693877551, - 0.6816143498, - 0.113593455, - 2.268656716, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '15-24', - 21, - 0.112244898, - 0.854805726, - 0.1016362492, - 2.760683761, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '25-34', - 28, - 0.09183673469, - 0.8126410835, - 0.1016362492, - 2.905982906, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '35-44', - 24, - 0.09183673469, - 0.6146341463, - 0.1016362492, - 2.034188034, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '45-54', - 31, - 0.09693877551, - 0.7386609071, - 0.1016362492, - 2.615384615, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '55-64', - 28, - 0.09183673469, - 0.7633928571, - 0.1016362492, - 2.760683761, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '65-74', - 18, - 0.09693877551, - 0.4759916493, - 0.1016362492, - 1.743589744, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '75+', - 13, - 0.09693877551, - 0.6390134529, - 0.1016362492, - 2.179487179, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '15-24', - 15, - 0.112244898, - 0.5848670757, - 0.08370044053, - 2, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '25-34', - 27, - 0.09183673469, - 0.7720090293, - 0.08370044053, - 2.923076923, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '35-44', - 23, - 0.09183673469, - 0.5707317073, - 0.08370044053, - 2, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '45-54', - 25, - 0.09693877551, - 0.7796976242, - 0.08370044053, - 2.923076923, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '55-64', - 15, - 0.09183673469, - 0.4419642857, - 0.08370044053, - 1.692307692, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '65-74', - 16, - 0.09693877551, - 0.4363256785, - 0.08370044053, - 1.692307692, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '75+', - 2, - 0.09693877551, - 0.2130044843, - 0.08370044053, - 0.7692307692, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '15-24', - 15, - 0.112244898, - 0.5398773006, - 0.09565764632, - 1.699115044, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '25-34', - 23, - 0.09183673469, - 0.5282167043, - 0.09565764632, - 1.840707965, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '35-44', - 14, - 0.09183673469, - 0.4390243902, - 0.09565764632, - 1.415929204, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '45-54', - 26, - 0.09693877551, - 0.6976241901, - 0.09565764632, - 2.407079646, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '55-64', - 38, - 0.09183673469, - 1.044642857, - 0.09565764632, - 3.681415929, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '65-74', - 26, - 0.09693877551, - 0.6743215031, - 0.09565764632, - 2.407079646, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '75+', - 21, - 0.09693877551, - 0.7668161435, - 0.09565764632, - 2.548672566, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '15-24', - 19, - 0.112244898, - 0.7648261759, - 0.07174323474, - 2.372093023, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '25-34', - 28, - 0.09183673469, - 0.7313769752, - 0.07174323474, - 2.511627907, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '35-44', - 11, - 0.09183673469, - 0.3073170732, - 0.07174323474, - 0.976744186, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '45-54', - 14, - 0.09693877551, - 0.4514038877, - 0.07174323474, - 1.534883721, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '55-64', - 14, - 0.09183673469, - 0.3616071429, - 0.07174323474, - 1.255813953, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '65-74', - 15, - 0.09693877551, - 0.3966597077, - 0.07174323474, - 1.395348837, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '75+', - 10, - 0.09693877551, - 0.5964125561, - 0.07174323474, - 1.953488372, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '15-24', - 25, - 0.112244898, - 0.8098159509, - 0.07174323474, - 2.454545455, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '25-34', - 19, - 0.09183673469, - 0.4469525959, - 0.07174323474, - 1.5, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '35-44', - 16, - 0.09183673469, - 0.3951219512, - 0.07174323474, - 1.227272727, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '45-54', - 19, - 0.09693877551, - 0.4924406048, - 0.07174323474, - 1.636363636, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '55-64', - 16, - 0.09183673469, - 0.4017857143, - 0.07174323474, - 1.363636364, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '65-74', - 15, - 0.09693877551, - 0.4363256785, - 0.07174323474, - 1.5, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '75+', - 8, - 0.09693877551, - 0.7242152466, - 0.07174323474, - 2.318181818, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '15-24', - 50, - 0.112244898, - 1.529652352, - 0.1853366897, - 4.790909091, - 34, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '25-34', - 40, - 0.09183673469, - 1.097065463, - 0.1853366897, - 3.804545455, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '35-44', - 42, - 0.09183673469, - 1.36097561, - 0.1853366897, - 4.368181818, - 31, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '45-54', - 56, - 0.09693877551, - 1.354211663, - 0.1853366897, - 4.65, - 33, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '55-64', - 43, - 0.09183673469, - 1.245535714, - 0.1853366897, - 4.368181818, - 31, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '65-74', - 30, - 0.09693877551, - 1.189979123, - 0.1853366897, - 4.227272727, - 30, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '75+', - 34, - 0.09693877551, - 1.448430493, - 0.1853366897, - 4.790909091, - 34, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '15-24', - 16, - 0.05666208791, - 0.4085714286, - 0.09696186167, - 1.818181818, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '25-34', - 15, - 0.07211538462, - 0.429245283, - 0.09696186167, - 1.818181818, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '35-44', - 28, - 0.07211538462, - 0.5924276169, - 0.09696186167, - 2.657342657, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '45-54', - 35, - 0.07726648352, - 0.6892778993, - 0.09696186167, - 2.937062937, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '55-64', - 31, - 0.08241758242, - 0.9162995595, - 0.09696186167, - 3.636363636, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '65-74', - 34, - 0.08756868132, - 0.9081196581, - 0.09696186167, - 3.496503497, - 25, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '75+', - 21, - 0.08756868132, - 0.9464668094, - 0.09696186167, - 3.636363636, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '15-24', - 12, - 0.05666208791, - 0.2828571429, - 0.05332902392, - 1.356164384, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '25-34', - 13, - 0.07211538462, - 0.2971698113, - 0.05332902392, - 1.356164384, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '35-44', - 9, - 0.07211538462, - 0.1870824053, - 0.05332902392, - 0.904109589, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '45-54', - 21, - 0.07726648352, - 0.4266958425, - 0.05332902392, - 1.95890411, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '55-64', - 14, - 0.08241758242, - 0.3524229075, - 0.05332902392, - 1.506849315, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '65-74', - 19, - 0.08756868132, - 0.4722222222, - 0.05332902392, - 1.95890411, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '75+', - 10, - 0.08756868132, - 0.4732334047, - 0.05332902392, - 1.95890411, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '15-24', - 15, - 0.05666208791, - 0.44, - 0.06787330317, - 1.96, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '25-34', - 26, - 0.07211538462, - 0.5613207547, - 0.06787330317, - 2.38, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '35-44', - 15, - 0.07211538462, - 0.3118040089, - 0.06787330317, - 1.4, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '45-54', - 25, - 0.07726648352, - 0.5251641138, - 0.06787330317, - 2.24, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '55-64', - 23, - 0.08241758242, - 0.5286343612, - 0.06787330317, - 2.1, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '65-74', - 28, - 0.08756868132, - 0.5448717949, - 0.06787330317, - 2.1, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '75+', - 9, - 0.08756868132, - 0.4732334047, - 0.06787330317, - 1.82, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '15-24', - 1, - 0.05666208791, - 0.06285714286, - 0.04848093083, - 0.2816901408, - 2, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '25-34', - 3, - 0.07211538462, - 0.1320754717, - 0.04848093083, - 0.5633802817, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '35-44', - 7, - 0.07211538462, - 0.3118040089, - 0.04848093083, - 1.408450704, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '45-54', - 12, - 0.07726648352, - 0.4923413567, - 0.04848093083, - 2.112676056, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '55-64', - 7, - 0.08241758242, - 0.4581497797, - 0.04848093083, - 1.830985915, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '65-74', - 8, - 0.08756868132, - 0.5448717949, - 0.04848093083, - 2.112676056, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '75+', - 3, - 0.08756868132, - 0.4368308351, - 0.04848093083, - 1.690140845, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '15-24', - 25, - 0.05666208791, - 0.7542857143, - 0.1599870718, - 3.370212766, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '25-34', - 46, - 0.07211538462, - 0.9575471698, - 0.1599870718, - 4.072340426, - 29, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '35-44', - 46, - 0.07211538462, - 1.340757238, - 0.1599870718, - 6.038297872, - 43, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '45-54', - 46, - 0.07726648352, - 1.01750547, - 0.1599870718, - 4.353191489, - 31, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '55-64', - 43, - 0.08241758242, - 1.127753304, - 0.1599870718, - 4.493617021, - 32, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '65-74', - 55, - 0.08756868132, - 1.307692308, - 0.1599870718, - 5.055319149, - 36, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '75+', - 22, - 0.08756868132, - 1.456102784, - 0.1599870718, - 5.617021277, - 40, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '15-24', - 68, - 0.05666208791, - 0.5342857143, - 0.0872656755, - 2.571428571, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '25-34', - 113, - 0.07211538462, - 0.6603773585, - 0.0872656755, - 3.025210084, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '35-44', - 19, - 0.07211538462, - 0.3118040089, - 0.0872656755, - 1.512605042, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '45-54', - 31, - 0.07726648352, - 0.5579868709, - 0.0872656755, - 2.571428571, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '55-64', - 43, - 0.08241758242, - 0.704845815, - 0.0872656755, - 3.025210084, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '65-74', - 51, - 0.08756868132, - 0.6175213675, - 0.0872656755, - 2.571428571, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '75+', - 40, - 0.08756868132, - 0.6552462527, - 0.0872656755, - 2.722689076, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '15-24', - 12, - 0.05666208791, - 0.2828571429, - 0.058177117, - 1.301204819, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '25-34', - 17, - 0.07211538462, - 0.4622641509, - 0.058177117, - 2.024096386, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '35-44', - 16, - 0.07211538462, - 0.3118040089, - 0.058177117, - 1.445783133, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '45-54', - 16, - 0.07726648352, - 0.295404814, - 0.058177117, - 1.301204819, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '55-64', - 13, - 0.08241758242, - 0.3524229075, - 0.058177117, - 1.445783133, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '65-74', - 20, - 0.08756868132, - 0.5811965812, - 0.058177117, - 2.313253012, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '75+', - 17, - 0.08756868132, - 0.5460385439, - 0.058177117, - 2.168674699, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '15-24', - 6, - 0.05666208791, - 0.1885714286, - 0.1018099548, - 0.8873239437, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '25-34', - 22, - 0.07211538462, - 0.4952830189, - 0.1018099548, - 2.218309859, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '35-44', - 42, - 0.07211538462, - 0.8106904232, - 0.1018099548, - 3.845070423, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '45-54', - 35, - 0.07726648352, - 0.9190371991, - 0.1018099548, - 4.14084507, - 28, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '55-64', - 28, - 0.08241758242, - 0.704845815, - 0.1018099548, - 2.957746479, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '65-74', - 30, - 0.08756868132, - 0.8354700855, - 0.1018099548, - 3.401408451, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '75+', - 21, - 0.08756868132, - 0.8736616702, - 0.1018099548, - 3.549295775, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '15-24', - 22, - 0.05666208791, - 0.66, - 0.07756948933, - 3, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '25-34', - 22, - 0.07211538462, - 0.5283018868, - 0.07756948933, - 2.285714286, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '35-44', - 26, - 0.07211538462, - 0.561247216, - 0.07756948933, - 2.571428571, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '45-54', - 23, - 0.07726648352, - 0.5251641138, - 0.07756948933, - 2.285714286, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '55-64', - 21, - 0.08241758242, - 0.563876652, - 0.07756948933, - 2.285714286, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '65-74', - 19, - 0.08756868132, - 0.4358974359, - 0.07756948933, - 1.714285714, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '75+', - 12, - 0.08756868132, - 0.4732334047, - 0.07756948933, - 1.857142857, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '15-24', - 3, - 0.05666208791, - 0.1257142857, - 0.04848093083, - 0.5797101449, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '25-34', - 7, - 0.07211538462, - 0.1981132075, - 0.04848093083, - 0.8695652174, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '35-44', - 18, - 0.07211538462, - 0.4053452116, - 0.04848093083, - 1.884057971, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '45-54', - 14, - 0.07726648352, - 0.3282275711, - 0.04848093083, - 1.449275362, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '55-64', - 10, - 0.08241758242, - 0.3524229075, - 0.04848093083, - 1.449275362, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '65-74', - 12, - 0.08756868132, - 0.4722222222, - 0.04848093083, - 1.884057971, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '75+', - 7, - 0.08756868132, - 0.4732334047, - 0.04848093083, - 1.884057971, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '15-24', - 14, - 0.05666208791, - 0.3457142857, - 0.058177117, - 1.65, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '25-34', - 13, - 0.07211538462, - 0.3301886792, - 0.058177117, - 1.5, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '35-44', - 15, - 0.07211538462, - 0.3118040089, - 0.058177117, - 1.5, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '45-54', - 24, - 0.07726648352, - 0.4923413567, - 0.058177117, - 2.25, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '55-64', - 18, - 0.08241758242, - 0.3876651982, - 0.058177117, - 1.65, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '65-74', - 20, - 0.08756868132, - 0.5085470085, - 0.058177117, - 2.1, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '75+', - 9, - 0.08756868132, - 0.3276231263, - 0.058177117, - 1.35, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '15-24', - 6, - 0.05666208791, - 0.1571428571, - 0.03878474467, - 0.7272727273, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '25-34', - 11, - 0.07211538462, - 0.3301886792, - 0.03878474467, - 1.454545455, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '35-44', - 6, - 0.07211538462, - 0.1247216036, - 0.03878474467, - 0.5818181818, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '45-54', - 13, - 0.07726648352, - 0.295404814, - 0.03878474467, - 1.309090909, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '55-64', - 13, - 0.08241758242, - 0.3524229075, - 0.03878474467, - 1.454545455, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '65-74', - 6, - 0.08756868132, - 0.1816239316, - 0.03878474467, - 0.7272727273, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '75+', - 10, - 0.08756868132, - 0.4368308351, - 0.03878474467, - 1.745454545, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '15-24', - 6, - 0.05666208791, - 0.1571428571, - 0.03393665158, - 0.7, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '25-34', - 14, - 0.07211538462, - 0.2971698113, - 0.03393665158, - 1.26, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '35-44', - 14, - 0.07211538462, - 0.280623608, - 0.03393665158, - 1.26, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '45-54', - 11, - 0.07726648352, - 0.2297592998, - 0.03393665158, - 0.98, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '55-64', - 10, - 0.08241758242, - 0.2114537445, - 0.03393665158, - 0.84, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '65-74', - 10, - 0.08756868132, - 0.2179487179, - 0.03393665158, - 0.84, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '75+', - 7, - 0.08756868132, - 0.2912205567, - 0.03393665158, - 1.12, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '15-24', - 34, - 0.05666208791, - 0.8171428571, - 0.1405946994, - 3.67804878, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '25-34', - 40, - 0.07211538462, - 1.089622642, - 0.1405946994, - 4.668292683, - 33, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '35-44', - 43, - 0.07211538462, - 0.7483296214, - 0.1405946994, - 3.395121951, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '45-54', - 41, - 0.07726648352, - 1.01750547, - 0.1405946994, - 4.385365854, - 31, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '55-64', - 42, - 0.08241758242, - 0.9515418502, - 0.1405946994, - 3.819512195, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '65-74', - 54, - 0.08756868132, - 1.38034188, - 0.1405946994, - 5.375609756, - 38, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '75+', - 20, - 0.08756868132, - 0.9464668094, - 0.1405946994, - 3.67804878, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '15-24', - 18, - 0.05666208791, - 0.4085714286, - 0.06302521008, - 1.877777778, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '25-34', - 19, - 0.07211538462, - 0.429245283, - 0.06302521008, - 1.877777778, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '35-44', - 29, - 0.07211538462, - 0.4053452116, - 0.06302521008, - 1.877777778, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '45-54', - 17, - 0.07726648352, - 0.3610503282, - 0.06302521008, - 1.588888889, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '55-64', - 15, - 0.08241758242, - 0.422907489, - 0.06302521008, - 1.733333333, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '65-74', - 18, - 0.08756868132, - 0.5448717949, - 0.06302521008, - 2.166666667, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '75+', - 9, - 0.08756868132, - 0.4732334047, - 0.06302521008, - 1.877777778, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '15-24', - 26, - 0.05666208791, - 0.8171428571, - 0.1308985133, - 3.836065574, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '25-34', - 27, - 0.07211538462, - 0.6603773585, - 0.1308985133, - 2.950819672, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '35-44', - 32, - 0.07211538462, - 0.7171492205, - 0.1308985133, - 3.393442623, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '45-54', - 43, - 0.07726648352, - 0.7877461707, - 0.1308985133, - 3.540983607, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '55-64', - 44, - 0.08241758242, - 1.162995595, - 0.1308985133, - 4.868852459, - 33, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '65-74', - 66, - 0.08756868132, - 1.307692308, - 0.1308985133, - 5.31147541, - 36, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '75+', - 18, - 0.08756868132, - 0.7644539615, - 0.1308985133, - 3.098360656, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '15-24', - 13, - 0.05666208791, - 0.2828571429, - 0.04363283775, - 1.285714286, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '25-34', - 13, - 0.07211538462, - 0.3301886792, - 0.04363283775, - 1.428571429, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '35-44', - 12, - 0.07211538462, - 0.3429844098, - 0.04363283775, - 1.571428571, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '45-54', - 15, - 0.07726648352, - 0.2625820569, - 0.04363283775, - 1.142857143, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '55-64', - 13, - 0.08241758242, - 0.3171806167, - 0.04363283775, - 1.285714286, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '65-74', - 8, - 0.08756868132, - 0.2542735043, - 0.04363283775, - 1, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '75+', - 10, - 0.08756868132, - 0.3276231263, - 0.04363283775, - 1.285714286, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '15-24', - 9, - 0.05666208791, - 0.44, - 0.05332902392, - 2.053333333, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '25-34', - 8, - 0.07211538462, - 0.3632075472, - 0.05332902392, - 1.613333333, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '35-44', - 11, - 0.07211538462, - 0.4053452116, - 0.05332902392, - 1.906666667, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '45-54', - 11, - 0.07726648352, - 0.4266958425, - 0.05332902392, - 1.906666667, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '55-64', - 2, - 0.08241758242, - 0.140969163, - 0.05332902392, - 0.5866666667, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '65-74', - 7, - 0.08756868132, - 0.3995726496, - 0.05332902392, - 1.613333333, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '75+', - 3, - 0.08756868132, - 0.3276231263, - 0.05332902392, - 1.32, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '15-24', - 10, - 0.05666208791, - 0.2828571429, - 0.058177117, - 1.5, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '25-34', - 13, - 0.07211538462, - 0.2971698113, - 0.058177117, - 1.5, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '35-44', - 18, - 0.07211538462, - 0.4365256125, - 0.058177117, - 2.333333333, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '45-54', - 17, - 0.07726648352, - 0.4266958425, - 0.058177117, - 2.166666667, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '55-64', - 19, - 0.08241758242, - 0.4933920705, - 0.058177117, - 2.333333333, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '65-74', - 29, - 0.08756868132, - 0.4722222222, - 0.058177117, - 2.166666667, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '75+', - 0, - 0.08756868132, - 0, - 0.058177117, - 0, - 0, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '15-24', - 21, - 0.05666208791, - 1.068571429, - 0.2521008403, - 4.804347826, - 34, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '25-34', - 36, - 0.07211538462, - 1.981132075, - 0.2521008403, - 8.47826087, - 60, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '35-44', - 45, - 0.07211538462, - 2.151447661, - 0.2521008403, - 9.75, - 69, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '45-54', - 33, - 0.07726648352, - 1.641137856, - 0.2521008403, - 7.065217391, - 50, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '55-64', - 37, - 0.08241758242, - 2.008810573, - 0.2521008403, - 8.054347826, - 57, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '65-74', - 27, - 0.08756868132, - 1.452991453, - 0.2521008403, - 5.652173913, - 40, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '75+', - 20, - 0.08756868132, - 2.111349036, - 0.2521008403, - 8.195652174, - 58, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '15-24', - 6, - 0.05666208791, - 0.1571428571, - 0.03878474467, - 0.7407407407, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '25-34', - 10, - 0.07211538462, - 0.2971698113, - 0.03878474467, - 1.333333333, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '35-44', - 18, - 0.07211538462, - 0.3118040089, - 0.03878474467, - 1.481481481, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '45-54', - 10, - 0.07726648352, - 0.1641137856, - 0.03878474467, - 0.7407407407, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '55-64', - 11, - 0.08241758242, - 0.2466960352, - 0.03878474467, - 1.037037037, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '65-74', - 24, - 0.08756868132, - 0.3632478632, - 0.03878474467, - 1.481481481, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '75+', - 1, - 0.08756868132, - 0.2912205567, - 0.03878474467, - 1.185185185, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '15-24', - 12, - 0.05666208791, - 0.3142857143, - 0.08241758242, - 1.416666667, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '25-34', - 24, - 0.07211538462, - 0.5283018868, - 0.08241758242, - 2.266666667, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '35-44', - 41, - 0.07211538462, - 0.6859688196, - 0.08241758242, - 3.116666667, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '45-54', - 26, - 0.07726648352, - 0.6564551422, - 0.08241758242, - 2.833333333, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '55-64', - 25, - 0.08241758242, - 0.5991189427, - 0.08241758242, - 2.408333333, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '65-74', - 17, - 0.08756868132, - 0.4722222222, - 0.08241758242, - 1.841666667, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '75+', - 13, - 0.08756868132, - 0.800856531, - 0.08241758242, - 3.116666667, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '15-24', - 7, - 0.05666208791, - 0.22, - 0.0290885585, - 1, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '25-34', - 8, - 0.07211538462, - 0.1981132075, - 0.0290885585, - 0.8571428571, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '35-44', - 10, - 0.07211538462, - 0.1870824053, - 0.0290885585, - 0.8571428571, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '45-54', - 6, - 0.07726648352, - 0.1312910284, - 0.0290885585, - 0.5714285714, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '55-64', - 4, - 0.08241758242, - 0.0704845815, - 0.0290885585, - 0.2857142857, - 2, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '65-74', - 11, - 0.08756868132, - 0.2905982906, - 0.0290885585, - 1.142857143, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '75+', - 7, - 0.08756868132, - 0.3276231263, - 0.0290885585, - 1.285714286, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '15-24', - 12, - 0.05666208791, - 0.2828571429, - 0.03393665158, - 1.285714286, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '25-34', - 7, - 0.07211538462, - 0.1650943396, - 0.03393665158, - 0.7142857143, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '35-44', - 13, - 0.07211538462, - 0.2182628062, - 0.03393665158, - 1, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '45-54', - 6, - 0.07726648352, - 0.1312910284, - 0.03393665158, - 0.5714285714, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '55-64', - 15, - 0.08241758242, - 0.3876651982, - 0.03393665158, - 1.571428571, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '65-74', - 10, - 0.08756868132, - 0.2542735043, - 0.03393665158, - 1, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '75+', - 2, - 0.08756868132, - 0.2184154176, - 0.03393665158, - 0.8571428571, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '15-24', - 9, - 0.05666208791, - 0.22, - 0.01939237233, - 0.9333333333, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '25-34', - 3, - 0.07211538462, - 0.06603773585, - 0.01939237233, - 0.2666666667, - 2, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '35-44', - 4, - 0.07211538462, - 0.06236080178, - 0.01939237233, - 0.2666666667, - 2, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '45-54', - 4, - 0.07726648352, - 0.06564551422, - 0.01939237233, - 0.2666666667, - 2, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '55-64', - 7, - 0.08241758242, - 0.1762114537, - 0.01939237233, - 0.6666666667, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '65-74', - 10, - 0.08756868132, - 0.2179487179, - 0.01939237233, - 0.8, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '75+', - 6, - 0.08756868132, - 0.2184154176, - 0.01939237233, - 0.8, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '15-24', - 16, - 0.05666208791, - 0.4714285714, - 0.1066580478, - 2.115384615, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '25-34', - 30, - 0.07211538462, - 0.6273584906, - 0.1066580478, - 2.679487179, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '35-44', - 29, - 0.07211538462, - 0.561247216, - 0.1066580478, - 2.538461538, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '45-54', - 33, - 0.07726648352, - 0.8205689278, - 0.1066580478, - 3.525641026, - 25, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '55-64', - 38, - 0.08241758242, - 0.9162995595, - 0.1066580478, - 3.666666667, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '65-74', - 39, - 0.08756868132, - 0.9807692308, - 0.1066580478, - 3.807692308, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '75+', - 18, - 0.08756868132, - 0.9464668094, - 0.1066580478, - 3.666666667, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '15-24', - 28, - 0.05666208791, - 0.6285714286, - 0.1066580478, - 2.894736842, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '25-34', - 39, - 0.07211538462, - 0.7264150943, - 0.1066580478, - 3.184210526, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '35-44', - 35, - 0.07211538462, - 0.6236080178, - 0.1066580478, - 2.894736842, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '45-54', - 39, - 0.07726648352, - 0.8533916849, - 0.1066580478, - 3.763157895, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '55-64', - 35, - 0.08241758242, - 0.7753303965, - 0.1066580478, - 3.184210526, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '65-74', - 28, - 0.08756868132, - 0.7264957265, - 0.1066580478, - 2.894736842, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '75+', - 10, - 0.08756868132, - 0.800856531, - 0.1066580478, - 3.184210526, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '15-24', - 8, - 0.05666208791, - 0.1885714286, - 0.05332902392, - 0.8461538462, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '25-34', - 24, - 0.07211538462, - 0.5613207547, - 0.05332902392, - 2.397435897, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '35-44', - 13, - 0.07211538462, - 0.280623608, - 0.05332902392, - 1.269230769, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '45-54', - 25, - 0.07726648352, - 0.4595185996, - 0.05332902392, - 1.974358974, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '55-64', - 13, - 0.08241758242, - 0.3171806167, - 0.05332902392, - 1.269230769, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '65-74', - 7, - 0.08756868132, - 0.2542735043, - 0.05332902392, - 0.9871794872, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '75+', - 16, - 0.08756868132, - 0.5824411135, - 0.05332902392, - 2.256410256, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '15-24', - 23, - 0.08854166667, - 0.6646090535, - 0.06598984772, - 2.655913978, - 19, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '25-34', - 13, - 0.078125, - 0.4187817259, - 0.06598984772, - 1.537634409, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '35-44', - 19, - 0.07291666667, - 0.4715025907, - 0.06598984772, - 1.817204301, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '45-54', - 18, - 0.0625, - 0.3100775194, - 0.06598984772, - 1.397849462, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '55-64', - 18, - 0.07291666667, - 0.5025641026, - 0.06598984772, - 1.956989247, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '65-74', - 14, - 0.0625, - 0.3296703297, - 0.06598984772, - 1.397849462, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '75+', - 14, - 0.0625, - 0.5748502994, - 0.06598984772, - 2.23655914, - 16, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '15-24', - 25, - 0.08854166667, - 0.6646090535, - 0.06091370558, - 2.746987952, - 19, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '25-34', - 21, - 0.078125, - 0.5710659898, - 0.06091370558, - 2.168674699, - 15, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '35-44', - 13, - 0.07291666667, - 0.3264248705, - 0.06091370558, - 1.301204819, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '45-54', - 18, - 0.0625, - 0.3720930233, - 0.06091370558, - 1.734939759, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '55-64', - 12, - 0.07291666667, - 0.3230769231, - 0.06091370558, - 1.301204819, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '65-74', - 8, - 0.0625, - 0.1978021978, - 0.06091370558, - 0.8674698795, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '75+', - 10, - 0.0625, - 0.4670658683, - 0.06091370558, - 1.879518072, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '15-24', - 15, - 0.08854166667, - 0.4897119342, - 0.07106598985, - 2.020618557, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '25-34', - 25, - 0.078125, - 0.6091370558, - 0.07106598985, - 2.309278351, - 16, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '35-44', - 19, - 0.07291666667, - 0.4352331606, - 0.07106598985, - 1.731958763, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '45-54', - 22, - 0.0625, - 0.4341085271, - 0.07106598985, - 2.020618557, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '55-64', - 22, - 0.07291666667, - 0.5025641026, - 0.07106598985, - 2.020618557, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '65-74', - 30, - 0.0625, - 0.5274725275, - 0.07106598985, - 2.309278351, - 16, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '75+', - 8, - 0.0625, - 0.3952095808, - 0.07106598985, - 1.587628866, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '15-24', - 24, - 0.08854166667, - 1.434156379, - 0.1573604061, - 5.884259259, - 41, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '25-34', - 19, - 0.078125, - 0.9898477157, - 0.1573604061, - 3.731481481, - 26, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '35-44', - 21, - 0.07291666667, - 1.088082902, - 0.1573604061, - 4.305555556, - 30, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '45-54', - 29, - 0.0625, - 1.11627907, - 0.1573604061, - 5.166666667, - 36, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '55-64', - 15, - 0.07291666667, - 1.005128205, - 0.1573604061, - 4.018518519, - 28, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '65-74', - 12, - 0.0625, - 0.7252747253, - 0.1573604061, - 3.157407407, - 22, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '75+', - 9, - 0.0625, - 1.185628743, - 0.1573604061, - 4.736111111, - 33, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '15-24', - 10, - 0.08854166667, - 0.3148148148, - 0.02538071066, - 1.285714286, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '25-34', - 11, - 0.078125, - 0.2664974619, - 0.02538071066, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '35-44', - 3, - 0.07291666667, - 0.1088082902, - 0.02538071066, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '45-54', - 9, - 0.0625, - 0.1860465116, - 0.02538071066, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '55-64', - 9, - 0.07291666667, - 0.2512820513, - 0.02538071066, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '65-74', - 4, - 0.0625, - 0.0989010989, - 0.02538071066, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '75+', - 0, - 0.0625, - 0, - 0.02538071066, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '15-24', - 20, - 0.08854166667, - 0.1748971193, - 0.02538071066, - 0.6944444444, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '25-34', - 34, - 0.078125, - 0.2284263959, - 0.02538071066, - 0.8333333333, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '35-44', - 9, - 0.07291666667, - 0.1813471503, - 0.02538071066, - 0.6944444444, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '45-54', - 9, - 0.0625, - 0.1550387597, - 0.02538071066, - 0.6944444444, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '55-64', - 13, - 0.07291666667, - 0.2153846154, - 0.02538071066, - 0.8333333333, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '65-74', - 11, - 0.0625, - 0.1318681319, - 0.02538071066, - 0.5555555556, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '75+', - 12, - 0.0625, - 0.1796407186, - 0.02538071066, - 0.6944444444, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '15-24', - 12, - 0.08854166667, - 0.3148148148, - 0.02538071066, - 1.40625, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '25-34', - 1, - 0.078125, - 0.03807106599, - 0.02538071066, - 0.15625, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '35-44', - 15, - 0.07291666667, - 0.3264248705, - 0.02538071066, - 1.40625, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '45-54', - 4, - 0.0625, - 0.09302325581, - 0.02538071066, - 0.46875, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '55-64', - 7, - 0.07291666667, - 0.1794871795, - 0.02538071066, - 0.78125, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '65-74', - 2, - 0.0625, - 0.06593406593, - 0.02538071066, - 0.3125, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '75+', - 4, - 0.0625, - 0.1077844311, - 0.02538071066, - 0.46875, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '15-24', - 3, - 0.08854166667, - 0.1049382716, - 0.04568527919, - 0.4426229508, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '25-34', - 10, - 0.078125, - 0.2664974619, - 0.04568527919, - 1.032786885, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '35-44', - 17, - 0.07291666667, - 0.3626943005, - 0.04568527919, - 1.475409836, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '45-54', - 12, - 0.0625, - 0.3100775194, - 0.04568527919, - 1.475409836, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '55-64', - 15, - 0.07291666667, - 0.3948717949, - 0.04568527919, - 1.62295082, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '65-74', - 13, - 0.0625, - 0.3296703297, - 0.04568527919, - 1.475409836, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '75+', - 9, - 0.0625, - 0.3592814371, - 0.04568527919, - 1.475409836, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '15-24', - 42, - 0.08854166667, - 1.434156379, - 0.1827411168, - 5.857142857, - 41, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '25-34', - 59, - 0.078125, - 1.675126904, - 0.1827411168, - 6.285714286, - 44, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '35-44', - 51, - 0.07291666667, - 1.305699482, - 0.1827411168, - 5.142857143, - 36, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '45-54', - 43, - 0.0625, - 0.8992248062, - 0.1827411168, - 4.142857143, - 29, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '55-64', - 50, - 0.07291666667, - 1.4, - 0.1827411168, - 5.571428571, - 39, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '65-74', - 51, - 0.0625, - 1.120879121, - 0.1827411168, - 4.857142857, - 34, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '75+', - 26, - 0.0625, - 1.041916168, - 0.1827411168, - 4.142857143, - 29, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '15-24', - 27, - 0.08854166667, - 1.014403292, - 0.1269035533, - 4.073033708, - 29, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '25-34', - 27, - 0.078125, - 0.8375634518, - 0.1269035533, - 3.08988764, - 22, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '35-44', - 35, - 0.07291666667, - 0.9430051813, - 0.1269035533, - 3.651685393, - 26, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '45-54', - 37, - 0.0625, - 0.8062015504, - 0.1269035533, - 3.651685393, - 26, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '55-64', - 27, - 0.07291666667, - 0.9692307692, - 0.1269035533, - 3.792134831, - 27, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '65-74', - 20, - 0.0625, - 0.7582417582, - 0.1269035533, - 3.230337079, - 23, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '75+', - 12, - 0.0625, - 0.8982035928, - 0.1269035533, - 3.511235955, - 25, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '15-24', - 19, - 0.08854166667, - 0.524691358, - 0.03553299492, - 2.282608696, - 15, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '25-34', - 8, - 0.078125, - 0.2284263959, - 0.03553299492, - 0.9130434783, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '35-44', - 11, - 0.07291666667, - 0.2538860104, - 0.03553299492, - 1.065217391, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '45-54', - 6, - 0.0625, - 0.1240310078, - 0.03553299492, - 0.6086956522, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '55-64', - 5, - 0.07291666667, - 0.1076923077, - 0.03553299492, - 0.4565217391, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '65-74', - 8, - 0.0625, - 0.1648351648, - 0.03553299492, - 0.7608695652, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '75+', - 7, - 0.0625, - 0.2155688623, - 0.03553299492, - 0.9130434783, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '15-24', - 23, - 0.08854166667, - 0.6296296296, - 0.06598984772, - 2.659090909, - 18, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '25-34', - 9, - 0.078125, - 0.3045685279, - 0.06598984772, - 1.181818182, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '35-44', - 26, - 0.07291666667, - 0.6165803109, - 0.06598984772, - 2.511363636, - 17, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '45-54', - 12, - 0.0625, - 0.2480620155, - 0.06598984772, - 1.181818182, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '55-64', - 17, - 0.07291666667, - 0.5025641026, - 0.06598984772, - 2.068181818, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '65-74', - 15, - 0.0625, - 0.3956043956, - 0.06598984772, - 1.772727273, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '75+', - 10, - 0.0625, - 0.3952095808, - 0.06598984772, - 1.625, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '15-24', - 45, - 0.08854166667, - 1.224279835, - 0.1370558376, - 4.973684211, - 35, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '25-34', - 41, - 0.078125, - 0.9898477157, - 0.1370558376, - 3.694736842, - 26, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '35-44', - 37, - 0.07291666667, - 0.8341968912, - 0.1370558376, - 3.268421053, - 23, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '45-54', - 40, - 0.0625, - 0.8372093023, - 0.1370558376, - 3.836842105, - 27, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '55-64', - 40, - 0.07291666667, - 0.8974358974, - 0.1370558376, - 3.552631579, - 25, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '65-74', - 47, - 0.0625, - 0.8571428571, - 0.1370558376, - 3.694736842, - 26, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '75+', - 23, - 0.0625, - 1.005988024, - 0.1370558376, - 3.978947368, - 28, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '15-24', - 6, - 0.08854166667, - 0.1748971193, - 0.04060913706, - 0.7142857143, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '25-34', - 8, - 0.078125, - 0.2664974619, - 0.04060913706, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '35-44', - 24, - 0.07291666667, - 0.5077720207, - 0.04060913706, - 2, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '45-54', - 15, - 0.0625, - 0.3720930233, - 0.04060913706, - 1.714285714, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '55-64', - 12, - 0.07291666667, - 0.2871794872, - 0.04060913706, - 1.142857143, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '65-74', - 11, - 0.0625, - 0.2307692308, - 0.04060913706, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '75+', - 2, - 0.0625, - 0.1077844311, - 0.04060913706, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '15-24', - 15, - 0.08854166667, - 0.3847736626, - 0.06091370558, - 1.571428571, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '25-34', - 18, - 0.078125, - 0.4949238579, - 0.06091370558, - 1.857142857, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '35-44', - 27, - 0.07291666667, - 0.4352331606, - 0.06091370558, - 1.714285714, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '45-54', - 23, - 0.0625, - 0.4341085271, - 0.06091370558, - 2, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '55-64', - 11, - 0.07291666667, - 0.3230769231, - 0.06091370558, - 1.285714286, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '65-74', - 15, - 0.0625, - 0.4285714286, - 0.06091370558, - 1.857142857, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '75+', - 7, - 0.0625, - 0.4311377246, - 0.06091370558, - 1.714285714, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '15-24', - 37, - 0.08854166667, - 1.294238683, - 0.1421319797, - 5.206030151, - 37, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '25-34', - 45, - 0.078125, - 1.294416244, - 0.1421319797, - 4.783919598, - 34, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '35-44', - 38, - 0.07291666667, - 0.9430051813, - 0.1421319797, - 3.658291457, - 26, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '45-54', - 46, - 0.0625, - 0.8062015504, - 0.1421319797, - 3.658291457, - 26, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '55-64', - 35, - 0.07291666667, - 0.9692307692, - 0.1421319797, - 3.798994975, - 27, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '65-74', - 40, - 0.0625, - 0.7252747253, - 0.1421319797, - 3.095477387, - 22, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '75+', - 24, - 0.0625, - 0.9700598802, - 0.1421319797, - 3.798994975, - 27, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '15-24', - 24, - 0.08854166667, - 0.5946502058, - 0.09137055838, - 2.467741935, - 17, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '25-34', - 17, - 0.078125, - 0.4568527919, - 0.09137055838, - 1.741935484, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '35-44', - 13, - 0.07291666667, - 0.4352331606, - 0.09137055838, - 1.741935484, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '45-54', - 35, - 0.0625, - 0.5891472868, - 0.09137055838, - 2.758064516, - 19, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '55-64', - 27, - 0.07291666667, - 0.7179487179, - 0.09137055838, - 2.903225806, - 20, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '65-74', - 32, - 0.0625, - 0.9230769231, - 0.09137055838, - 4.064516129, - 28, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '75+', - 20, - 0.0625, - 0.5748502994, - 0.09137055838, - 2.322580645, - 16, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '15-24', - 14, - 0.08854166667, - 0.804526749, - 0.05583756345, - 3.048192771, - 23, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '25-34', - 4, - 0.078125, - 0.2284263959, - 0.05583756345, - 0.7951807229, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '35-44', - 9, - 0.07291666667, - 0.3989637306, - 0.05583756345, - 1.457831325, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '45-54', - 12, - 0.0625, - 0.4341085271, - 0.05583756345, - 1.855421687, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '55-64', - 4, - 0.07291666667, - 0.2153846154, - 0.05583756345, - 0.7951807229, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '65-74', - 5, - 0.0625, - 0.2967032967, - 0.05583756345, - 1.192771084, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '75+', - 5, - 0.0625, - 0.502994012, - 0.05583756345, - 1.855421687, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '15-24', - 21, - 0.08854166667, - 0.6646090535, - 0.09137055838, - 2.803278689, - 19, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '25-34', - 26, - 0.078125, - 0.6852791878, - 0.09137055838, - 2.655737705, - 18, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '35-44', - 23, - 0.07291666667, - 0.6528497409, - 0.09137055838, - 2.655737705, - 18, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '45-54', - 29, - 0.0625, - 0.6821705426, - 0.09137055838, - 3.245901639, - 22, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '55-64', - 21, - 0.07291666667, - 0.5743589744, - 0.09137055838, - 2.360655738, - 16, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '65-74', - 40, - 0.0625, - 0.5934065934, - 0.09137055838, - 2.655737705, - 18, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '75+', - 1, - 0.0625, - 0.3952095808, - 0.09137055838, - 1.62295082, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '15-24', - 2, - 0.08854166667, - 0.1399176955, - 0.0152284264, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '25-34', - 3, - 0.078125, - 0.152284264, - 0.0152284264, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '35-44', - 1, - 0.07291666667, - 0.03626943005, - 0.0152284264, - 0.1428571429, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '45-54', - 1, - 0.0625, - 0.03100775194, - 0.0152284264, - 0.1428571429, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '55-64', - 3, - 0.07291666667, - 0.1794871795, - 0.0152284264, - 0.7142857143, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '65-74', - 4, - 0.0625, - 0.1978021978, - 0.0152284264, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '75+', - 0, - 0.0625, - 0, - 0.0152284264, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '15-24', - 3, - 0.08854166667, - 0.06995884774, - 0.01015228426, - 0.2666666667, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '25-34', - 4, - 0.078125, - 0.152284264, - 0.01015228426, - 0.5333333333, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '35-44', - 3, - 0.07291666667, - 0.0725388601, - 0.01015228426, - 0.2666666667, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '45-54', - 3, - 0.0625, - 0.03100775194, - 0.01015228426, - 0.1333333333, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '55-64', - 4, - 0.07291666667, - 0.1076923077, - 0.01015228426, - 0.4, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '65-74', - 6, - 0.0625, - 0.0989010989, - 0.01015228426, - 0.4, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '75+', - 0, - 0.0625, - 0, - 0.01015228426, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '15-24', - 19, - 0.08854166667, - 0.5596707819, - 0.05076142132, - 2.253521127, - 16, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '25-34', - 15, - 0.078125, - 0.3807106599, - 0.05076142132, - 1.408450704, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '35-44', - 9, - 0.07291666667, - 0.1813471503, - 0.05076142132, - 0.7042253521, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '45-54', - 9, - 0.0625, - 0.2170542636, - 0.05076142132, - 0.985915493, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '55-64', - 20, - 0.07291666667, - 0.5025641026, - 0.05076142132, - 1.971830986, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '65-74', - 11, - 0.0625, - 0.2637362637, - 0.05076142132, - 1.126760563, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '75+', - 6, - 0.0625, - 0.3952095808, - 0.05076142132, - 1.549295775, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '15-24', - 24, - 0.08854166667, - 0.7695473251, - 0.1472081218, - 3.255102041, - 22, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '25-34', - 48, - 0.078125, - 1.294416244, - 0.1472081218, - 5.030612245, - 34, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '35-44', - 51, - 0.07291666667, - 1.088082902, - 0.1472081218, - 4.43877551, - 30, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '45-54', - 52, - 0.0625, - 0.9612403101, - 0.1472081218, - 4.586734694, - 31, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '55-64', - 43, - 0.07291666667, - 1.041025641, - 0.1472081218, - 4.290816327, - 29, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '65-74', - 43, - 0.0625, - 1.021978022, - 0.1472081218, - 4.586734694, - 31, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '75+', - 16, - 0.0625, - 0.6826347305, - 0.1472081218, - 2.81122449, - 19, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '15-24', - 21, - 0.08854166667, - 0.5946502058, - 0.07106598985, - 2.428571429, - 17, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '25-34', - 18, - 0.078125, - 0.4949238579, - 0.07106598985, - 1.857142857, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '35-44', - 22, - 0.07291666667, - 0.4715025907, - 0.07106598985, - 1.857142857, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '45-54', - 18, - 0.0625, - 0.4341085271, - 0.07106598985, - 2, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '55-64', - 26, - 0.07291666667, - 0.6820512821, - 0.07106598985, - 2.714285714, - 19, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '65-74', - 19, - 0.0625, - 0.4615384615, - 0.07106598985, - 2, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '75+', - 3, - 0.0625, - 0.2874251497, - 0.07106598985, - 1.142857143, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '15-24', - 0, - 0.08854166667, - 0, - 0.005076142132, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '25-34', - 2, - 0.078125, - 0.03807106599, - 0.005076142132, - 0.125, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '35-44', - 4, - 0.07291666667, - 0.1088082902, - 0.005076142132, - 0.375, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '45-54', - 1, - 0.0625, - 0.03100775194, - 0.005076142132, - 0.125, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '55-64', - 0, - 0.07291666667, - 0, - 0.005076142132, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '65-74', - 4, - 0.0625, - 0.06593406593, - 0.005076142132, - 0.25, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '75+', - 1, - 0.0625, - 0.03592814371, - 0.005076142132, - 0.125, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '15-24', - 21, - 0.08854166667, - 0.6646090535, - 0.06598984772, - 2.975903614, - 19, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '25-34', - 19, - 0.078125, - 0.4568527919, - 0.06598984772, - 1.879518072, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '35-44', - 26, - 0.07291666667, - 0.5803108808, - 0.06598984772, - 2.506024096, - 16, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '45-54', - 19, - 0.0625, - 0.4341085271, - 0.06598984772, - 2.192771084, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '55-64', - 14, - 0.07291666667, - 0.358974359, - 0.06598984772, - 1.56626506, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '65-74', - 13, - 0.0625, - 0.2967032967, - 0.06598984772, - 1.409638554, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '75+', - 2, - 0.0625, - 0.1077844311, - 0.06598984772, - 0.4698795181, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '15-24', - 33, - 0.08854166667, - 0.8395061728, - 0.08629441624, - 3.487179487, - 24, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '25-34', - 35, - 0.078125, - 0.7233502538, - 0.08629441624, - 2.760683761, - 19, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '35-44', - 27, - 0.07291666667, - 0.5440414508, - 0.08629441624, - 2.179487179, - 15, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '45-54', - 21, - 0.0625, - 0.4341085271, - 0.08629441624, - 2.034188034, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '55-64', - 26, - 0.07291666667, - 0.5743589744, - 0.08629441624, - 2.324786325, - 16, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '65-74', - 21, - 0.0625, - 0.4945054945, - 0.08629441624, - 2.179487179, - 15, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '75+', - 6, - 0.0625, - 0.502994012, - 0.08629441624, - 2.034188034, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '15-24', - 19, - 0.08854166667, - 0.4547325103, - 0.04060913706, - 1.824561404, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '25-34', - 18, - 0.078125, - 0.4568527919, - 0.04060913706, - 1.684210526, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '35-44', - 10, - 0.07291666667, - 0.2901554404, - 0.04060913706, - 1.122807018, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '45-54', - 12, - 0.0625, - 0.2170542636, - 0.04060913706, - 0.9824561404, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '55-64', - 8, - 0.07291666667, - 0.2153846154, - 0.04060913706, - 0.8421052632, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '65-74', - 6, - 0.0625, - 0.1978021978, - 0.04060913706, - 0.8421052632, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '75+', - 5, - 0.0625, - 0.1796407186, - 0.04060913706, - 0.701754386, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '15-24', - 20, - 0.06914893617, - 0.5773195876, - 0.06878306878, - 2.348623853, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '25-34', - 26, - 0.06420972644, - 0.6514806378, - 0.06878306878, - 3.229357798, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '35-44', - 22, - 0.06914893617, - 0.472972973, - 0.06878306878, - 2.201834862, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '45-54', - 31, - 0.06914893617, - 0.6086956522, - 0.06878306878, - 2.642201835, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '55-64', - 14, - 0.05927051672, - 0.2986425339, - 0.06878306878, - 1.614678899, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '65-74', - 23, - 0.06420972644, - 0.5011337868, - 0.06878306878, - 2.495412844, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Love', - '75+', - 8, - 0.06914893617, - 0.2692307692, - 0.06878306878, - 1.467889908, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '15-24', - 11, - 0.06914893617, - 0.2886597938, - 0.06018518519, - 1.154639175, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '25-34', - 23, - 0.06420972644, - 0.4738041002, - 0.06018518519, - 2.309278351, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '35-44', - 27, - 0.06914893617, - 0.5990990991, - 0.06018518519, - 2.742268041, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '45-54', - 20, - 0.06914893617, - 0.4396135266, - 0.06018518519, - 1.87628866, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '55-64', - 15, - 0.05927051672, - 0.2986425339, - 0.06018518519, - 1.587628866, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '65-74', - 19, - 0.06420972644, - 0.3832199546, - 0.06018518519, - 1.87628866, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Love', - '75+', - 13, - 0.06914893617, - 0.4576923077, - 0.06018518519, - 2.453608247, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '15-24', - 25, - 0.06914893617, - 0.8298969072, - 0.1031746032, - 3.365853659, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '25-34', - 39, - 0.06420972644, - 0.7403189066, - 0.1031746032, - 3.658536585, - 25, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '35-44', - 31, - 0.06914893617, - 0.6306306306, - 0.1031746032, - 2.926829268, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '45-54', - 37, - 0.06914893617, - 0.8115942029, - 0.1031746032, - 3.512195122, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '55-64', - 36, - 0.05927051672, - 0.6244343891, - 0.1031746032, - 3.365853659, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '65-74', - 45, - 0.06420972644, - 0.7074829932, - 0.1031746032, - 3.512195122, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Love', - '75+', - 17, - 0.06914893617, - 0.6730769231, - 0.1031746032, - 3.658536585, - 25, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '15-24', - 12, - 0.06914893617, - 0.7577319588, - 0.09457671958, - 2.834355828, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '25-34', - 19, - 0.06420972644, - 0.7995444191, - 0.09457671958, - 3.644171779, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '35-44', - 17, - 0.06914893617, - 0.7882882883, - 0.09457671958, - 3.374233129, - 25, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '45-54', - 11, - 0.06914893617, - 0.4734299517, - 0.09457671958, - 1.889570552, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '55-64', - 10, - 0.05927051672, - 0.5158371041, - 0.09457671958, - 2.564417178, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '65-74', - 16, - 0.06420972644, - 0.8548752834, - 0.09457671958, - 3.914110429, - 29, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Love', - '75+', - 7, - 0.06914893617, - 0.7538461538, - 0.09457671958, - 3.779141104, - 28, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '15-24', - 18, - 0.06914893617, - 0.6134020619, - 0.03009259259, - 2.245283019, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '25-34', - 10, - 0.06420972644, - 0.1776765376, - 0.03009259259, - 0.7924528302, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '35-44', - 4, - 0.06914893617, - 0.1261261261, - 0.03009259259, - 0.5283018868, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '45-54', - 8, - 0.06914893617, - 0.1690821256, - 0.03009259259, - 0.6603773585, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '55-64', - 5, - 0.05927051672, - 0.1085972851, - 0.03009259259, - 0.5283018868, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '65-74', - 4, - 0.06420972644, - 0.08843537415, - 0.03009259259, - 0.3962264151, - 3, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Love', - '75+', - 8, - 0.06914893617, - 0.3769230769, - 0.03009259259, - 1.849056604, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '15-24', - 53, - 0.06914893617, - 0.4690721649, - 0.05158730159, - 1.879518072, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '25-34', - 46, - 0.06420972644, - 0.2369020501, - 0.05158730159, - 1.156626506, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '35-44', - 33, - 0.06914893617, - 0.5675675676, - 0.05158730159, - 2.602409639, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '45-54', - 20, - 0.06914893617, - 0.3381642512, - 0.05158730159, - 1.445783133, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '55-64', - 33, - 0.05927051672, - 0.407239819, - 0.05158730159, - 2.168674699, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '65-74', - 36, - 0.06420972644, - 0.3537414966, - 0.05158730159, - 1.734939759, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Love', - '75+', - 17, - 0.06914893617, - 0.1884615385, - 0.05158730159, - 1.012048193, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '15-24', - 11, - 0.06914893617, - 0.2886597938, - 0.02579365079, - 1.090909091, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '25-34', - 10, - 0.06420972644, - 0.2369020501, - 0.02579365079, - 1.090909091, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '35-44', - 9, - 0.06914893617, - 0.1891891892, - 0.02579365079, - 0.8181818182, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '45-54', - 13, - 0.06914893617, - 0.270531401, - 0.02579365079, - 1.090909091, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '55-64', - 7, - 0.05927051672, - 0.1357466063, - 0.02579365079, - 0.6818181818, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '65-74', - 5, - 0.06420972644, - 0.1179138322, - 0.02579365079, - 0.5454545455, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Love', - '75+', - 5, - 0.06914893617, - 0.1346153846, - 0.02579365079, - 0.6818181818, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '15-24', - 11, - 0.06914893617, - 0.3608247423, - 0.03869047619, - 1.363636364, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '25-34', - 14, - 0.06420972644, - 0.2961275626, - 0.03869047619, - 1.363636364, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '35-44', - 15, - 0.06914893617, - 0.3153153153, - 0.03869047619, - 1.363636364, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '45-54', - 11, - 0.06914893617, - 0.3043478261, - 0.03869047619, - 1.227272727, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '55-64', - 13, - 0.05927051672, - 0.2714932127, - 0.03869047619, - 1.363636364, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '65-74', - 9, - 0.06420972644, - 0.2063492063, - 0.03869047619, - 0.9545454545, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Love', - '75+', - 9, - 0.06914893617, - 0.2692307692, - 0.03869047619, - 1.363636364, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '15-24', - 25, - 0.06914893617, - 0.8659793814, - 0.128968254, - 3.428571429, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '25-34', - 28, - 0.06420972644, - 0.6218678815, - 0.128968254, - 3, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '35-44', - 41, - 0.06914893617, - 0.8828828829, - 0.128968254, - 4, - 28, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '45-54', - 46, - 0.06914893617, - 1.082125604, - 0.128968254, - 4.571428571, - 32, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '55-64', - 34, - 0.05927051672, - 0.7330316742, - 0.128968254, - 3.857142857, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '65-74', - 59, - 0.06420972644, - 1.149659864, - 0.128968254, - 5.571428571, - 39, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Love', - '75+', - 35, - 0.06914893617, - 1.05, - 0.128968254, - 5.571428571, - 39, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '15-24', - 21, - 0.06914893617, - 0.793814433, - 0.08167989418, - 3.096296296, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '25-34', - 28, - 0.06420972644, - 0.6514806378, - 0.08167989418, - 3.096296296, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '35-44', - 26, - 0.06914893617, - 0.5990990991, - 0.08167989418, - 2.674074074, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '45-54', - 25, - 0.06914893617, - 0.5748792271, - 0.08167989418, - 2.392592593, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '55-64', - 16, - 0.05927051672, - 0.4615384615, - 0.08167989418, - 2.392592593, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '65-74', - 15, - 0.06420972644, - 0.5011337868, - 0.08167989418, - 2.392592593, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Love', - '75+', - 10, - 0.06914893617, - 0.5653846154, - 0.08167989418, - 2.955555556, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '15-24', - 19, - 0.06914893617, - 0.5412371134, - 0.06448412698, - 2.027027027, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '25-34', - 30, - 0.06420972644, - 0.7107061503, - 0.06448412698, - 3.243243243, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '35-44', - 20, - 0.06914893617, - 0.4099099099, - 0.06448412698, - 1.756756757, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '45-54', - 16, - 0.06914893617, - 0.3381642512, - 0.06448412698, - 1.351351351, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '55-64', - 23, - 0.05927051672, - 0.407239819, - 0.06448412698, - 2.027027027, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '65-74', - 20, - 0.06420972644, - 0.3832199546, - 0.06448412698, - 1.756756757, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Love', - '75+', - 22, - 0.06914893617, - 0.5653846154, - 0.06448412698, - 2.837837838, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '15-24', - 13, - 0.06914893617, - 0.3969072165, - 0.05158730159, - 1.483146067, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '25-34', - 13, - 0.06420972644, - 0.3553530752, - 0.05158730159, - 1.617977528, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '35-44', - 16, - 0.06914893617, - 0.3468468468, - 0.05158730159, - 1.483146067, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '45-54', - 20, - 0.06914893617, - 0.4734299517, - 0.05158730159, - 1.887640449, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '55-64', - 18, - 0.05927051672, - 0.407239819, - 0.05158730159, - 2.02247191, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '65-74', - 14, - 0.06420972644, - 0.3537414966, - 0.05158730159, - 1.617977528, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Love', - '75+', - 13, - 0.06914893617, - 0.3769230769, - 0.05158730159, - 1.887640449, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '15-24', - 19, - 0.06914893617, - 0.5412371134, - 0.1031746032, - 2.057142857, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '25-34', - 33, - 0.06420972644, - 0.6514806378, - 0.1031746032, - 3.017142857, - 22, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '35-44', - 41, - 0.06914893617, - 0.8198198198, - 0.1031746032, - 3.565714286, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '45-54', - 28, - 0.06914893617, - 0.6086956522, - 0.1031746032, - 2.468571429, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '55-64', - 45, - 0.05927051672, - 0.7601809955, - 0.1031746032, - 3.84, - 28, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '65-74', - 48, - 0.06420972644, - 0.7959183673, - 0.1031746032, - 3.702857143, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Love', - '75+', - 32, - 0.06914893617, - 1.05, - 0.1031746032, - 5.348571429, - 39, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '15-24', - 26, - 0.06914893617, - 0.7577319588, - 0.06448412698, - 2.916666667, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '25-34', - 22, - 0.06420972644, - 0.5330296128, - 0.06448412698, - 2.5, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '35-44', - 20, - 0.06914893617, - 0.3468468468, - 0.06448412698, - 1.527777778, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '45-54', - 21, - 0.06914893617, - 0.5072463768, - 0.06448412698, - 2.083333333, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '55-64', - 23, - 0.05927051672, - 0.407239819, - 0.06448412698, - 2.083333333, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '65-74', - 17, - 0.06420972644, - 0.3537414966, - 0.06448412698, - 1.666666667, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Love', - '75+', - 12, - 0.06914893617, - 0.4307692308, - 0.06448412698, - 2.222222222, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '15-24', - 19, - 0.06914893617, - 0.4690721649, - 0.04728835979, - 1.881578947, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '25-34', - 14, - 0.06420972644, - 0.2665148064, - 0.04728835979, - 1.302631579, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '35-44', - 24, - 0.06914893617, - 0.3468468468, - 0.04728835979, - 1.592105263, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '45-54', - 20, - 0.06914893617, - 0.4057971014, - 0.04728835979, - 1.736842105, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '55-64', - 17, - 0.05927051672, - 0.3529411765, - 0.04728835979, - 1.881578947, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '65-74', - 9, - 0.06420972644, - 0.2358276644, - 0.04728835979, - 1.157894737, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Love', - '75+', - 7, - 0.06914893617, - 0.2692307692, - 0.04728835979, - 1.447368421, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '15-24', - 5, - 0.06914893617, - 0.1804123711, - 0.04298941799, - 0.7462686567, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '25-34', - 11, - 0.06420972644, - 0.2369020501, - 0.04298941799, - 1.194029851, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '35-44', - 16, - 0.06914893617, - 0.3468468468, - 0.04298941799, - 1.641791045, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '45-54', - 19, - 0.06914893617, - 0.3719806763, - 0.04298941799, - 1.641791045, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '55-64', - 7, - 0.05927051672, - 0.1357466063, - 0.04298941799, - 0.7462686567, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '65-74', - 19, - 0.06420972644, - 0.2947845805, - 0.04298941799, - 1.492537313, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Love', - '75+', - 15, - 0.06914893617, - 0.4576923077, - 0.04298941799, - 2.537313433, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '15-24', - 28, - 0.06914893617, - 0.6855670103, - 0.1418650794, - 2.690987124, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '25-34', - 42, - 0.06420972644, - 0.9179954442, - 0.1418650794, - 4.39055794, - 31, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '35-44', - 48, - 0.06914893617, - 1.355855856, - 0.1418650794, - 6.090128755, - 43, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '45-54', - 63, - 0.06914893617, - 1.183574879, - 0.1418650794, - 4.957081545, - 35, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '55-64', - 55, - 0.05927051672, - 1.113122172, - 0.1418650794, - 5.806866953, - 41, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '65-74', - 37, - 0.06420972644, - 0.9433106576, - 0.1418650794, - 4.532188841, - 32, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Love', - '75+', - 38, - 0.06914893617, - 0.8615384615, - 0.1418650794, - 4.532188841, - 32, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '15-24', - 5, - 0.06914893617, - 0.2886597938, - 0.07308201058, - 1.182608696, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '25-34', - 15, - 0.06420972644, - 0.6218678815, - 0.07308201058, - 3.104347826, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '35-44', - 15, - 0.06914893617, - 0.5045045045, - 0.07308201058, - 2.365217391, - 16, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '45-54', - 11, - 0.06914893617, - 0.4734299517, - 0.07308201058, - 2.069565217, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '55-64', - 14, - 0.05927051672, - 0.6244343891, - 0.07308201058, - 3.4, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '65-74', - 13, - 0.06420972644, - 0.619047619, - 0.07308201058, - 3.104347826, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Love', - '75+', - 4, - 0.06914893617, - 0.3230769231, - 0.07308201058, - 1.773913043, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '15-24', - 13, - 0.06914893617, - 0.3969072165, - 0.05158730159, - 1.360824742, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '25-34', - 19, - 0.06420972644, - 0.3849658314, - 0.05158730159, - 1.608247423, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '35-44', - 12, - 0.06914893617, - 0.2837837838, - 0.05158730159, - 1.113402062, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '45-54', - 13, - 0.06914893617, - 0.3381642512, - 0.05158730159, - 1.237113402, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '55-64', - 20, - 0.05927051672, - 0.407239819, - 0.05158730159, - 1.855670103, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '65-74', - 26, - 0.06420972644, - 0.3537414966, - 0.05158730159, - 1.484536082, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Love', - '75+', - 3, - 0.06914893617, - 0.7269230769, - 0.05158730159, - 3.340206186, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '15-24', - 3, - 0.06914893617, - 0.1804123711, - 0.0171957672, - 0.6451612903, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '25-34', - 0, - 0.06420972644, - 0, - 0.0171957672, - 0, - 0, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '35-44', - 4, - 0.06914893617, - 0.1891891892, - 0.0171957672, - 0.7741935484, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '45-54', - 2, - 0.06914893617, - 0.1352657005, - 0.0171957672, - 0.5161290323, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '55-64', - 3, - 0.05927051672, - 0.1085972851, - 0.0171957672, - 0.5161290323, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '65-74', - 7, - 0.06420972644, - 0.2947845805, - 0.0171957672, - 1.290322581, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Love', - '75+', - 1, - 0.06914893617, - 0.05384615385, - 0.0171957672, - 0.2580645161, - 2, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '15-24', - 12, - 0.06914893617, - 0.3608247423, - 0.04728835979, - 1.506849315, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '25-34', - 13, - 0.06420972644, - 0.3257403189, - 0.04728835979, - 1.657534247, - 11, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '35-44', - 19, - 0.06914893617, - 0.3153153153, - 0.04728835979, - 1.506849315, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '45-54', - 29, - 0.06914893617, - 0.4734299517, - 0.04728835979, - 2.109589041, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '55-64', - 21, - 0.05927051672, - 0.3529411765, - 0.04728835979, - 1.95890411, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '65-74', - 20, - 0.06420972644, - 0.2358276644, - 0.04728835979, - 1.205479452, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Love', - '75+', - 1, - 0.06914893617, - 0.1884615385, - 0.04728835979, - 1.054794521, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '15-24', - 8, - 0.06914893617, - 0.2525773196, - 0.05158730159, - 0.976744186, - 7, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '25-34', - 13, - 0.06420972644, - 0.2665148064, - 0.05158730159, - 1.255813953, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '35-44', - 15, - 0.06914893617, - 0.2522522523, - 0.05158730159, - 1.11627907, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '45-54', - 18, - 0.06914893617, - 0.4734299517, - 0.05158730159, - 1.953488372, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '55-64', - 22, - 0.05927051672, - 0.407239819, - 0.05158730159, - 2.093023256, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '65-74', - 19, - 0.06420972644, - 0.4421768707, - 0.05158730159, - 2.093023256, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Love', - '75+', - 11, - 0.06914893617, - 0.4846153846, - 0.05158730159, - 2.511627907, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '15-24', - 22, - 0.06914893617, - 0.7216494845, - 0.1117724868, - 2.872928177, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '25-34', - 33, - 0.06420972644, - 0.7107061503, - 0.1117724868, - 3.447513812, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '35-44', - 39, - 0.06914893617, - 0.7252252252, - 0.1117724868, - 3.303867403, - 23, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '45-54', - 43, - 0.06914893617, - 0.8792270531, - 0.1117724868, - 3.73480663, - 26, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '55-64', - 42, - 0.05927051672, - 0.7873303167, - 0.1117724868, - 4.165745856, - 29, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '65-74', - 37, - 0.06420972644, - 0.7959183673, - 0.1117724868, - 3.878453039, - 27, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Love', - '75+', - 26, - 0.06914893617, - 0.8615384615, - 0.1117724868, - 4.596685083, - 32, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '15-24', - 15, - 0.06914893617, - 0.4690721649, - 0.08167989418, - 1.646666667, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '25-34', - 26, - 0.06420972644, - 0.5330296128, - 0.08167989418, - 2.28, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '35-44', - 41, - 0.06914893617, - 0.7567567568, - 0.08167989418, - 3.04, - 24, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '45-54', - 25, - 0.06914893617, - 0.6425120773, - 0.08167989418, - 2.406666667, - 19, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '55-64', - 20, - 0.05927051672, - 0.3800904977, - 0.08167989418, - 1.773333333, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '65-74', - 29, - 0.06420972644, - 0.619047619, - 0.08167989418, - 2.66, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Love', - '75+', - 16, - 0.06914893617, - 1.103846154, - 0.08167989418, - 5.193333333, - 41, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '15-24', - 21, - 0.06914893617, - 0.6134020619, - 0.04728835979, - 2.428571429, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '25-34', - 23, - 0.06420972644, - 0.4145785877, - 0.04728835979, - 2, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '35-44', - 18, - 0.06914893617, - 0.4099099099, - 0.04728835979, - 1.857142857, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '45-54', - 17, - 0.06914893617, - 0.3381642512, - 0.04728835979, - 1.428571429, - 10, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '55-64', - 17, - 0.05927051672, - 0.3257918552, - 0.04728835979, - 1.714285714, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '65-74', - 7, - 0.06420972644, - 0.1473922902, - 0.04728835979, - 0.7142857143, - 5, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Love', - '75+', - 7, - 0.06914893617, - 0.1615384615, - 0.04728835979, - 0.8571428571, - 6, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '15-24', - 10, - 0.06914893617, - 0.324742268, - 0.08167989418, - 1.248175182, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '25-34', - 32, - 0.06420972644, - 0.5922551253, - 0.08167989418, - 2.773722628, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '35-44', - 33, - 0.06914893617, - 0.6306306306, - 0.08167989418, - 2.773722628, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '45-54', - 26, - 0.06914893617, - 0.6763285024, - 0.08167989418, - 2.773722628, - 20, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '55-64', - 26, - 0.05927051672, - 0.4886877828, - 0.08167989418, - 2.496350365, - 18, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '65-74', - 30, - 0.06420972644, - 0.619047619, - 0.08167989418, - 2.912408759, - 21, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Love', - '75+', - 20, - 0.06914893617, - 0.7807692308, - 0.08167989418, - 4.02189781, - 29, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '15-24', - 17, - 0.06914893617, - 0.4329896907, - 0.05158730159, - 1.6, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '25-34', - 21, - 0.06420972644, - 0.3553530752, - 0.05158730159, - 1.6, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '35-44', - 22, - 0.06914893617, - 0.4099099099, - 0.05158730159, - 1.733333333, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '45-54', - 14, - 0.06914893617, - 0.3043478261, - 0.05158730159, - 1.2, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '55-64', - 21, - 0.05927051672, - 0.3529411765, - 0.05158730159, - 1.733333333, - 13, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '65-74', - 19, - 0.06420972644, - 0.4126984127, - 0.05158730159, - 1.866666667, - 14, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Love', - '75+', - 7, - 0.06914893617, - 0.4576923077, - 0.05158730159, - 2.266666667, - 17, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '15-24', - 22, - 0.06914893617, - 0.5412371134, - 0.04298941799, - 2.205882353, - 15, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '25-34', - 12, - 0.06420972644, - 0.2369020501, - 0.04298941799, - 1.176470588, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '35-44', - 17, - 0.06914893617, - 0.3783783784, - 0.04298941799, - 1.764705882, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '45-54', - 15, - 0.06914893617, - 0.3043478261, - 0.04298941799, - 1.323529412, - 9, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '55-64', - 17, - 0.05927051672, - 0.3257918552, - 0.04298941799, - 1.764705882, - 12, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '65-74', - 7, - 0.06420972644, - 0.2358276644, - 0.04298941799, - 1.176470588, - 8, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Love', - '75+', - 4, - 0.06914893617, - 0.1076923077, - 0.04298941799, - 0.5882352941, - 4, - 0.384353741496599, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '15-24', - 3, - 0.0306122449, - 0.06451612903, - 0.02222222222, - 0.2962962963, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Peace', - '15-24', - 13, - 0.03571428571, - 0.3701923077, - 0.04188481675, - 1.62962963, - 11, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Freedom', - '15-24', - 8, - 0.03888888889, - 0.2346368715, - 0.04191616766, - 0.8235294118, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '25-34', - 6, - 0.04081632653, - 0.1951219512, - 0.02222222222, - 0.5925925926, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Peace', - '25-34', - 10, - 0.04081632653, - 0.281938326, - 0.04188481675, - 1.185185185, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Freedom', - '25-34', - 9, - 0.03888888889, - 0.358974359, - 0.04191616766, - 1.098039216, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '35-44', - 7, - 0.0306122449, - 0.1704545455, - 0.02222222222, - 0.7407407407, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Peace', - '35-44', - 10, - 0.03571428571, - 0.2425742574, - 0.04188481675, - 1.037037037, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Freedom', - '35-44', - 8, - 0.03888888889, - 0.227027027, - 0.04191616766, - 0.8235294118, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '45-54', - 5, - 0.03571428571, - 0.1160220994, - 0.02222222222, - 0.4444444444, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Peace', - '45-54', - 12, - 0.03571428571, - 0.2512820513, - 0.04188481675, - 1.037037037, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Freedom', - '45-54', - 13, - 0.03888888889, - 0.2987804878, - 0.04191616766, - 0.9607843137, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '55-64', - 4, - 0.03571428571, - 0.1546961326, - 0.02222222222, - 0.5925925926, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Peace', - '55-64', - 8, - 0.04081632653, - 0.2962962963, - 0.04188481675, - 0.8888888889, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Freedom', - '55-64', - 10, - 0.03888888889, - 0.3353293413, - 0.04191616766, - 1.098039216, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '65-74', - 9, - 0.03571428571, - 0.2832369942, - 0.02222222222, - 1.037037037, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Peace', - '65-74', - 14, - 0.0306122449, - 0.3448275862, - 0.04188481675, - 1.481481481, - 10, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Freedom', - '65-74', - 10, - 0.03333333333, - 0.2658227848, - 0.04191616766, - 0.9607843137, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '75+', - 1, - 0.04081632653, - 0.07111111111, - 0.02222222222, - 0.2962962963, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Peace', - '75+', - 4, - 0.0306122449, - 0.1886792453, - 0.04188481675, - 0.7407407407, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Freedom', - '75+', - 8, - 0.02222222222, - 0.288, - 0.04191616766, - 1.235294118, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '15-24', - 13, - 0.0306122449, - 0.3225806452, - 0.02777777778, - 1.428571429, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Peace', - '15-24', - 12, - 0.03571428571, - 0.3365384615, - 0.05759162304, - 1.375, - 10, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Freedom', - '15-24', - 16, - 0.03888888889, - 0.469273743, - 0.05389221557, - 1.770491803, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '25-34', - 6, - 0.04081632653, - 0.1951219512, - 0.02777777778, - 0.5714285714, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Peace', - '25-34', - 16, - 0.04081632653, - 0.422907489, - 0.05759162304, - 1.65, - 12, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Freedom', - '25-34', - 17, - 0.03888888889, - 0.5384615385, - 0.05389221557, - 1.770491803, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '35-44', - 4, - 0.0306122449, - 0.1022727273, - 0.02777777778, - 0.4285714286, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Peace', - '35-44', - 25, - 0.03571428571, - 0.6237623762, - 0.05759162304, - 2.475, - 18, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Freedom', - '35-44', - 5, - 0.03888888889, - 0.1513513514, - 0.05389221557, - 0.5901639344, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '45-54', - 12, - 0.03571428571, - 0.270718232, - 0.02777777778, - 1, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Peace', - '45-54', - 15, - 0.03571428571, - 0.3230769231, - 0.05759162304, - 1.2375, - 9, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Freedom', - '45-54', - 10, - 0.03888888889, - 0.2987804878, - 0.05389221557, - 1.032786885, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '55-64', - 4, - 0.03571428571, - 0.1160220994, - 0.02777777778, - 0.4285714286, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Peace', - '55-64', - 19, - 0.04081632653, - 0.7407407407, - 0.05759162304, - 2.0625, - 15, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Freedom', - '55-64', - 12, - 0.03888888889, - 0.4191616766, - 0.05389221557, - 1.475409836, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '65-74', - 9, - 0.03571428571, - 0.2427745665, - 0.02777777778, - 0.8571428571, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Peace', - '65-74', - 12, - 0.0306122449, - 0.275862069, - 0.05759162304, - 1.1, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Freedom', - '65-74', - 12, - 0.03333333333, - 0.3417721519, - 0.05389221557, - 1.327868852, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '75+', - 1, - 0.04081632653, - 0.07111111111, - 0.02777777778, - 0.2857142857, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Peace', - '75+', - 6, - 0.0306122449, - 0.3018867925, - 0.05759162304, - 1.1, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Freedom', - '75+', - 6, - 0.02222222222, - 0.224, - 0.05389221557, - 1.032786885, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '15-24', - 8, - 0.0306122449, - 0.2258064516, - 0.02777777778, - 0.9722222222, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Peace', - '15-24', - 1, - 0.03571428571, - 0.03365384615, - 0.005235602094, - 0.1, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Freedom', - '15-24', - 3, - 0.03888888889, - 0.1173184358, - 0.01796407186, - 0.5294117647, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '25-34', - 4, - 0.04081632653, - 0.1463414634, - 0.02777777778, - 0.4166666667, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Peace', - '25-34', - 1, - 0.04081632653, - 0.03524229075, - 0.005235602094, - 0.1, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Freedom', - '25-34', - 3, - 0.03888888889, - 0.08974358974, - 0.01796407186, - 0.3529411765, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '35-44', - 6, - 0.0306122449, - 0.1363636364, - 0.02777777778, - 0.5555555556, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Peace', - '35-44', - 2, - 0.03571428571, - 0.03465346535, - 0.005235602094, - 0.1, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Freedom', - '35-44', - 8, - 0.03888888889, - 0.1891891892, - 0.01796407186, - 0.8823529412, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '45-54', - 5, - 0.03571428571, - 0.1160220994, - 0.02777777778, - 0.4166666667, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Peace', - '45-54', - 3, - 0.03571428571, - 0.07179487179, - 0.005235602094, - 0.2, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Freedom', - '45-54', - 6, - 0.03888888889, - 0.1707317073, - 0.01796407186, - 0.7058823529, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '55-64', - 8, - 0.03571428571, - 0.1933701657, - 0.02777777778, - 0.6944444444, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Peace', - '55-64', - 2, - 0.04081632653, - 0.04938271605, - 0.005235602094, - 0.1, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Freedom', - '55-64', - 1, - 0.03888888889, - 0.04191616766, - 0.01796407186, - 0.1764705882, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '65-74', - 9, - 0.03571428571, - 0.2023121387, - 0.02777777778, - 0.6944444444, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Peace', - '65-74', - 2, - 0.0306122449, - 0.03448275862, - 0.005235602094, - 0.1, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Freedom', - '65-74', - 4, - 0.03333333333, - 0.07594936709, - 0.01796407186, - 0.3529411765, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '75+', - 6, - 0.04081632653, - 0.32, - 0.02777777778, - 1.25, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Peace', - '75+', - 2, - 0.0306122449, - 0.1132075472, - 0.005235602094, - 0.3, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Freedom', - '75+', - 0, - 0.02222222222, - 0, - 0.01796407186, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '15-24', - 5, - 0.0306122449, - 0.2580645161, - 0.03333333333, - 1.263157895, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Peace', - '15-24', - 2, - 0.03571428571, - 0.1009615385, - 0.01570680628, - 0.3913043478, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Freedom', - '15-24', - 4, - 0.03888888889, - 0.2346368715, - 0.01796407186, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '25-34', - 7, - 0.04081632653, - 0.487804878, - 0.03333333333, - 1.578947368, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Peace', - '25-34', - 2, - 0.04081632653, - 0.1057268722, - 0.01570680628, - 0.3913043478, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Freedom', - '25-34', - 1, - 0.03888888889, - 0.08974358974, - 0.01796407186, - 0.2857142857, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '35-44', - 1, - 0.0306122449, - 0.06818181818, - 0.03333333333, - 0.3157894737, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Peace', - '35-44', - 0, - 0.03571428571, - 0, - 0.01570680628, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Freedom', - '35-44', - 5, - 0.03888888889, - 0.2648648649, - 0.01796407186, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '45-54', - 3, - 0.03571428571, - 0.1546961326, - 0.03333333333, - 0.6315789474, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Peace', - '45-54', - 4, - 0.03571428571, - 0.2153846154, - 0.01570680628, - 0.7826086957, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Freedom', - '45-54', - 2, - 0.03888888889, - 0.1280487805, - 0.01796407186, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '55-64', - 3, - 0.03571428571, - 0.2320441989, - 0.03333333333, - 0.9473684211, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Peace', - '55-64', - 0, - 0.04081632653, - 0, - 0.01570680628, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Freedom', - '55-64', - 0, - 0.03888888889, - 0, - 0.01796407186, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '65-74', - 3, - 0.03571428571, - 0.2427745665, - 0.03333333333, - 0.9473684211, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Peace', - '65-74', - 4, - 0.0306122449, - 0.2068965517, - 0.01570680628, - 0.7826086957, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Freedom', - '65-74', - 1, - 0.03333333333, - 0.07594936709, - 0.01796407186, - 0.2857142857, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '75+', - 1, - 0.04081632653, - 0.07111111111, - 0.03333333333, - 0.3157894737, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Peace', - '75+', - 1, - 0.0306122449, - 0.1886792453, - 0.01570680628, - 0.652173913, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Freedom', - '75+', - 0, - 0.02222222222, - 0.032, - 0.01796407186, - 0.1428571429, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '15-24', - 12, - 0.0306122449, - 0.3548387097, - 0.06111111111, - 1.551282051, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Peace', - '15-24', - 2, - 0.03571428571, - 0.06730769231, - 0.01570680628, - 0.2727272727, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Freedom', - '15-24', - 1, - 0.03888888889, - 0.03910614525, - 0.02395209581, - 0.1379310345, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '25-34', - 17, - 0.04081632653, - 0.5365853659, - 0.06111111111, - 1.551282051, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Peace', - '25-34', - 6, - 0.04081632653, - 0.140969163, - 0.01570680628, - 0.5454545455, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Freedom', - '25-34', - 4, - 0.03888888889, - 0.1346153846, - 0.02395209581, - 0.4137931034, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '35-44', - 6, - 0.0306122449, - 0.1704545455, - 0.06111111111, - 0.7051282051, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Peace', - '35-44', - 3, - 0.03571428571, - 0.103960396, - 0.01570680628, - 0.4090909091, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Freedom', - '35-44', - 5, - 0.03888888889, - 0.1513513514, - 0.02395209581, - 0.5517241379, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '45-54', - 17, - 0.03571428571, - 0.4640883978, - 0.06111111111, - 1.692307692, - 12, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Peace', - '45-54', - 4, - 0.03571428571, - 0.1076923077, - 0.01570680628, - 0.4090909091, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Freedom', - '45-54', - 6, - 0.03888888889, - 0.1707317073, - 0.02395209581, - 0.5517241379, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '55-64', - 12, - 0.03571428571, - 0.3480662983, - 0.06111111111, - 1.269230769, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Peace', - '55-64', - 6, - 0.04081632653, - 0.1975308642, - 0.01570680628, - 0.5454545455, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Freedom', - '55-64', - 7, - 0.03888888889, - 0.2095808383, - 0.02395209581, - 0.6896551724, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '65-74', - 19, - 0.03571428571, - 0.4855491329, - 0.06111111111, - 1.692307692, - 12, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Peace', - '65-74', - 2, - 0.0306122449, - 0.06896551724, - 0.01570680628, - 0.2727272727, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Freedom', - '65-74', - 5, - 0.03333333333, - 0.1139240506, - 0.02395209581, - 0.4137931034, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '75+', - 10, - 0.04081632653, - 0.64, - 0.06111111111, - 2.538461538, - 18, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Peace', - '75+', - 2, - 0.0306122449, - 0.1509433962, - 0.01570680628, - 0.5454545455, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Freedom', - '75+', - 5, - 0.02222222222, - 0.288, - 0.02395209581, - 1.24137931, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '15-24', - 27, - 0.0306122449, - 0.2258064516, - 0.05, - 1.016129032, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Peace', - '15-24', - 20, - 0.03571428571, - 0.1682692308, - 0.04188481675, - 0.7407407407, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Freedom', - '15-24', - 43, - 0.03888888889, - 0.4301675978, - 0.06586826347, - 1.49382716, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '25-34', - 50, - 0.04081632653, - 0.4390243902, - 0.05, - 1.306451613, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Peace', - '25-34', - 52, - 0.04081632653, - 0.3171806167, - 0.04188481675, - 1.333333333, - 9, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Freedom', - '25-34', - 50, - 0.03888888889, - 0.4038461538, - 0.06586826347, - 1.222222222, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '35-44', - 22, - 0.0306122449, - 0.4090909091, - 0.05, - 1.741935484, - 12, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Peace', - '35-44', - 8, - 0.03571428571, - 0.1386138614, - 0.04188481675, - 0.5925925926, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Freedom', - '35-44', - 26, - 0.03888888889, - 0.5297297297, - 0.06586826347, - 1.901234568, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '45-54', - 28, - 0.03571428571, - 0.5801104972, - 0.05, - 2.177419355, - 15, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Peace', - '45-54', - 24, - 0.03571428571, - 0.4666666667, - 0.04188481675, - 1.925925926, - 13, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Freedom', - '45-54', - 26, - 0.03888888889, - 0.5975609756, - 0.06586826347, - 1.901234568, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '55-64', - 12, - 0.03571428571, - 0.1933701657, - 0.05, - 0.7258064516, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Peace', - '55-64', - 9, - 0.04081632653, - 0.1975308642, - 0.04188481675, - 0.5925925926, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Freedom', - '55-64', - 25, - 0.03888888889, - 0.502994012, - 0.06586826347, - 1.62962963, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '65-74', - 21, - 0.03571428571, - 0.2832369942, - 0.05, - 1.016129032, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Peace', - '65-74', - 17, - 0.0306122449, - 0.2068965517, - 0.04188481675, - 0.8888888889, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Freedom', - '65-74', - 37, - 0.03333333333, - 0.4556962025, - 0.06586826347, - 1.62962963, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '75+', - 16, - 0.04081632653, - 0.2488888889, - 0.05, - 1.016129032, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Peace', - '75+', - 29, - 0.0306122449, - 0.4905660377, - 0.04188481675, - 1.925925926, - 13, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Freedom', - '75+', - 21, - 0.02222222222, - 0.288, - 0.06586826347, - 1.222222222, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '15-24', - 6, - 0.0306122449, - 0.1290322581, - 0.02222222222, - 0.5925925926, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Peace', - '15-24', - 30, - 0.03571428571, - 0.7403846154, - 0.1047120419, - 3.098591549, - 22, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Freedom', - '15-24', - 15, - 0.03888888889, - 0.3910614525, - 0.04191616766, - 1.590909091, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '25-34', - 3, - 0.04081632653, - 0.09756097561, - 0.02222222222, - 0.2962962963, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Peace', - '25-34', - 38, - 0.04081632653, - 1.127753304, - 0.1047120419, - 4.507042254, - 32, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Freedom', - '25-34', - 3, - 0.03888888889, - 0.08974358974, - 0.04191616766, - 0.3181818182, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '35-44', - 1, - 0.0306122449, - 0.03409090909, - 0.02222222222, - 0.1481481481, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Peace', - '35-44', - 39, - 0.03571428571, - 0.8663366337, - 0.1047120419, - 3.521126761, - 25, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Freedom', - '35-44', - 12, - 0.03888888889, - 0.2648648649, - 0.04191616766, - 1.113636364, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '45-54', - 3, - 0.03571428571, - 0.0773480663, - 0.02222222222, - 0.2962962963, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Peace', - '45-54', - 27, - 0.03571428571, - 0.5743589744, - 0.1047120419, - 2.253521127, - 16, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Freedom', - '45-54', - 16, - 0.03888888889, - 0.3841463415, - 0.04191616766, - 1.431818182, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '55-64', - 14, - 0.03571428571, - 0.3867403315, - 0.02222222222, - 1.481481481, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Peace', - '55-64', - 24, - 0.04081632653, - 0.8395061728, - 0.1047120419, - 2.394366197, - 17, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Freedom', - '55-64', - 5, - 0.03888888889, - 0.1676646707, - 0.04191616766, - 0.6363636364, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '65-74', - 6, - 0.03571428571, - 0.2023121387, - 0.02222222222, - 0.7407407407, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Peace', - '65-74', - 23, - 0.0306122449, - 0.6206896552, - 0.1047120419, - 2.535211268, - 18, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Freedom', - '65-74', - 8, - 0.03333333333, - 0.2658227848, - 0.04191616766, - 1.113636364, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '75+', - 4, - 0.04081632653, - 0.1066666667, - 0.02222222222, - 0.4444444444, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Peace', - '75+', - 13, - 0.0306122449, - 0.4528301887, - 0.1047120419, - 1.690140845, - 12, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Freedom', - '75+', - 5, - 0.02222222222, - 0.16, - 0.04191616766, - 0.7954545455, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '15-24', - 18, - 0.0306122449, - 0.5161290323, - 0.04444444444, - 2.133333333, - 16, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Peace', - '15-24', - 3, - 0.03571428571, - 0.1009615385, - 0.01047120419, - 0.3529411765, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Freedom', - '15-24', - 8, - 0.03888888889, - 0.2737430168, - 0.04191616766, - 1.065217391, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '25-34', - 14, - 0.04081632653, - 0.487804878, - 0.04444444444, - 1.333333333, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Peace', - '25-34', - 4, - 0.04081632653, - 0.1057268722, - 0.01047120419, - 0.3529411765, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Freedom', - '25-34', - 13, - 0.03888888889, - 0.4038461538, - 0.04191616766, - 1.369565217, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '35-44', - 7, - 0.0306122449, - 0.1363636364, - 0.04444444444, - 0.5333333333, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Peace', - '35-44', - 6, - 0.03571428571, - 0.1386138614, - 0.01047120419, - 0.4705882353, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Freedom', - '35-44', - 13, - 0.03888888889, - 0.3027027027, - 0.04191616766, - 1.217391304, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '45-54', - 3, - 0.03571428571, - 0.0773480663, - 0.04444444444, - 0.2666666667, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Peace', - '45-54', - 2, - 0.03571428571, - 0.0358974359, - 0.01047120419, - 0.1176470588, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Freedom', - '45-54', - 10, - 0.03888888889, - 0.3414634146, - 0.04191616766, - 1.217391304, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '55-64', - 10, - 0.03571428571, - 0.270718232, - 0.04444444444, - 0.9333333333, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Peace', - '55-64', - 5, - 0.04081632653, - 0.1481481481, - 0.01047120419, - 0.3529411765, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Freedom', - '55-64', - 7, - 0.03888888889, - 0.2095808383, - 0.04191616766, - 0.7608695652, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '65-74', - 15, - 0.03571428571, - 0.4450867052, - 0.04444444444, - 1.466666667, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Peace', - '65-74', - 3, - 0.0306122449, - 0.06896551724, - 0.01047120419, - 0.2352941176, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Freedom', - '65-74', - 7, - 0.03333333333, - 0.1898734177, - 0.04191616766, - 0.7608695652, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '75+', - 9, - 0.04081632653, - 0.3555555556, - 0.04444444444, - 1.333333333, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Peace', - '75+', - 1, - 0.0306122449, - 0.03773584906, - 0.01047120419, - 0.1176470588, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Freedom', - '75+', - 3, - 0.02222222222, - 0.128, - 0.04191616766, - 0.6086956522, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '15-24', - 0, - 0.0306122449, - 0, - 0.01111111111, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Peace', - '15-24', - 0, - 0.03571428571, - 0, - 0.005235602094, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Freedom', - '15-24', - 0, - 0.03888888889, - 0, - 0.0119760479, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '25-34', - 4, - 0.04081632653, - 0.1463414634, - 0.01111111111, - 0.4, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Peace', - '25-34', - 1, - 0.04081632653, - 0.03524229075, - 0.005235602094, - 0.2, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Freedom', - '25-34', - 3, - 0.03888888889, - 0.08974358974, - 0.0119760479, - 0.3333333333, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '35-44', - 4, - 0.0306122449, - 0.1022727273, - 0.01111111111, - 0.4, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Peace', - '35-44', - 1, - 0.03571428571, - 0.03465346535, - 0.005235602094, - 0.2, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Freedom', - '35-44', - 1, - 0.03888888889, - 0.03783783784, - 0.0119760479, - 0.1666666667, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '45-54', - 1, - 0.03571428571, - 0.03867403315, - 0.01111111111, - 0.1333333333, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Peace', - '45-54', - 2, - 0.03571428571, - 0.0358974359, - 0.005235602094, - 0.2, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Freedom', - '45-54', - 3, - 0.03888888889, - 0.08536585366, - 0.0119760479, - 0.3333333333, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '55-64', - 3, - 0.03571428571, - 0.0773480663, - 0.01111111111, - 0.2666666667, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Peace', - '55-64', - 1, - 0.04081632653, - 0.04938271605, - 0.005235602094, - 0.2, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Freedom', - '55-64', - 1, - 0.03888888889, - 0.04191616766, - 0.0119760479, - 0.1666666667, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '65-74', - 6, - 0.03571428571, - 0.161849711, - 0.01111111111, - 0.5333333333, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Peace', - '65-74', - 2, - 0.0306122449, - 0.03448275862, - 0.005235602094, - 0.2, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Freedom', - '65-74', - 4, - 0.03333333333, - 0.07594936709, - 0.0119760479, - 0.3333333333, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '75+', - 1, - 0.04081632653, - 0.07111111111, - 0.01111111111, - 0.2666666667, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Peace', - '75+', - 0, - 0.0306122449, - 0, - 0.005235602094, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Freedom', - '75+', - 3, - 0.02222222222, - 0.128, - 0.0119760479, - 0.6666666667, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '15-24', - 4, - 0.0306122449, - 0.1612903226, - 0.02222222222, - 0.8, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Peace', - '15-24', - 4, - 0.03571428571, - 0.1346153846, - 0.03141361257, - 0.6666666667, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Freedom', - '15-24', - 5, - 0.03888888889, - 0.1955307263, - 0.04191616766, - 0.7291666667, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '25-34', - 7, - 0.04081632653, - 0.2926829268, - 0.02222222222, - 0.96, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Peace', - '25-34', - 11, - 0.04081632653, - 0.281938326, - 0.03141361257, - 1.333333333, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Freedom', - '25-34', - 9, - 0.03888888889, - 0.3141025641, - 0.04191616766, - 1.020833333, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '35-44', - 3, - 0.0306122449, - 0.06818181818, - 0.02222222222, - 0.32, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Peace', - '35-44', - 10, - 0.03571428571, - 0.2425742574, - 0.03141361257, - 1.166666667, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Freedom', - '35-44', - 14, - 0.03888888889, - 0.3783783784, - 0.04191616766, - 1.458333333, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '45-54', - 5, - 0.03571428571, - 0.1546961326, - 0.02222222222, - 0.64, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Peace', - '45-54', - 6, - 0.03571428571, - 0.1435897436, - 0.03141361257, - 0.6666666667, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Freedom', - '45-54', - 12, - 0.03888888889, - 0.3841463415, - 0.04191616766, - 1.3125, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '55-64', - 2, - 0.03571428571, - 0.0773480663, - 0.02222222222, - 0.32, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Peace', - '55-64', - 5, - 0.04081632653, - 0.2469135802, - 0.03141361257, - 0.8333333333, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Freedom', - '55-64', - 9, - 0.03888888889, - 0.377245509, - 0.04191616766, - 1.3125, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '65-74', - 4, - 0.03571428571, - 0.161849711, - 0.02222222222, - 0.64, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Peace', - '65-74', - 5, - 0.0306122449, - 0.1724137931, - 0.03141361257, - 0.8333333333, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Freedom', - '65-74', - 7, - 0.03333333333, - 0.3037974684, - 0.04191616766, - 1.166666667, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '75+', - 1, - 0.04081632653, - 0.07111111111, - 0.02222222222, - 0.32, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Peace', - '75+', - 2, - 0.0306122449, - 0.1132075472, - 0.03141361257, - 0.5, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Freedom', - '75+', - 0, - 0.02222222222, - 0, - 0.04191616766, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '15-24', - 12, - 0.0306122449, - 0.3225806452, - 0.05555555556, - 1.449275362, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Peace', - '15-24', - 22, - 0.03571428571, - 0.5721153846, - 0.07329842932, - 2.404040404, - 17, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Freedom', - '15-24', - 8, - 0.03888888889, - 0.2346368715, - 0.03592814371, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '25-34', - 5, - 0.04081632653, - 0.1951219512, - 0.05555555556, - 0.5797101449, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Peace', - '25-34', - 28, - 0.04081632653, - 0.7753303965, - 0.07329842932, - 3.111111111, - 22, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Freedom', - '25-34', - 8, - 0.03888888889, - 0.2692307692, - 0.03592814371, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '35-44', - 23, - 0.0306122449, - 0.5113636364, - 0.05555555556, - 2.173913043, - 15, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Peace', - '35-44', - 27, - 0.03571428571, - 0.6237623762, - 0.07329842932, - 2.545454545, - 18, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Freedom', - '35-44', - 8, - 0.03888888889, - 0.1891891892, - 0.03592814371, - 0.7142857143, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '45-54', - 20, - 0.03571428571, - 0.5027624309, - 0.05555555556, - 1.884057971, - 13, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Peace', - '45-54', - 19, - 0.03571428571, - 0.4307692308, - 0.07329842932, - 1.696969697, - 12, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Freedom', - '45-54', - 6, - 0.03888888889, - 0.1707317073, - 0.03592814371, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '55-64', - 15, - 0.03571428571, - 0.3867403315, - 0.05555555556, - 1.449275362, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Peace', - '55-64', - 13, - 0.04081632653, - 0.3950617284, - 0.07329842932, - 1.131313131, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Freedom', - '55-64', - 13, - 0.03888888889, - 0.3353293413, - 0.03592814371, - 1.142857143, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '65-74', - 13, - 0.03571428571, - 0.323699422, - 0.05555555556, - 1.15942029, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Peace', - '65-74', - 16, - 0.0306122449, - 0.3793103448, - 0.07329842932, - 1.555555556, - 11, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Freedom', - '65-74', - 9, - 0.03333333333, - 0.2278481013, - 0.03592814371, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '75+', - 10, - 0.04081632653, - 0.32, - 0.05555555556, - 1.304347826, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Peace', - '75+', - 12, - 0.0306122449, - 0.4150943396, - 0.07329842932, - 1.555555556, - 11, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Freedom', - '75+', - 7, - 0.02222222222, - 0.224, - 0.03592814371, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '15-24', - 3, - 0.0306122449, - 0.06451612903, - 0.02777777778, - 0.2857142857, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Peace', - '15-24', - 15, - 0.03571428571, - 0.4038461538, - 0.05235602094, - 1.764705882, - 12, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Freedom', - '15-24', - 6, - 0.03888888889, - 0.1955307263, - 0.03592814371, - 0.6818181818, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '25-34', - 5, - 0.04081632653, - 0.1951219512, - 0.02777777778, - 0.5714285714, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Peace', - '25-34', - 9, - 0.04081632653, - 0.2466960352, - 0.05235602094, - 1.029411765, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Freedom', - '25-34', - 12, - 0.03888888889, - 0.4487179487, - 0.03592814371, - 1.363636364, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '35-44', - 11, - 0.0306122449, - 0.2727272727, - 0.02777777778, - 1.142857143, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Peace', - '35-44', - 16, - 0.03571428571, - 0.3465346535, - 0.05235602094, - 1.470588235, - 10, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Freedom', - '35-44', - 5, - 0.03888888889, - 0.1135135135, - 0.03592814371, - 0.4090909091, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '45-54', - 6, - 0.03571428571, - 0.1546961326, - 0.02777777778, - 0.5714285714, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Peace', - '45-54', - 15, - 0.03571428571, - 0.3948717949, - 0.05235602094, - 1.617647059, - 11, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Freedom', - '45-54', - 9, - 0.03888888889, - 0.2987804878, - 0.03592814371, - 0.9545454545, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '55-64', - 6, - 0.03571428571, - 0.1933701657, - 0.02777777778, - 0.7142857143, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Peace', - '55-64', - 16, - 0.04081632653, - 0.6419753086, - 0.05235602094, - 1.911764706, - 13, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Freedom', - '55-64', - 8, - 0.03888888889, - 0.251497006, - 0.03592814371, - 0.8181818182, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '65-74', - 7, - 0.03571428571, - 0.2427745665, - 0.02777777778, - 0.8571428571, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Peace', - '65-74', - 10, - 0.0306122449, - 0.275862069, - 0.05235602094, - 1.176470588, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Freedom', - '65-74', - 9, - 0.03333333333, - 0.3037974684, - 0.03592814371, - 1.090909091, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '75+', - 6, - 0.04081632653, - 0.2133333333, - 0.02777777778, - 0.8571428571, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Peace', - '75+', - 6, - 0.0306122449, - 0.2641509434, - 0.05235602094, - 1.029411765, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Freedom', - '75+', - 5, - 0.02222222222, - 0.16, - 0.03592814371, - 0.6818181818, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '15-24', - 10, - 0.0306122449, - 0.2580645161, - 0.03888888889, - 1.166666667, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Peace', - '15-24', - 8, - 0.03571428571, - 0.2355769231, - 0.02094240838, - 1, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Freedom', - '15-24', - 3, - 0.03888888889, - 0.0782122905, - 0.02395209581, - 0.3076923077, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '25-34', - 9, - 0.04081632653, - 0.2926829268, - 0.03888888889, - 0.875, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Peace', - '25-34', - 3, - 0.04081632653, - 0.0704845815, - 0.02094240838, - 0.2857142857, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Freedom', - '25-34', - 6, - 0.03888888889, - 0.1794871795, - 0.02395209581, - 0.6153846154, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '35-44', - 12, - 0.0306122449, - 0.2386363636, - 0.03888888889, - 1.020833333, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Peace', - '35-44', - 4, - 0.03571428571, - 0.06930693069, - 0.02094240838, - 0.2857142857, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Freedom', - '35-44', - 9, - 0.03888888889, - 0.227027027, - 0.02395209581, - 0.9230769231, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '45-54', - 13, - 0.03571428571, - 0.3480662983, - 0.03888888889, - 1.3125, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Peace', - '45-54', - 6, - 0.03571428571, - 0.1435897436, - 0.02094240838, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Freedom', - '45-54', - 7, - 0.03888888889, - 0.1707317073, - 0.02395209581, - 0.6153846154, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '55-64', - 12, - 0.03571428571, - 0.270718232, - 0.03888888889, - 1.020833333, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Peace', - '55-64', - 7, - 0.04081632653, - 0.1975308642, - 0.02094240838, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Freedom', - '55-64', - 7, - 0.03888888889, - 0.1676646707, - 0.02395209581, - 0.6153846154, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '65-74', - 12, - 0.03571428571, - 0.2427745665, - 0.03888888889, - 0.875, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Peace', - '65-74', - 5, - 0.0306122449, - 0.1034482759, - 0.02094240838, - 0.4285714286, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Freedom', - '65-74', - 12, - 0.03333333333, - 0.2278481013, - 0.02395209581, - 0.9230769231, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '75+', - 4, - 0.04081632653, - 0.1777777778, - 0.03888888889, - 0.7291666667, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Peace', - '75+', - 5, - 0.0306122449, - 0.2264150943, - 0.02094240838, - 0.8571428571, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Freedom', - '75+', - 0, - 0.02222222222, - 0, - 0.02395209581, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '15-24', - 7, - 0.0306122449, - 0.1612903226, - 0.02222222222, - 0.6896551724, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Peace', - '15-24', - 11, - 0.03571428571, - 0.3028846154, - 0.03664921466, - 1.235294118, - 9, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Freedom', - '15-24', - 18, - 0.03888888889, - 0.5474860335, - 0.04790419162, - 2.074074074, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '25-34', - 6, - 0.04081632653, - 0.243902439, - 0.02222222222, - 0.6896551724, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Peace', - '25-34', - 9, - 0.04081632653, - 0.2466960352, - 0.03664921466, - 0.9607843137, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Freedom', - '25-34', - 2, - 0.03888888889, - 0.08974358974, - 0.04790419162, - 0.2962962963, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '35-44', - 11, - 0.0306122449, - 0.2045454545, - 0.02222222222, - 0.8275862069, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Peace', - '35-44', - 15, - 0.03571428571, - 0.2772277228, - 0.03664921466, - 1.098039216, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Freedom', - '35-44', - 17, - 0.03888888889, - 0.3405405405, - 0.04790419162, - 1.333333333, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '45-54', - 7, - 0.03571428571, - 0.1933701657, - 0.02222222222, - 0.6896551724, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Peace', - '45-54', - 8, - 0.03571428571, - 0.2153846154, - 0.03664921466, - 0.8235294118, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Freedom', - '45-54', - 3, - 0.03888888889, - 0.1280487805, - 0.04790419162, - 0.4444444444, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '55-64', - 3, - 0.03571428571, - 0.0773480663, - 0.02222222222, - 0.275862069, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Peace', - '55-64', - 5, - 0.04081632653, - 0.1481481481, - 0.03664921466, - 0.4117647059, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Freedom', - '55-64', - 16, - 0.03888888889, - 0.4191616766, - 0.04790419162, - 1.481481481, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '65-74', - 3, - 0.03571428571, - 0.08092485549, - 0.02222222222, - 0.275862069, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Peace', - '65-74', - 4, - 0.0306122449, - 0.1034482759, - 0.03664921466, - 0.4117647059, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Freedom', - '65-74', - 8, - 0.03333333333, - 0.1898734177, - 0.04790419162, - 0.7407407407, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '75+', - 3, - 0.04081632653, - 0.1422222222, - 0.02222222222, - 0.5517241379, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Peace', - '75+', - 11, - 0.0306122449, - 0.5660377358, - 0.03664921466, - 2.058823529, - 15, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Freedom', - '75+', - 8, - 0.02222222222, - 0.352, - 0.04790419162, - 1.62962963, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '15-24', - 9, - 0.0306122449, - 0.1935483871, - 0.02222222222, - 1, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Peace', - '15-24', - 12, - 0.03571428571, - 0.3028846154, - 0.04712041885, - 1.372881356, - 9, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Freedom', - '15-24', - 5, - 0.03888888889, - 0.156424581, - 0.02994011976, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '25-34', - 3, - 0.04081632653, - 0.09756097561, - 0.02222222222, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Peace', - '25-34', - 13, - 0.04081632653, - 0.3171806167, - 0.04712041885, - 1.372881356, - 9, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Freedom', - '25-34', - 8, - 0.03888888889, - 0.2692307692, - 0.02994011976, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '35-44', - 6, - 0.0306122449, - 0.1022727273, - 0.02222222222, - 0.5, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Peace', - '35-44', - 28, - 0.03571428571, - 0.4158415842, - 0.04712041885, - 1.830508475, - 12, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Freedom', - '35-44', - 17, - 0.03888888889, - 0.2648648649, - 0.02994011976, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '45-54', - 4, - 0.03571428571, - 0.0773480663, - 0.02222222222, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Peace', - '45-54', - 22, - 0.03571428571, - 0.4666666667, - 0.04712041885, - 1.983050847, - 13, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Freedom', - '45-54', - 7, - 0.03888888889, - 0.1707317073, - 0.02994011976, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '55-64', - 5, - 0.03571428571, - 0.1546961326, - 0.02222222222, - 0.6666666667, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Peace', - '55-64', - 5, - 0.04081632653, - 0.1975308642, - 0.04712041885, - 0.6101694915, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Freedom', - '55-64', - 5, - 0.03888888889, - 0.1676646707, - 0.02994011976, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '65-74', - 5, - 0.03571428571, - 0.161849711, - 0.02222222222, - 0.6666666667, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Peace', - '65-74', - 9, - 0.0306122449, - 0.2413793103, - 0.04712041885, - 1.06779661, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Freedom', - '65-74', - 3, - 0.03333333333, - 0.1139240506, - 0.02994011976, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '75+', - 2, - 0.04081632653, - 0.1066666667, - 0.02222222222, - 0.5, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Peace', - '75+', - 3, - 0.0306122449, - 0.1886792453, - 0.04712041885, - 0.7627118644, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Freedom', - '75+', - 5, - 0.02222222222, - 0.224, - 0.02994011976, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '15-24', - 1, - 0.0306122449, - 0.03225806452, - 0.01666666667, - 0.1428571429, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Peace', - '15-24', - 2, - 0.03571428571, - 0.06730769231, - 0.01570680628, - 0.2857142857, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Freedom', - '15-24', - 5, - 0.03888888889, - 0.1955307263, - 0.02395209581, - 0.7692307692, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '25-34', - 3, - 0.04081632653, - 0.09756097561, - 0.01666666667, - 0.2857142857, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Peace', - '25-34', - 6, - 0.04081632653, - 0.140969163, - 0.01570680628, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Freedom', - '25-34', - 4, - 0.03888888889, - 0.1346153846, - 0.02395209581, - 0.4615384615, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '35-44', - 5, - 0.0306122449, - 0.1022727273, - 0.01666666667, - 0.4285714286, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Peace', - '35-44', - 5, - 0.03571428571, - 0.1386138614, - 0.01570680628, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Freedom', - '35-44', - 6, - 0.03888888889, - 0.1513513514, - 0.02395209581, - 0.6153846154, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '45-54', - 8, - 0.03571428571, - 0.1546961326, - 0.01666666667, - 0.5714285714, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Peace', - '45-54', - 4, - 0.03571428571, - 0.07179487179, - 0.01570680628, - 0.2857142857, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Freedom', - '45-54', - 8, - 0.03888888889, - 0.1707317073, - 0.02395209581, - 0.6153846154, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '55-64', - 5, - 0.03571428571, - 0.1546961326, - 0.01666666667, - 0.5714285714, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Peace', - '55-64', - 7, - 0.04081632653, - 0.2469135802, - 0.01570680628, - 0.7142857143, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Freedom', - '55-64', - 5, - 0.03888888889, - 0.1676646707, - 0.02395209581, - 0.6153846154, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '65-74', - 6, - 0.03571428571, - 0.1213872832, - 0.01666666667, - 0.4285714286, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Peace', - '65-74', - 7, - 0.0306122449, - 0.1379310345, - 0.01570680628, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Freedom', - '65-74', - 2, - 0.03333333333, - 0.03797468354, - 0.02395209581, - 0.1538461538, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '75+', - 3, - 0.04081632653, - 0.1422222222, - 0.01666666667, - 0.5714285714, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Peace', - '75+', - 0, - 0.0306122449, - 0, - 0.01570680628, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Freedom', - '75+', - 4, - 0.02222222222, - 0.16, - 0.02395209581, - 0.7692307692, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '15-24', - 13, - 0.0306122449, - 0.2903225806, - 0.05555555556, - 1.25, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Peace', - '15-24', - 8, - 0.03571428571, - 0.1682692308, - 0.005235602094, - 0.625, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Freedom', - '15-24', - 11, - 0.03888888889, - 0.312849162, - 0.01796407186, - 1.2, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '25-34', - 10, - 0.04081632653, - 0.3414634146, - 0.05555555556, - 0.9722222222, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Peace', - '25-34', - 0, - 0.04081632653, - 0, - 0.005235602094, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Freedom', - '25-34', - 2, - 0.03888888889, - 0.04487179487, - 0.01796407186, - 0.15, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '35-44', - 12, - 0.0306122449, - 0.375, - 0.05555555556, - 1.527777778, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Peace', - '35-44', - 0, - 0.03571428571, - 0, - 0.005235602094, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Freedom', - '35-44', - 8, - 0.03888888889, - 0.2648648649, - 0.01796407186, - 1.05, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '45-54', - 13, - 0.03571428571, - 0.270718232, - 0.05555555556, - 0.9722222222, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Peace', - '45-54', - 0, - 0.03571428571, - 0, - 0.005235602094, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Freedom', - '45-54', - 1, - 0.03888888889, - 0.04268292683, - 0.01796407186, - 0.15, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '55-64', - 13, - 0.03571428571, - 0.3867403315, - 0.05555555556, - 1.388888889, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Peace', - '55-64', - 3, - 0.04081632653, - 0.0987654321, - 0.005235602094, - 0.25, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Freedom', - '55-64', - 2, - 0.03888888889, - 0.04191616766, - 0.01796407186, - 0.15, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '65-74', - 11, - 0.03571428571, - 0.3641618497, - 0.05555555556, - 1.25, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Peace', - '65-74', - 1, - 0.0306122449, - 0.03448275862, - 0.005235602094, - 0.125, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Freedom', - '65-74', - 2, - 0.03333333333, - 0.07594936709, - 0.01796407186, - 0.3, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '75+', - 23, - 0.04081632653, - 0.6755555556, - 0.05555555556, - 2.638888889, - 19, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Peace', - '75+', - 0, - 0.0306122449, - 0, - 0.005235602094, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Freedom', - '75+', - 0, - 0.02222222222, - 0, - 0.01796407186, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '15-24', - 3, - 0.0306122449, - 0.1612903226, - 0.02777777778, - 0.7352941176, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Peace', - '15-24', - 7, - 0.03571428571, - 0.3701923077, - 0.06282722513, - 1.65, - 11, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Freedom', - '15-24', - 10, - 0.03888888889, - 0.5865921788, - 0.06586826347, - 2.088607595, - 15, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '25-34', - 3, - 0.04081632653, - 0.243902439, - 0.02777777778, - 0.7352941176, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Peace', - '25-34', - 9, - 0.04081632653, - 0.422907489, - 0.06282722513, - 1.8, - 12, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Freedom', - '25-34', - 3, - 0.03888888889, - 0.2243589744, - 0.06586826347, - 0.6962025316, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '35-44', - 6, - 0.0306122449, - 0.2045454545, - 0.02777777778, - 0.8823529412, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Peace', - '35-44', - 12, - 0.03571428571, - 0.4504950495, - 0.06282722513, - 1.95, - 13, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Freedom', - '35-44', - 10, - 0.03888888889, - 0.4540540541, - 0.06586826347, - 1.670886076, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '45-54', - 2, - 0.03571428571, - 0.1160220994, - 0.02777777778, - 0.4411764706, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Peace', - '45-54', - 9, - 0.03571428571, - 0.3948717949, - 0.06282722513, - 1.65, - 11, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Freedom', - '45-54', - 9, - 0.03888888889, - 0.4695121951, - 0.06586826347, - 1.53164557, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '55-64', - 2, - 0.03571428571, - 0.1160220994, - 0.02777777778, - 0.4411764706, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Peace', - '55-64', - 8, - 0.04081632653, - 0.6419753086, - 0.06282722513, - 1.95, - 13, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Freedom', - '55-64', - 8, - 0.03888888889, - 0.5868263473, - 0.06586826347, - 1.949367089, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '65-74', - 3, - 0.03571428571, - 0.2023121387, - 0.02777777778, - 0.7352941176, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Peace', - '65-74', - 4, - 0.0306122449, - 0.2413793103, - 0.06282722513, - 1.05, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Freedom', - '65-74', - 8, - 0.03333333333, - 0.4556962025, - 0.06586826347, - 1.670886076, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '75+', - 3, - 0.04081632653, - 0.2488888889, - 0.02777777778, - 1.029411765, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Peace', - '75+', - 4, - 0.0306122449, - 0.4905660377, - 0.06282722513, - 1.95, - 13, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Freedom', - '75+', - 3, - 0.02222222222, - 0.32, - 0.06586826347, - 1.392405063, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '15-24', - 19, - 0.0306122449, - 0.5483870968, - 0.08888888889, - 2.076335878, - 17, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Peace', - '15-24', - 2, - 0.03571428571, - 0.06730769231, - 0.01047120419, - 0.3636363636, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Freedom', - '15-24', - 3, - 0.03888888889, - 0.1173184358, - 0.02395209581, - 0.6, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '25-34', - 18, - 0.04081632653, - 0.5853658537, - 0.08888888889, - 1.465648855, - 12, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Peace', - '25-34', - 3, - 0.04081632653, - 0.0704845815, - 0.01047120419, - 0.3636363636, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Freedom', - '25-34', - 9, - 0.03888888889, - 0.2692307692, - 0.02395209581, - 1.2, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '35-44', - 27, - 0.0306122449, - 0.7159090909, - 0.08888888889, - 2.564885496, - 21, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Peace', - '35-44', - 2, - 0.03571428571, - 0.06930693069, - 0.01047120419, - 0.3636363636, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Freedom', - '35-44', - 8, - 0.03888888889, - 0.227027027, - 0.02395209581, - 1.2, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '45-54', - 24, - 0.03571428571, - 0.6961325967, - 0.08888888889, - 2.198473282, - 18, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Peace', - '45-54', - 1, - 0.03571428571, - 0.0358974359, - 0.01047120419, - 0.1818181818, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Freedom', - '45-54', - 3, - 0.03888888889, - 0.08536585366, - 0.02395209581, - 0.4, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '55-64', - 20, - 0.03571428571, - 0.5801104972, - 0.08888888889, - 1.832061069, - 15, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Peace', - '55-64', - 2, - 0.04081632653, - 0.04938271605, - 0.01047120419, - 0.1818181818, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Freedom', - '55-64', - 3, - 0.03888888889, - 0.08383233533, - 0.02395209581, - 0.4, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '65-74', - 30, - 0.03571428571, - 0.5260115607, - 0.08888888889, - 1.58778626, - 13, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Peace', - '65-74', - 7, - 0.0306122449, - 0.1034482759, - 0.01047120419, - 0.5454545455, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Freedom', - '65-74', - 2, - 0.03333333333, - 0.03797468354, - 0.02395209581, - 0.2, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '75+', - 4, - 0.04081632653, - 1.244444444, - 0.08888888889, - 4.27480916, - 35, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Peace', - '75+', - 0, - 0.0306122449, - 0, - 0.01047120419, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Freedom', - '75+', - 0, - 0.02222222222, - 0, - 0.02395209581, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '15-24', - 2, - 0.0306122449, - 0.09677419355, - 0.005555555556, - 0.75, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Peace', - '15-24', - 6, - 0.03571428571, - 0.3365384615, - 0.02617801047, - 1.5625, - 10, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Freedom', - '15-24', - 6, - 0.03888888889, - 0.3519553073, - 0.02395209581, - 1.384615385, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '25-34', - 0, - 0.04081632653, - 0, - 0.005555555556, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Peace', - '25-34', - 1, - 0.04081632653, - 0.03524229075, - 0.02617801047, - 0.15625, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Freedom', - '25-34', - 4, - 0.03888888889, - 0.2692307692, - 0.02395209581, - 0.9230769231, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '35-44', - 0, - 0.0306122449, - 0, - 0.005555555556, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Peace', - '35-44', - 1, - 0.03571428571, - 0.03465346535, - 0.02617801047, - 0.15625, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Freedom', - '35-44', - 2, - 0.03888888889, - 0.07567567568, - 0.02395209581, - 0.3076923077, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '45-54', - 0, - 0.03571428571, - 0, - 0.005555555556, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Peace', - '45-54', - 5, - 0.03571428571, - 0.2512820513, - 0.02617801047, - 1.09375, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Freedom', - '45-54', - 0, - 0.03888888889, - 0, - 0.02395209581, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '55-64', - 0, - 0.03571428571, - 0, - 0.005555555556, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Peace', - '55-64', - 1, - 0.04081632653, - 0.0987654321, - 0.02617801047, - 0.3125, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Freedom', - '55-64', - 2, - 0.03888888889, - 0.125748503, - 0.02395209581, - 0.4615384615, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '65-74', - 0, - 0.03571428571, - 0, - 0.005555555556, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Peace', - '65-74', - 6, - 0.0306122449, - 0.3103448276, - 0.02617801047, - 1.40625, - 9, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Freedom', - '65-74', - 4, - 0.03333333333, - 0.2278481013, - 0.02395209581, - 0.9230769231, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '75+', - 0, - 0.04081632653, - 0.03555555556, - 0.005555555556, - 0.25, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Peace', - '75+', - 1, - 0.0306122449, - 0.07547169811, - 0.02617801047, - 0.3125, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Freedom', - '75+', - 0, - 0.02222222222, - 0, - 0.02395209581, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '15-24', - 9, - 0.0306122449, - 0.2580645161, - 0.03333333333, - 0.9795918367, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Peace', - '15-24', - 21, - 0.03571428571, - 0.6057692308, - 0.07329842932, - 2.680851064, - 18, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Freedom', - '15-24', - 12, - 0.03888888889, - 0.3910614525, - 0.05988023952, - 1.428571429, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '25-34', - 7, - 0.04081632653, - 0.2926829268, - 0.03333333333, - 0.7346938776, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Peace', - '25-34', - 21, - 0.04081632653, - 0.6343612335, - 0.07329842932, - 2.680851064, - 18, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Freedom', - '25-34', - 14, - 0.03888888889, - 0.5384615385, - 0.05988023952, - 1.714285714, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '35-44', - 12, - 0.0306122449, - 0.2045454545, - 0.03333333333, - 0.7346938776, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Peace', - '35-44', - 31, - 0.03571428571, - 0.5891089109, - 0.07329842932, - 2.531914894, - 17, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Freedom', - '35-44', - 19, - 0.03888888889, - 0.3783783784, - 0.05988023952, - 1.428571429, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '45-54', - 9, - 0.03571428571, - 0.1933701657, - 0.03333333333, - 0.612244898, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Peace', - '45-54', - 21, - 0.03571428571, - 0.3948717949, - 0.07329842932, - 1.638297872, - 11, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Freedom', - '45-54', - 23, - 0.03888888889, - 0.4695121951, - 0.05988023952, - 1.571428571, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '55-64', - 10, - 0.03571428571, - 0.270718232, - 0.03333333333, - 0.8571428571, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Peace', - '55-64', - 23, - 0.04081632653, - 0.6913580247, - 0.07329842932, - 2.085106383, - 14, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Freedom', - '55-64', - 18, - 0.03888888889, - 0.4610778443, - 0.05988023952, - 1.571428571, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '65-74', - 12, - 0.03571428571, - 0.2023121387, - 0.03333333333, - 0.612244898, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Peace', - '65-74', - 26, - 0.0306122449, - 0.3793103448, - 0.07329842932, - 1.638297872, - 11, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Freedom', - '65-74', - 20, - 0.03333333333, - 0.3037974684, - 0.05988023952, - 1.142857143, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '75+', - 1, - 0.04081632653, - 0.4266666667, - 0.03333333333, - 1.469387755, - 12, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Peace', - '75+', - 1, - 0.0306122449, - 0.1886792453, - 0.07329842932, - 0.7446808511, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Freedom', - '75+', - 1, - 0.02222222222, - 0.256, - 0.05988023952, - 1.142857143, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '15-24', - 21, - 0.0306122449, - 0.5483870968, - 0.07777777778, - 2.333333333, - 17, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Peace', - '15-24', - 0, - 0.03571428571, - 0, - 0.01570680628, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Freedom', - '15-24', - 9, - 0.03888888889, - 0.312849162, - 0.02994011976, - 1.212121212, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '25-34', - 29, - 0.04081632653, - 0.9268292683, - 0.07777777778, - 2.607843137, - 19, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Peace', - '25-34', - 7, - 0.04081632653, - 0.140969163, - 0.01570680628, - 0.6, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Freedom', - '25-34', - 5, - 0.03888888889, - 0.1794871795, - 0.02994011976, - 0.6060606061, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '35-44', - 15, - 0.0306122449, - 0.2727272727, - 0.07777777778, - 1.098039216, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Peace', - '35-44', - 10, - 0.03571428571, - 0.1732673267, - 0.01570680628, - 0.75, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Freedom', - '35-44', - 14, - 0.03888888889, - 0.2648648649, - 0.02994011976, - 1.060606061, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '45-54', - 21, - 0.03571428571, - 0.6187845304, - 0.07777777778, - 2.196078431, - 16, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Peace', - '45-54', - 5, - 0.03571428571, - 0.1435897436, - 0.01570680628, - 0.6, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Freedom', - '45-54', - 8, - 0.03888888889, - 0.256097561, - 0.02994011976, - 0.9090909091, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '55-64', - 19, - 0.03571428571, - 0.5027624309, - 0.07777777778, - 1.784313725, - 13, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Peace', - '55-64', - 5, - 0.04081632653, - 0.1481481481, - 0.01570680628, - 0.45, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Freedom', - '55-64', - 4, - 0.03888888889, - 0.125748503, - 0.02994011976, - 0.4545454545, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '65-74', - 17, - 0.03571428571, - 0.5260115607, - 0.07777777778, - 1.784313725, - 13, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Peace', - '65-74', - 4, - 0.0306122449, - 0.1034482759, - 0.01570680628, - 0.45, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Freedom', - '65-74', - 4, - 0.03333333333, - 0.1139240506, - 0.02994011976, - 0.4545454545, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '75+', - 9, - 0.04081632653, - 0.5688888889, - 0.07777777778, - 2.196078431, - 16, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Peace', - '75+', - 1, - 0.0306122449, - 0.03773584906, - 0.01570680628, - 0.15, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Freedom', - '75+', - 1, - 0.02222222222, - 0.064, - 0.02994011976, - 0.303030303, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '15-24', - 2, - 0.0306122449, - 0.06451612903, - 0.01666666667, - 0.24, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Peace', - '15-24', - 2, - 0.03571428571, - 0.06730769231, - 0.01047120419, - 0.2857142857, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Freedom', - '15-24', - 6, - 0.03888888889, - 0.1955307263, - 0.02994011976, - 0.8064516129, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '25-34', - 1, - 0.04081632653, - 0.0487804878, - 0.01666666667, - 0.12, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Peace', - '25-34', - 4, - 0.04081632653, - 0.1057268722, - 0.01047120419, - 0.4285714286, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Freedom', - '25-34', - 6, - 0.03888888889, - 0.1794871795, - 0.02994011976, - 0.6451612903, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '35-44', - 10, - 0.0306122449, - 0.2045454545, - 0.01666666667, - 0.72, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Peace', - '35-44', - 2, - 0.03571428571, - 0.03465346535, - 0.01047120419, - 0.1428571429, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Freedom', - '35-44', - 9, - 0.03888888889, - 0.1891891892, - 0.02994011976, - 0.8064516129, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '45-54', - 7, - 0.03571428571, - 0.1546961326, - 0.01666666667, - 0.48, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Peace', - '45-54', - 6, - 0.03571428571, - 0.1435897436, - 0.01047120419, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Freedom', - '45-54', - 6, - 0.03888888889, - 0.1707317073, - 0.02994011976, - 0.6451612903, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '55-64', - 6, - 0.03571428571, - 0.1546961326, - 0.01666666667, - 0.48, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Peace', - '55-64', - 1, - 0.04081632653, - 0.04938271605, - 0.01047120419, - 0.1428571429, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Freedom', - '55-64', - 10, - 0.03888888889, - 0.2934131737, - 0.02994011976, - 1.129032258, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '65-74', - 2, - 0.03571428571, - 0.08092485549, - 0.01666666667, - 0.24, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Peace', - '65-74', - 3, - 0.0306122449, - 0.06896551724, - 0.01047120419, - 0.2857142857, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Freedom', - '65-74', - 5, - 0.03333333333, - 0.1518987342, - 0.02994011976, - 0.6451612903, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '75+', - 5, - 0.04081632653, - 0.2133333333, - 0.01666666667, - 0.72, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Peace', - '75+', - 1, - 0.0306122449, - 0.03773584906, - 0.01047120419, - 0.1428571429, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Freedom', - '75+', - 1, - 0.02222222222, - 0.064, - 0.02994011976, - 0.3225806452, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '15-24', - 5, - 0.0306122449, - 0.1290322581, - 0.03888888889, - 0.5490196078, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Peace', - '15-24', - 6, - 0.03571428571, - 0.1682692308, - 0.03141361257, - 0.6976744186, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Freedom', - '15-24', - 5, - 0.03888888889, - 0.156424581, - 0.03592814371, - 0.5581395349, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '25-34', - 12, - 0.04081632653, - 0.3902439024, - 0.03888888889, - 1.098039216, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Peace', - '25-34', - 6, - 0.04081632653, - 0.140969163, - 0.03141361257, - 0.5581395349, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Freedom', - '25-34', - 10, - 0.03888888889, - 0.3141025641, - 0.03592814371, - 0.976744186, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '35-44', - 12, - 0.0306122449, - 0.2386363636, - 0.03888888889, - 0.9607843137, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Peace', - '35-44', - 9, - 0.03571428571, - 0.1732673267, - 0.03141361257, - 0.6976744186, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Freedom', - '35-44', - 8, - 0.03888888889, - 0.1891891892, - 0.03592814371, - 0.6976744186, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '45-54', - 9, - 0.03571428571, - 0.270718232, - 0.03888888889, - 0.9607843137, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Peace', - '45-54', - 8, - 0.03571428571, - 0.2153846154, - 0.03141361257, - 0.8372093023, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Freedom', - '45-54', - 15, - 0.03888888889, - 0.4695121951, - 0.03592814371, - 1.534883721, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '55-64', - 11, - 0.03571428571, - 0.3093922652, - 0.03888888889, - 1.098039216, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Peace', - '55-64', - 11, - 0.04081632653, - 0.3950617284, - 0.03141361257, - 1.11627907, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Freedom', - '55-64', - 7, - 0.03888888889, - 0.2095808383, - 0.03592814371, - 0.6976744186, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '65-74', - 8, - 0.03571428571, - 0.2023121387, - 0.03888888889, - 0.6862745098, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Peace', - '65-74', - 12, - 0.0306122449, - 0.3103448276, - 0.03141361257, - 1.255813953, - 9, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Freedom', - '65-74', - 6, - 0.03333333333, - 0.1518987342, - 0.03592814371, - 0.5581395349, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '75+', - 5, - 0.04081632653, - 0.4266666667, - 0.03888888889, - 1.647058824, - 12, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Peace', - '75+', - 2, - 0.0306122449, - 0.2264150943, - 0.03141361257, - 0.8372093023, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Freedom', - '75+', - 3, - 0.02222222222, - 0.224, - 0.03592814371, - 0.976744186, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '15-24', - 6, - 0.0306122449, - 0.1612903226, - 0.06111111111, - 0.6875, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Peace', - '15-24', - 30, - 0.03571428571, - 0.8413461538, - 0.109947644, - 3.523489933, - 25, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Freedom', - '15-24', - 9, - 0.03888888889, - 0.2737430168, - 0.05389221557, - 1.016129032, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '25-34', - 17, - 0.04081632653, - 0.487804878, - 0.06111111111, - 1.375, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Peace', - '25-34', - 54, - 0.04081632653, - 1.127753304, - 0.109947644, - 4.510067114, - 32, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Freedom', - '25-34', - 16, - 0.03888888889, - 0.4038461538, - 0.05389221557, - 1.306451613, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '35-44', - 15, - 0.0306122449, - 0.375, - 0.06111111111, - 1.5125, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Peace', - '35-44', - 32, - 0.03571428571, - 0.797029703, - 0.109947644, - 3.241610738, - 23, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Freedom', - '35-44', - 16, - 0.03888888889, - 0.4162162162, - 0.05389221557, - 1.596774194, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '45-54', - 21, - 0.03571428571, - 0.5414364641, - 0.06111111111, - 1.925, - 14, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Peace', - '45-54', - 32, - 0.03571428571, - 0.7179487179, - 0.109947644, - 2.818791946, - 20, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Freedom', - '45-54', - 15, - 0.03888888889, - 0.3841463415, - 0.05389221557, - 1.306451613, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '55-64', - 22, - 0.03571428571, - 0.6187845304, - 0.06111111111, - 2.2, - 16, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Peace', - '55-64', - 20, - 0.04081632653, - 0.6913580247, - 0.109947644, - 1.973154362, - 14, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Freedom', - '55-64', - 11, - 0.03888888889, - 0.3353293413, - 0.05389221557, - 1.161290323, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '65-74', - 15, - 0.03571428571, - 0.4046242775, - 0.06111111111, - 1.375, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Peace', - '65-74', - 24, - 0.0306122449, - 0.5517241379, - 0.109947644, - 2.255033557, - 16, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Freedom', - '65-74', - 19, - 0.03333333333, - 0.4556962025, - 0.05389221557, - 1.741935484, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '75+', - 16, - 0.04081632653, - 0.4977777778, - 0.06111111111, - 1.925, - 14, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Peace', - '75+', - 22, - 0.0306122449, - 0.7169811321, - 0.109947644, - 2.677852349, - 19, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Freedom', - '75+', - 7, - 0.02222222222, - 0.192, - 0.05389221557, - 0.8709677419, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '15-24', - 4, - 0.0306122449, - 0.09677419355, - 0.01111111111, - 0.5, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Peace', - '15-24', - 4, - 0.03571428571, - 0.1009615385, - 0.02094240838, - 0.3870967742, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Freedom', - '15-24', - 4, - 0.03888888889, - 0.156424581, - 0.03592814371, - 0.6315789474, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '25-34', - 0, - 0.04081632653, - 0, - 0.01111111111, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Peace', - '25-34', - 9, - 0.04081632653, - 0.2114537445, - 0.02094240838, - 0.7741935484, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Freedom', - '25-34', - 8, - 0.03888888889, - 0.2243589744, - 0.03592814371, - 0.7894736842, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '35-44', - 4, - 0.0306122449, - 0.1022727273, - 0.01111111111, - 0.5, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Peace', - '35-44', - 4, - 0.03571428571, - 0.06930693069, - 0.02094240838, - 0.2580645161, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Freedom', - '35-44', - 14, - 0.03888888889, - 0.3405405405, - 0.03592814371, - 1.421052632, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '45-54', - 3, - 0.03571428571, - 0.1160220994, - 0.01111111111, - 0.5, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Peace', - '45-54', - 8, - 0.03571428571, - 0.2153846154, - 0.02094240838, - 0.7741935484, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Freedom', - '45-54', - 5, - 0.03888888889, - 0.1280487805, - 0.03592814371, - 0.4736842105, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '55-64', - 3, - 0.03571428571, - 0.0773480663, - 0.01111111111, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Peace', - '55-64', - 5, - 0.04081632653, - 0.1975308642, - 0.02094240838, - 0.5161290323, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Freedom', - '55-64', - 11, - 0.03888888889, - 0.3353293413, - 0.03592814371, - 1.263157895, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '65-74', - 1, - 0.03571428571, - 0, - 0.01111111111, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Peace', - '65-74', - 8, - 0.0306122449, - 0.2068965517, - 0.02094240838, - 0.7741935484, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Freedom', - '65-74', - 9, - 0.03333333333, - 0.2278481013, - 0.03592814371, - 0.9473684211, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '75+', - 1, - 0.04081632653, - 0.03555555556, - 0.01111111111, - 0.1666666667, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Peace', - '75+', - 3, - 0.0306122449, - 0.1509433962, - 0.02094240838, - 0.5161290323, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Freedom', - '75+', - 2, - 0.02222222222, - 0.096, - 0.03592814371, - 0.4736842105, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '15-24', - 14, - 0.0306122449, - 0.3225806452, - 0.04444444444, - 1.538461538, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Peace', - '15-24', - 3, - 0.03571428571, - 0.06730769231, - 0.02094240838, - 0.2580645161, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Freedom', - '15-24', - 6, - 0.03888888889, - 0.156424581, - 0.02994011976, - 0.5882352941, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '25-34', - 9, - 0.04081632653, - 0.243902439, - 0.04444444444, - 0.7692307692, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Peace', - '25-34', - 8, - 0.04081632653, - 0.1762114537, - 0.02094240838, - 0.6451612903, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Freedom', - '25-34', - 8, - 0.03888888889, - 0.2243589744, - 0.02994011976, - 0.7352941176, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '35-44', - 16, - 0.0306122449, - 0.3068181818, - 0.04444444444, - 1.384615385, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Peace', - '35-44', - 5, - 0.03571428571, - 0.103960396, - 0.02094240838, - 0.3870967742, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Freedom', - '35-44', - 11, - 0.03888888889, - 0.227027027, - 0.02994011976, - 0.8823529412, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '45-54', - 10, - 0.03571428571, - 0.270718232, - 0.04444444444, - 1.076923077, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Peace', - '45-54', - 8, - 0.03571428571, - 0.1794871795, - 0.02094240838, - 0.6451612903, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Freedom', - '45-54', - 12, - 0.03888888889, - 0.3414634146, - 0.02994011976, - 1.176470588, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '55-64', - 12, - 0.03571428571, - 0.3093922652, - 0.04444444444, - 1.230769231, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Peace', - '55-64', - 7, - 0.04081632653, - 0.2469135802, - 0.02094240838, - 0.6451612903, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Freedom', - '55-64', - 6, - 0.03888888889, - 0.1676646707, - 0.02994011976, - 0.5882352941, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '65-74', - 11, - 0.03571428571, - 0.323699422, - 0.04444444444, - 1.230769231, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Peace', - '65-74', - 9, - 0.0306122449, - 0.2068965517, - 0.02094240838, - 0.7741935484, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Freedom', - '65-74', - 6, - 0.03333333333, - 0.1898734177, - 0.02994011976, - 0.7352941176, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '75+', - 2, - 0.04081632653, - 0.1777777778, - 0.04444444444, - 0.7692307692, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Peace', - '75+', - 2, - 0.0306122449, - 0.1886792453, - 0.02094240838, - 0.6451612903, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Freedom', - '75+', - 1, - 0.02222222222, - 0.064, - 0.02994011976, - 0.2941176471, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '15-24', - 1, - 0.0306122449, - 0.03225806452, - 0.03333333333, - 0.1333333333, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Peace', - '15-24', - 12, - 0.03571428571, - 0.2692307692, - 0.03664921466, - 1.244444444, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Freedom', - '15-24', - 7, - 0.03888888889, - 0.1955307263, - 0.03592814371, - 0.7317073171, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '25-34', - 8, - 0.04081632653, - 0.2926829268, - 0.03333333333, - 0.8, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Peace', - '25-34', - 11, - 0.04081632653, - 0.281938326, - 0.03664921466, - 1.244444444, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Freedom', - '25-34', - 7, - 0.03888888889, - 0.2243589744, - 0.03592814371, - 0.7317073171, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '35-44', - 8, - 0.0306122449, - 0.1704545455, - 0.03333333333, - 0.6666666667, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Peace', - '35-44', - 9, - 0.03571428571, - 0.2079207921, - 0.03664921466, - 0.9333333333, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Freedom', - '35-44', - 6, - 0.03888888889, - 0.1891891892, - 0.03592814371, - 0.7317073171, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '45-54', - 13, - 0.03571428571, - 0.270718232, - 0.03333333333, - 0.9333333333, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Peace', - '45-54', - 16, - 0.03571428571, - 0.358974359, - 0.03664921466, - 1.555555556, - 10, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Freedom', - '45-54', - 9, - 0.03888888889, - 0.2134146341, - 0.03592814371, - 0.7317073171, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '55-64', - 14, - 0.03571428571, - 0.3867403315, - 0.03333333333, - 1.333333333, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Peace', - '55-64', - 3, - 0.04081632653, - 0.0987654321, - 0.03664921466, - 0.3111111111, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Freedom', - '55-64', - 13, - 0.03888888889, - 0.4191616766, - 0.03592814371, - 1.463414634, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '65-74', - 7, - 0.03571428571, - 0.2832369942, - 0.03333333333, - 0.9333333333, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Peace', - '65-74', - 6, - 0.0306122449, - 0.2068965517, - 0.03664921466, - 0.9333333333, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Freedom', - '65-74', - 9, - 0.03333333333, - 0.3417721519, - 0.03592814371, - 1.317073171, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '75+', - 9, - 0.04081632653, - 0.32, - 0.03333333333, - 1.2, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Peace', - '75+', - 5, - 0.0306122449, - 0.1886792453, - 0.03664921466, - 0.7777777778, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Freedom', - '75+', - 2, - 0.02222222222, - 0.064, - 0.03592814371, - 0.2926829268, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '15-24', - 10, - 0.02255639098, - 0.237037037, - 0.04232804233, - 1.230769231, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '15-24', - 8, - 0.02380952381, - 0.2734375, - 0.04619332763, - 1.05, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '25-34', - 10, - 0.02255639098, - 0.2222222222, - 0.04232804233, - 1.230769231, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '25-34', - 10, - 0.02380952381, - 0.25, - 0.04619332763, - 1.2, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '35-44', - 6, - 0.03383458647, - 0.1678321678, - 0.04232804233, - 0.6153846154, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '35-44', - 11, - 0.03333333333, - 0.270718232, - 0.04619332763, - 1.05, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '45-54', - 16, - 0.02819548872, - 0.2694610778, - 0.04232804233, - 1.384615385, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '45-54', - 19, - 0.0380952381, - 0.4756756757, - 0.04619332763, - 1.65, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '55-64', - 12, - 0.03383458647, - 0.3068181818, - 0.04232804233, - 1.384615385, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '55-64', - 11, - 0.03333333333, - 0.3620689655, - 0.04619332763, - 1.35, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '65-74', - 9, - 0.03383458647, - 0.2427745665, - 0.04232804233, - 1.076923077, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '65-74', - 8, - 0.03333333333, - 0.2545454545, - 0.04619332763, - 0.9, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '75+', - 6, - 0.03947368421, - 0.2934131737, - 0.04232804233, - 1.076923077, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Freedom', - '75+', - 10, - 0.02857142857, - 0.5, - 0.04619332763, - 1.8, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '15-24', - 5, - 0.02255639098, - 0.1185185185, - 0.02645502646, - 0.5882352941, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '15-24', - 9, - 0.02380952381, - 0.2734375, - 0.05645851155, - 1.013157895, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '25-34', - 3, - 0.02255639098, - 0.08333333333, - 0.02645502646, - 0.4411764706, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '25-34', - 16, - 0.02380952381, - 0.375, - 0.05645851155, - 1.736842105, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '35-44', - 2, - 0.03383458647, - 0.08391608392, - 0.02645502646, - 0.2941176471, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '35-44', - 17, - 0.03333333333, - 0.4640883978, - 0.05645851155, - 1.736842105, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '45-54', - 10, - 0.02819548872, - 0.1796407186, - 0.02645502646, - 0.8823529412, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '45-54', - 23, - 0.0380952381, - 0.6486486486, - 0.05645851155, - 2.171052632, - 15, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '55-64', - 8, - 0.03383458647, - 0.2045454545, - 0.02645502646, - 0.8823529412, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '55-64', - 15, - 0.03333333333, - 0.4827586207, - 0.05645851155, - 1.736842105, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '65-74', - 8, - 0.03383458647, - 0.2080924855, - 0.02645502646, - 0.8823529412, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '65-74', - 18, - 0.03333333333, - 0.5515151515, - 0.05645851155, - 1.881578947, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '75+', - 5, - 0.03947368421, - 0.2934131737, - 0.02645502646, - 1.029411765, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Freedom', - '75+', - 4, - 0.02857142857, - 0.2083333333, - 0.05645851155, - 0.7236842105, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '15-24', - 5, - 0.02255639098, - 0.1481481481, - 0.04232804233, - 0.6779661017, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '15-24', - 2, - 0.02380952381, - 0.078125, - 0.02566295979, - 0.3333333333, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '25-34', - 18, - 0.02255639098, - 0.3333333333, - 0.04232804233, - 1.627118644, - 12, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '25-34', - 2, - 0.02380952381, - 0.03125, - 0.02566295979, - 0.1666666667, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '35-44', - 17, - 0.03383458647, - 0.4615384615, - 0.04232804233, - 1.491525424, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '35-44', - 9, - 0.03333333333, - 0.2320441989, - 0.02566295979, - 1, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '45-54', - 13, - 0.02819548872, - 0.2395209581, - 0.04232804233, - 1.084745763, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '45-54', - 8, - 0.0380952381, - 0.2594594595, - 0.02566295979, - 1, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '55-64', - 12, - 0.03383458647, - 0.2727272727, - 0.04232804233, - 1.084745763, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '55-64', - 13, - 0.03333333333, - 0.3218390805, - 0.02566295979, - 1.333333333, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '65-74', - 6, - 0.03383458647, - 0.1040462428, - 0.04232804233, - 0.406779661, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '65-74', - 10, - 0.03333333333, - 0.2121212121, - 0.02566295979, - 0.8333333333, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '75+', - 8, - 0.03947368421, - 0.502994012, - 0.04232804233, - 1.627118644, - 12, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Freedom', - '75+', - 1, - 0.02857142857, - 0.08333333333, - 0.02566295979, - 0.3333333333, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '15-24', - 2, - 0.02255639098, - 0.08888888889, - 0.02116402116, - 0.4444444444, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '15-24', - 0, - 0.02380952381, - 0, - 0.01026518392, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '25-34', - 1, - 0.02255639098, - 0.02777777778, - 0.02116402116, - 0.1481481481, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '25-34', - 1, - 0.02380952381, - 0.0625, - 0.01026518392, - 0.25, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '35-44', - 1, - 0.03383458647, - 0.08391608392, - 0.02116402116, - 0.2962962963, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '35-44', - 3, - 0.03333333333, - 0.1546961326, - 0.01026518392, - 0.5, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '45-54', - 3, - 0.02819548872, - 0.119760479, - 0.02116402116, - 0.5925925926, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '45-54', - 0, - 0.0380952381, - 0, - 0.01026518392, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '55-64', - 2, - 0.03383458647, - 0.1363636364, - 0.02116402116, - 0.5925925926, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '55-64', - 2, - 0.03333333333, - 0.1609195402, - 0.01026518392, - 0.5, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '65-74', - 4, - 0.03383458647, - 0.2427745665, - 0.02116402116, - 1.037037037, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '65-74', - 1, - 0.03333333333, - 0.04242424242, - 0.01026518392, - 0.125, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '75+', - 2, - 0.03947368421, - 0.251497006, - 0.02116402116, - 0.8888888889, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Freedom', - '75+', - 1, - 0.02857142857, - 0.2083333333, - 0.01026518392, - 0.625, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '15-24', - 9, - 0.02255639098, - 0.237037037, - 0.02116402116, - 1.066666667, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '15-24', - 9, - 0.02380952381, - 0.3125, - 0.05132591959, - 1.230769231, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '25-34', - 4, - 0.02255639098, - 0.05555555556, - 0.02116402116, - 0.2666666667, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '25-34', - 24, - 0.02380952381, - 0.46875, - 0.05132591959, - 2.307692308, - 15, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '35-44', - 5, - 0.03383458647, - 0.2097902098, - 0.02116402116, - 0.6666666667, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '35-44', - 8, - 0.03333333333, - 0.3093922652, - 0.05132591959, - 1.230769231, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '45-54', - 6, - 0.02819548872, - 0.119760479, - 0.02116402116, - 0.5333333333, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '45-54', - 10, - 0.0380952381, - 0.3027027027, - 0.05132591959, - 1.076923077, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '55-64', - 5, - 0.03383458647, - 0.1363636364, - 0.02116402116, - 0.5333333333, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '55-64', - 19, - 0.03333333333, - 0.5632183908, - 0.05132591959, - 2.153846154, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '65-74', - 10, - 0.03383458647, - 0.2427745665, - 0.02116402116, - 0.9333333333, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '65-74', - 11, - 0.03333333333, - 0.296969697, - 0.05132591959, - 1.076923077, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '75+', - 0, - 0.03947368421, - 0, - 0.02116402116, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Freedom', - '75+', - 3, - 0.02857142857, - 0.25, - 0.05132591959, - 0.9230769231, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '15-24', - 37, - 0.02255639098, - 0.2666666667, - 0.04761904762, - 1.396551724, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '15-24', - 47, - 0.02380952381, - 0.46875, - 0.04619332763, - 1.714285714, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '25-34', - 55, - 0.02255639098, - 0.2777777778, - 0.04761904762, - 1.551724138, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '25-34', - 57, - 0.02380952381, - 0.3125, - 0.04619332763, - 1.428571429, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '35-44', - 10, - 0.03383458647, - 0.2097902098, - 0.04761904762, - 0.775862069, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '35-44', - 13, - 0.03333333333, - 0.270718232, - 0.04619332763, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '45-54', - 11, - 0.02819548872, - 0.1796407186, - 0.04761904762, - 0.9310344828, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '45-54', - 6, - 0.0380952381, - 0.1297297297, - 0.04619332763, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '55-64', - 21, - 0.03383458647, - 0.3409090909, - 0.04761904762, - 1.551724138, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '55-64', - 9, - 0.03333333333, - 0.1609195402, - 0.04619332763, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '65-74', - 27, - 0.03383458647, - 0.3121387283, - 0.04761904762, - 1.396551724, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '65-74', - 42, - 0.03333333333, - 0.5939393939, - 0.04619332763, - 2, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '75+', - 20, - 0.03947368421, - 0.377245509, - 0.04761904762, - 1.396551724, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Freedom', - '75+', - 29, - 0.02857142857, - 0.5416666667, - 0.04619332763, - 1.857142857, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '15-24', - 6, - 0.02255639098, - 0.1185185185, - 0.04232804233, - 0.5818181818, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '15-24', - 3, - 0.02380952381, - 0.078125, - 0.03592814371, - 0.3181818182, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '25-34', - 5, - 0.02255639098, - 0.1111111111, - 0.04232804233, - 0.5818181818, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '25-34', - 3, - 0.02380952381, - 0.09375, - 0.03592814371, - 0.4772727273, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '35-44', - 15, - 0.03383458647, - 0.4195804196, - 0.04232804233, - 1.454545455, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '35-44', - 12, - 0.03333333333, - 0.3093922652, - 0.03592814371, - 1.272727273, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '45-54', - 14, - 0.02819548872, - 0.2395209581, - 0.04232804233, - 1.163636364, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '45-54', - 21, - 0.0380952381, - 0.5189189189, - 0.03592814371, - 1.909090909, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '55-64', - 13, - 0.03383458647, - 0.3409090909, - 0.04232804233, - 1.454545455, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '55-64', - 10, - 0.03333333333, - 0.2816091954, - 0.03592814371, - 1.113636364, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '65-74', - 11, - 0.03383458647, - 0.3121387283, - 0.04232804233, - 1.309090909, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '65-74', - 9, - 0.03333333333, - 0.3393939394, - 0.03592814371, - 1.272727273, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '75+', - 11, - 0.03947368421, - 0.4191616766, - 0.04232804233, - 1.454545455, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Freedom', - '75+', - 4, - 0.02857142857, - 0.1666666667, - 0.03592814371, - 0.6363636364, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '15-24', - 8, - 0.02255639098, - 0.2074074074, - 0.02645502646, - 0.9459459459, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '15-24', - 4, - 0.02380952381, - 0.1171875, - 0.04106073567, - 0.4615384615, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '25-34', - 7, - 0.02255639098, - 0.1388888889, - 0.02645502646, - 0.6756756757, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '25-34', - 13, - 0.02380952381, - 0.28125, - 0.04106073567, - 1.384615385, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '35-44', - 5, - 0.03383458647, - 0.1258741259, - 0.02645502646, - 0.4054054054, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '35-44', - 13, - 0.03333333333, - 0.3093922652, - 0.04106073567, - 1.230769231, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '45-54', - 7, - 0.02819548872, - 0.1497005988, - 0.02645502646, - 0.6756756757, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '45-54', - 16, - 0.0380952381, - 0.5621621622, - 0.04106073567, - 2, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '55-64', - 6, - 0.03383458647, - 0.1704545455, - 0.02645502646, - 0.6756756757, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '55-64', - 17, - 0.03333333333, - 0.4827586207, - 0.04106073567, - 1.846153846, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '65-74', - 10, - 0.03383458647, - 0.2427745665, - 0.02645502646, - 0.9459459459, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '65-74', - 3, - 0.03333333333, - 0.1272727273, - 0.04106073567, - 0.4615384615, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '75+', - 5, - 0.03947368421, - 0.2095808383, - 0.02645502646, - 0.6756756757, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Freedom', - '75+', - 3, - 0.02857142857, - 0.1666666667, - 0.04106073567, - 0.6153846154, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '15-24', - 2, - 0.02255639098, - 0.05925925926, - 0.02116402116, - 0.2962962963, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '15-24', - 2, - 0.02380952381, - 0.078125, - 0.005132591959, - 0.2, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '25-34', - 6, - 0.02255639098, - 0.1111111111, - 0.02116402116, - 0.5925925926, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '25-34', - 1, - 0.02380952381, - 0.03125, - 0.005132591959, - 0.1, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '35-44', - 4, - 0.03383458647, - 0.1258741259, - 0.02116402116, - 0.4444444444, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '35-44', - 1, - 0.03333333333, - 0.03867403315, - 0.005132591959, - 0.1, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '45-54', - 7, - 0.02819548872, - 0.1497005988, - 0.02116402116, - 0.7407407407, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '45-54', - 5, - 0.0380952381, - 0.1297297297, - 0.005132591959, - 0.3, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '55-64', - 9, - 0.03383458647, - 0.2386363636, - 0.02116402116, - 1.037037037, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '55-64', - 1, - 0.03333333333, - 0.04022988506, - 0.005132591959, - 0.1, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '65-74', - 3, - 0.03383458647, - 0.06936416185, - 0.02116402116, - 0.2962962963, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '65-74', - 1, - 0.03333333333, - 0.04242424242, - 0.005132591959, - 0.1, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '75+', - 4, - 0.03947368421, - 0.1676646707, - 0.02116402116, - 0.5925925926, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Freedom', - '75+', - 1, - 0.02857142857, - 0.04166666667, - 0.005132591959, - 0.1, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '15-24', - 3, - 0.02255639098, - 0.08888888889, - 0.01058201058, - 0.4, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '15-24', - 3, - 0.02380952381, - 0.15625, - 0.02053036784, - 0.4848484848, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '25-34', - 4, - 0.02255639098, - 0.08333333333, - 0.01058201058, - 0.4, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '25-34', - 3, - 0.02380952381, - 0.09375, - 0.02053036784, - 0.3636363636, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '35-44', - 2, - 0.03383458647, - 0.08391608392, - 0.01058201058, - 0.2666666667, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '35-44', - 6, - 0.03333333333, - 0.1546961326, - 0.02053036784, - 0.4848484848, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '45-54', - 5, - 0.02819548872, - 0.08982035928, - 0.01058201058, - 0.4, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '45-54', - 9, - 0.0380952381, - 0.2594594595, - 0.02053036784, - 0.7272727273, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '55-64', - 4, - 0.03383458647, - 0.1363636364, - 0.01058201058, - 0.5333333333, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '55-64', - 6, - 0.03333333333, - 0.2413793103, - 0.02053036784, - 0.7272727273, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '65-74', - 0, - 0.03383458647, - 0, - 0.01058201058, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '65-74', - 2, - 0.03333333333, - 0.1272727273, - 0.02053036784, - 0.3636363636, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '75+', - 0, - 0.03947368421, - 0, - 0.01058201058, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Freedom', - '75+', - 3, - 0.02857142857, - 0.2916666667, - 0.02053036784, - 0.8484848485, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '15-24', - 0, - 0.02255639098, - 0, - 0.04232804233, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '15-24', - 0, - 0.02380952381, - 0, - 0.02053036784, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '25-34', - 7, - 0.02255639098, - 0.1666666667, - 0.04232804233, - 0.8727272727, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '25-34', - 7, - 0.02380952381, - 0.15625, - 0.02053036784, - 0.7407407407, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '35-44', - 7, - 0.03383458647, - 0.1678321678, - 0.04232804233, - 0.5818181818, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '35-44', - 8, - 0.03333333333, - 0.1933701657, - 0.02053036784, - 0.7407407407, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '45-54', - 17, - 0.02819548872, - 0.3293413174, - 0.04232804233, - 1.6, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '45-54', - 6, - 0.0380952381, - 0.1297297297, - 0.02053036784, - 0.4444444444, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '55-64', - 19, - 0.03383458647, - 0.4090909091, - 0.04232804233, - 1.745454545, - 12, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '55-64', - 10, - 0.03333333333, - 0.2816091954, - 0.02053036784, - 1.037037037, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '65-74', - 17, - 0.03383458647, - 0.3815028902, - 0.04232804233, - 1.6, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '65-74', - 7, - 0.03333333333, - 0.2121212121, - 0.02053036784, - 0.7407407407, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '75+', - 11, - 0.03947368421, - 0.4610778443, - 0.04232804233, - 1.6, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Freedom', - '75+', - 2, - 0.02857142857, - 0.08333333333, - 0.02053036784, - 0.2962962963, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '15-24', - 1, - 0.02255639098, - 0, - 0.01058201058, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '15-24', - 6, - 0.02380952381, - 0.1953125, - 0.05132591959, - 0.7042253521, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '25-34', - 0, - 0.02255639098, - 0, - 0.01058201058, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '25-34', - 16, - 0.02380952381, - 0.4375, - 0.05132591959, - 1.971830986, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '35-44', - 5, - 0.03383458647, - 0.1258741259, - 0.01058201058, - 0.5, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '35-44', - 19, - 0.03333333333, - 0.5027624309, - 0.05132591959, - 1.830985915, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '45-54', - 0, - 0.02819548872, - 0, - 0.01058201058, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '45-54', - 13, - 0.0380952381, - 0.3891891892, - 0.05132591959, - 1.267605634, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '55-64', - 4, - 0.03383458647, - 0.1363636364, - 0.01058201058, - 0.6666666667, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '55-64', - 5, - 0.03333333333, - 0.1609195402, - 0.05132591959, - 0.5633802817, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '65-74', - 3, - 0.03383458647, - 0.06936416185, - 0.01058201058, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '65-74', - 13, - 0.03333333333, - 0.4666666667, - 0.05132591959, - 1.549295775, - 11, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '75+', - 3, - 0.03947368421, - 0.125748503, - 0.01058201058, - 0.5, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Freedom', - '75+', - 14, - 0.02857142857, - 0.625, - 0.05132591959, - 2.112676056, - 15, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '15-24', - 7, - 0.02255639098, - 0.1481481481, - 0.03703703704, - 0.7446808511, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '15-24', - 4, - 0.02380952381, - 0.1171875, - 0.01026518392, - 0.4615384615, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '25-34', - 13, - 0.02255639098, - 0.2222222222, - 0.03703703704, - 1.191489362, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '25-34', - 2, - 0.02380952381, - 0.03125, - 0.01026518392, - 0.1538461538, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '35-44', - 14, - 0.03383458647, - 0.3776223776, - 0.03703703704, - 1.340425532, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '35-44', - 3, - 0.03333333333, - 0.0773480663, - 0.01026518392, - 0.3076923077, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '45-54', - 15, - 0.02819548872, - 0.2994011976, - 0.03703703704, - 1.489361702, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '45-54', - 6, - 0.0380952381, - 0.172972973, - 0.01026518392, - 0.6153846154, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '55-64', - 14, - 0.03383458647, - 0.2727272727, - 0.03703703704, - 1.191489362, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '55-64', - 5, - 0.03333333333, - 0.1206896552, - 0.01026518392, - 0.4615384615, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '65-74', - 12, - 0.03383458647, - 0.2427745665, - 0.03703703704, - 1.042553191, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '65-74', - 0, - 0.03333333333, - 0, - 0.01026518392, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '75+', - 0, - 0.03947368421, - 0, - 0.03703703704, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Freedom', - '75+', - 0, - 0.02857142857, - 0, - 0.01026518392, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '15-24', - 9, - 0.02255639098, - 0.2074074074, - 0.03703703704, - 1.139534884, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '15-24', - 6, - 0.02380952381, - 0.1953125, - 0.02566295979, - 0.6578947368, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '25-34', - 4, - 0.02255639098, - 0.08333333333, - 0.03703703704, - 0.488372093, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '25-34', - 9, - 0.02380952381, - 0.25, - 0.02566295979, - 1.052631579, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '35-44', - 13, - 0.03383458647, - 0.2937062937, - 0.03703703704, - 1.139534884, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '35-44', - 10, - 0.03333333333, - 0.2320441989, - 0.02566295979, - 0.7894736842, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '45-54', - 9, - 0.02819548872, - 0.2095808383, - 0.03703703704, - 1.139534884, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '45-54', - 7, - 0.0380952381, - 0.2162162162, - 0.02566295979, - 0.6578947368, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '55-64', - 12, - 0.03383458647, - 0.2727272727, - 0.03703703704, - 1.302325581, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '55-64', - 5, - 0.03333333333, - 0.1206896552, - 0.02566295979, - 0.3947368421, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '65-74', - 12, - 0.03383458647, - 0.2774566474, - 0.03703703704, - 1.302325581, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '65-74', - 9, - 0.03333333333, - 0.296969697, - 0.02566295979, - 0.9210526316, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '75+', - 2, - 0.03947368421, - 0.125748503, - 0.03703703704, - 0.488372093, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Freedom', - '75+', - 3, - 0.02857142857, - 0.1666666667, - 0.02566295979, - 0.5263157895, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '15-24', - 13, - 0.02255639098, - 0.2666666667, - 0.04761904762, - 1.372881356, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '15-24', - 9, - 0.02380952381, - 0.2734375, - 0.04106073567, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '25-34', - 15, - 0.02255639098, - 0.2777777778, - 0.04761904762, - 1.525423729, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '25-34', - 8, - 0.02380952381, - 0.1875, - 0.04106073567, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '35-44', - 20, - 0.03383458647, - 0.3776223776, - 0.04761904762, - 1.372881356, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '35-44', - 12, - 0.03333333333, - 0.1933701657, - 0.04106073567, - 0.7142857143, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '45-54', - 11, - 0.02819548872, - 0.2095808383, - 0.04761904762, - 1.06779661, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '45-54', - 16, - 0.0380952381, - 0.4324324324, - 0.04106073567, - 1.428571429, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '55-64', - 11, - 0.03383458647, - 0.3068181818, - 0.04761904762, - 1.372881356, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '55-64', - 15, - 0.03333333333, - 0.4827586207, - 0.04106073567, - 1.714285714, - 12, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '65-74', - 9, - 0.03383458647, - 0.2427745665, - 0.04761904762, - 1.06779661, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '65-74', - 9, - 0.03333333333, - 0.296969697, - 0.04106073567, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '75+', - 5, - 0.03947368421, - 0.3353293413, - 0.04761904762, - 1.220338983, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Freedom', - '75+', - 5, - 0.02857142857, - 0.375, - 0.04106073567, - 1.285714286, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '15-24', - 9, - 0.02255639098, - 0.2666666667, - 0.03174603175, - 1.08, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '15-24', - 1, - 0.02380952381, - 0.0390625, - 0.01539777588, - 0.15, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '25-34', - 8, - 0.02255639098, - 0.1666666667, - 0.03174603175, - 0.72, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '25-34', - 4, - 0.02380952381, - 0.09375, - 0.01539777588, - 0.45, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '35-44', - 9, - 0.03383458647, - 0.2937062937, - 0.03174603175, - 0.84, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '35-44', - 4, - 0.03333333333, - 0.1160220994, - 0.01539777588, - 0.45, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '45-54', - 10, - 0.02819548872, - 0.1796407186, - 0.03174603175, - 0.72, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '45-54', - 8, - 0.0380952381, - 0.2162162162, - 0.01539777588, - 0.75, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '55-64', - 5, - 0.03383458647, - 0.1363636364, - 0.03174603175, - 0.48, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '55-64', - 5, - 0.03333333333, - 0.1609195402, - 0.01539777588, - 0.6, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '65-74', - 7, - 0.03383458647, - 0.1387283237, - 0.03174603175, - 0.48, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '65-74', - 6, - 0.03333333333, - 0.1696969697, - 0.01539777588, - 0.6, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '75+', - 12, - 0.03947368421, - 0.5868263473, - 0.03174603175, - 1.68, - 14, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Freedom', - '75+', - 0, - 0.02857142857, - 0, - 0.01539777588, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '15-24', - 15, - 0.02255639098, - 0.3259259259, - 0.02645502646, - 1.486486486, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '15-24', - 2, - 0.02380952381, - 0.078125, - 0.01539777588, - 0.3333333333, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '25-34', - 3, - 0.02255639098, - 0.05555555556, - 0.02645502646, - 0.2702702703, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '25-34', - 6, - 0.02380952381, - 0.15625, - 0.01539777588, - 0.8333333333, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '35-44', - 4, - 0.03383458647, - 0.1258741259, - 0.02645502646, - 0.4054054054, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '35-44', - 5, - 0.03333333333, - 0.1546961326, - 0.01539777588, - 0.6666666667, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '45-54', - 12, - 0.02819548872, - 0.1796407186, - 0.02645502646, - 0.8108108108, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '45-54', - 7, - 0.0380952381, - 0.172972973, - 0.01539777588, - 0.6666666667, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '55-64', - 4, - 0.03383458647, - 0.1022727273, - 0.02645502646, - 0.4054054054, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '55-64', - 2, - 0.03333333333, - 0.08045977011, - 0.01539777588, - 0.3333333333, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '65-74', - 6, - 0.03383458647, - 0.1734104046, - 0.02645502646, - 0.6756756757, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '65-74', - 1, - 0.03333333333, - 0.04242424242, - 0.01539777588, - 0.1666666667, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '75+', - 9, - 0.03947368421, - 0.2934131737, - 0.02645502646, - 0.9459459459, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Freedom', - '75+', - 0, - 0.02857142857, - 0, - 0.01539777588, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '15-24', - 2, - 0.02255639098, - 0.08888888889, - 0.01058201058, - 0.375, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '15-24', - 1, - 0.02380952381, - 0.078125, - 0.03079555175, - 0.3076923077, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '25-34', - 1, - 0.02255639098, - 0.05555555556, - 0.01058201058, - 0.25, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '25-34', - 5, - 0.02380952381, - 0.1875, - 0.03079555175, - 0.9230769231, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '35-44', - 1, - 0.03383458647, - 0.04195804196, - 0.01058201058, - 0.125, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '35-44', - 2, - 0.03333333333, - 0.1160220994, - 0.03079555175, - 0.4615384615, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '45-54', - 1, - 0.02819548872, - 0.05988023952, - 0.01058201058, - 0.25, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '45-54', - 8, - 0.0380952381, - 0.3891891892, - 0.03079555175, - 1.384615385, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '55-64', - 1, - 0.03383458647, - 0.03409090909, - 0.01058201058, - 0.125, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '55-64', - 6, - 0.03333333333, - 0.3620689655, - 0.03079555175, - 1.384615385, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '65-74', - 2, - 0.03383458647, - 0.1387283237, - 0.01058201058, - 0.5, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '65-74', - 4, - 0.03333333333, - 0.2545454545, - 0.03079555175, - 0.9230769231, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '75+', - 1, - 0.03947368421, - 0.125748503, - 0.01058201058, - 0.375, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Freedom', - '75+', - 1, - 0.02857142857, - 0.1666666667, - 0.03079555175, - 0.6153846154, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '15-24', - 3, - 0.02255639098, - 0.08888888889, - 0.02645502646, - 0.5172413793, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '15-24', - 7, - 0.02380952381, - 0.234375, - 0.01539777588, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '25-34', - 7, - 0.02255639098, - 0.1388888889, - 0.02645502646, - 0.8620689655, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '25-34', - 4, - 0.02380952381, - 0.09375, - 0.01539777588, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '35-44', - 2, - 0.03383458647, - 0.04195804196, - 0.02645502646, - 0.1724137931, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '35-44', - 6, - 0.03333333333, - 0.1546961326, - 0.01539777588, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '45-54', - 10, - 0.02819548872, - 0.2395209581, - 0.02645502646, - 1.379310345, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '45-54', - 4, - 0.0380952381, - 0.1297297297, - 0.01539777588, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '55-64', - 8, - 0.03383458647, - 0.2045454545, - 0.02645502646, - 1.034482759, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '55-64', - 4, - 0.03333333333, - 0.1206896552, - 0.01539777588, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '65-74', - 14, - 0.03383458647, - 0.2080924855, - 0.02645502646, - 1.034482759, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '65-74', - 4, - 0.03333333333, - 0.08484848485, - 0.01539777588, - 0.2857142857, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '75+', - 0, - 0.03947368421, - 0, - 0.02645502646, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Freedom', - '75+', - 0, - 0.02857142857, - 0, - 0.01539777588, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '15-24', - 0, - 0.02255639098, - 0, - 0.02116402116, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '15-24', - 8, - 0.02380952381, - 0.5078125, - 0.03079555175, - 2.108108108, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '25-34', - 5, - 0.02255639098, - 0.25, - 0.02116402116, - 1.161290323, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '25-34', - 3, - 0.02380952381, - 0.125, - 0.03079555175, - 0.6486486486, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '35-44', - 1, - 0.03383458647, - 0.08391608392, - 0.02116402116, - 0.2580645161, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '35-44', - 6, - 0.03333333333, - 0.3480662983, - 0.03079555175, - 1.459459459, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '45-54', - 4, - 0.02819548872, - 0.1796407186, - 0.02116402116, - 0.7741935484, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '45-54', - 4, - 0.0380952381, - 0.2594594595, - 0.03079555175, - 0.972972973, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '55-64', - 2, - 0.03383458647, - 0.1022727273, - 0.02116402116, - 0.3870967742, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '55-64', - 2, - 0.03333333333, - 0.08045977011, - 0.03079555175, - 0.3243243243, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '65-74', - 2, - 0.03383458647, - 0.1040462428, - 0.02116402116, - 0.3870967742, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '65-74', - 1, - 0.03333333333, - 0.04242424242, - 0.03079555175, - 0.1621621622, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '75+', - 3, - 0.03947368421, - 0.3353293413, - 0.02116402116, - 1.032258065, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Freedom', - '75+', - 1, - 0.02857142857, - 0.08333333333, - 0.03079555175, - 0.3243243243, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '15-24', - 0, - 0.02255639098, - 0, - 0.03174603175, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '15-24', - 6, - 0.02380952381, - 0.1953125, - 0.06672369547, - 0.7222222222, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '25-34', - 3, - 0.02255639098, - 0.08333333333, - 0.03174603175, - 0.5294117647, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '25-34', - 9, - 0.02380952381, - 0.25, - 0.06672369547, - 1.155555556, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '35-44', - 12, - 0.03383458647, - 0.2517482517, - 0.03174603175, - 1.058823529, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '35-44', - 26, - 0.03333333333, - 0.5414364641, - 0.06672369547, - 2.022222222, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '45-54', - 10, - 0.02819548872, - 0.1497005988, - 0.03174603175, - 0.8823529412, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '45-54', - 31, - 0.0380952381, - 0.6918918919, - 0.06672369547, - 2.311111111, - 16, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '55-64', - 9, - 0.03383458647, - 0.2045454545, - 0.03174603175, - 1.058823529, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '55-64', - 22, - 0.03333333333, - 0.5632183908, - 0.06672369547, - 2.022222222, - 14, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '65-74', - 32, - 0.03383458647, - 0.4855491329, - 0.03174603175, - 2.470588235, - 14, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '65-74', - 37, - 0.03333333333, - 0.6363636364, - 0.06672369547, - 2.166666667, - 15, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '75+', - 0, - 0.03947368421, - 0, - 0.03174603175, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Freedom', - '75+', - 2, - 0.02857142857, - 0.75, - 0.06672369547, - 2.6, - 18, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '15-24', - 1, - 0.02255639098, - 0.02962962963, - 0.02645502646, - 0.1351351351, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '15-24', - 7, - 0.02380952381, - 0.234375, - 0.03592814371, - 0.8936170213, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '25-34', - 10, - 0.02255639098, - 0.1944444444, - 0.02645502646, - 0.9459459459, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '25-34', - 11, - 0.02380952381, - 0.21875, - 0.03592814371, - 1.042553191, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '35-44', - 11, - 0.03383458647, - 0.2517482517, - 0.02645502646, - 0.8108108108, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '35-44', - 19, - 0.03333333333, - 0.3867403315, - 0.03592814371, - 1.489361702, - 10, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '45-54', - 6, - 0.02819548872, - 0.119760479, - 0.02645502646, - 0.5405405405, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '45-54', - 11, - 0.0380952381, - 0.3891891892, - 0.03592814371, - 1.340425532, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '55-64', - 9, - 0.03383458647, - 0.2045454545, - 0.02645502646, - 0.8108108108, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '55-64', - 6, - 0.03333333333, - 0.1609195402, - 0.03592814371, - 0.5957446809, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '65-74', - 11, - 0.03383458647, - 0.3121387283, - 0.02645502646, - 1.216216216, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '65-74', - 8, - 0.03333333333, - 0.2545454545, - 0.03592814371, - 0.8936170213, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '75+', - 2, - 0.03947368421, - 0.1676646707, - 0.02645502646, - 0.5405405405, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Freedom', - '75+', - 3, - 0.02857142857, - 0.2083333333, - 0.03592814371, - 0.7446808511, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '15-24', - 9, - 0.02255639098, - 0.2666666667, - 0.02116402116, - 1.161290323, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '15-24', - 5, - 0.02380952381, - 0.1953125, - 0.01539777588, - 0.7142857143, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '25-34', - 1, - 0.02255639098, - 0.02777777778, - 0.02116402116, - 0.1290322581, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '25-34', - 2, - 0.02380952381, - 0.0625, - 0.01539777588, - 0.2857142857, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '35-44', - 5, - 0.03383458647, - 0.1258741259, - 0.02116402116, - 0.3870967742, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '35-44', - 6, - 0.03333333333, - 0.1546961326, - 0.01539777588, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '45-54', - 3, - 0.02819548872, - 0.05988023952, - 0.02116402116, - 0.2580645161, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '45-54', - 4, - 0.0380952381, - 0.1297297297, - 0.01539777588, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '55-64', - 6, - 0.03383458647, - 0.1363636364, - 0.02116402116, - 0.5161290323, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '55-64', - 0, - 0.03333333333, - 0, - 0.01539777588, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '65-74', - 4, - 0.03383458647, - 0.1040462428, - 0.02116402116, - 0.3870967742, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '65-74', - 6, - 0.03333333333, - 0.1696969697, - 0.01539777588, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '75+', - 7, - 0.03947368421, - 0.377245509, - 0.02116402116, - 1.161290323, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Freedom', - '75+', - 2, - 0.02857142857, - 0.125, - 0.01539777588, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '15-24', - 10, - 0.02255639098, - 0.237037037, - 0.03174603175, - 1.170731707, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '15-24', - 3, - 0.02380952381, - 0.078125, - 0.01539777588, - 0.3, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '25-34', - 6, - 0.02255639098, - 0.1111111111, - 0.03174603175, - 0.5853658537, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '25-34', - 4, - 0.02380952381, - 0.09375, - 0.01539777588, - 0.45, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '35-44', - 15, - 0.03383458647, - 0.3356643357, - 0.03174603175, - 1.170731707, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '35-44', - 7, - 0.03333333333, - 0.1546961326, - 0.01539777588, - 0.6, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '45-54', - 5, - 0.02819548872, - 0.119760479, - 0.03174603175, - 0.5853658537, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '45-54', - 5, - 0.0380952381, - 0.172972973, - 0.01539777588, - 0.6, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '55-64', - 8, - 0.03383458647, - 0.1704545455, - 0.03174603175, - 0.7317073171, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '55-64', - 4, - 0.03333333333, - 0.1206896552, - 0.01539777588, - 0.45, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '65-74', - 6, - 0.03383458647, - 0.1387283237, - 0.03174603175, - 0.5853658537, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '65-74', - 5, - 0.03333333333, - 0.1696969697, - 0.01539777588, - 0.6, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '75+', - 3, - 0.03947368421, - 0.3353293413, - 0.03174603175, - 1.170731707, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Freedom', - '75+', - 0, - 0.02857142857, - 0, - 0.01539777588, - 0, - 0, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '15-24', - 3, - 0.02255639098, - 0.08888888889, - 0.04761904762, - 0.45, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '15-24', - 9, - 0.02380952381, - 0.2734375, - 0.04619332763, - 1.06779661, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '25-34', - 15, - 0.02255639098, - 0.25, - 0.04761904762, - 1.35, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '25-34', - 12, - 0.02380952381, - 0.21875, - 0.04619332763, - 1.06779661, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '35-44', - 13, - 0.03383458647, - 0.3776223776, - 0.04761904762, - 1.35, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '35-44', - 13, - 0.03333333333, - 0.3480662983, - 0.04619332763, - 1.372881356, - 9, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '45-54', - 17, - 0.02819548872, - 0.3293413174, - 0.04761904762, - 1.65, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '45-54', - 12, - 0.0380952381, - 0.3027027027, - 0.04619332763, - 1.06779661, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '55-64', - 8, - 0.03383458647, - 0.2045454545, - 0.04761904762, - 0.9, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '55-64', - 12, - 0.03333333333, - 0.3218390805, - 0.04619332763, - 1.220338983, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '65-74', - 16, - 0.03383458647, - 0.3815028902, - 0.04761904762, - 1.65, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '65-74', - 20, - 0.03333333333, - 0.5515151515, - 0.04619332763, - 1.983050847, - 13, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '75+', - 13, - 0.03947368421, - 0.4610778443, - 0.04761904762, - 1.65, - 11, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Freedom', - '75+', - 9, - 0.02857142857, - 0.3333333333, - 0.04619332763, - 1.220338983, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '15-24', - 6, - 0.02255639098, - 0.1481481481, - 0.04232804233, - 0.7407407407, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '15-24', - 6, - 0.02380952381, - 0.1953125, - 0.03079555175, - 0.6976744186, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '25-34', - 13, - 0.02255639098, - 0.2222222222, - 0.04232804233, - 1.185185185, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '25-34', - 10, - 0.02380952381, - 0.1875, - 0.03079555175, - 0.8372093023, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '35-44', - 11, - 0.03383458647, - 0.2937062937, - 0.04232804233, - 1.037037037, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '35-44', - 13, - 0.03333333333, - 0.3093922652, - 0.03079555175, - 1.11627907, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '45-54', - 11, - 0.02819548872, - 0.2694610778, - 0.04232804233, - 1.333333333, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '45-54', - 5, - 0.0380952381, - 0.1297297297, - 0.03079555175, - 0.4186046512, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '55-64', - 13, - 0.03383458647, - 0.3068181818, - 0.04232804233, - 1.333333333, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '55-64', - 9, - 0.03333333333, - 0.2413793103, - 0.03079555175, - 0.8372093023, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '65-74', - 10, - 0.03383458647, - 0.2427745665, - 0.04232804233, - 1.037037037, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '65-74', - 10, - 0.03333333333, - 0.296969697, - 0.03079555175, - 0.976744186, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '75+', - 6, - 0.03947368421, - 0.377245509, - 0.04232804233, - 1.333333333, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Freedom', - '75+', - 5, - 0.02857142857, - 0.3333333333, - 0.03079555175, - 1.11627907, - 8, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '15-24', - 8, - 0.02255639098, - 0.1481481481, - 0.03703703704, - 0.8333333333, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '15-24', - 2, - 0.02380952381, - 0.078125, - 0.02566295979, - 0.2857142857, - 2, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '25-34', - 11, - 0.02255639098, - 0.1666666667, - 0.03703703704, - 1, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '25-34', - 12, - 0.02380952381, - 0.21875, - 0.02566295979, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '35-44', - 7, - 0.03383458647, - 0.1678321678, - 0.03703703704, - 0.6666666667, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '35-44', - 11, - 0.03333333333, - 0.2320441989, - 0.02566295979, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '45-54', - 15, - 0.02819548872, - 0.2994011976, - 0.03703703704, - 1.666666667, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '45-54', - 7, - 0.0380952381, - 0.172972973, - 0.02566295979, - 0.5714285714, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '55-64', - 13, - 0.03383458647, - 0.2727272727, - 0.03703703704, - 1.333333333, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '55-64', - 10, - 0.03333333333, - 0.2816091954, - 0.02566295979, - 1, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '65-74', - 9, - 0.03383458647, - 0.2427745665, - 0.03703703704, - 1.166666667, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '65-74', - 8, - 0.03333333333, - 0.2545454545, - 0.02566295979, - 0.8571428571, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '75+', - 1, - 0.03947368421, - 0.08383233533, - 0.03703703704, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Freedom', - '75+', - 1, - 0.02857142857, - 0.125, - 0.02566295979, - 0.4285714286, - 3, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '15-24', - 5, - 0.02255639098, - 0.1185185185, - 0.02645502646, - 0.6060606061, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '15-24', - 7, - 0.02380952381, - 0.1953125, - 0.02566295979, - 0.7575757576, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '25-34', - 5, - 0.02255639098, - 0.08333333333, - 0.02645502646, - 0.4545454545, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '25-34', - 2, - 0.02380952381, - 0.03125, - 0.02566295979, - 0.1515151515, - 1, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '35-44', - 10, - 0.03383458647, - 0.2937062937, - 0.02645502646, - 1.060606061, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '35-44', - 10, - 0.03333333333, - 0.270718232, - 0.02566295979, - 1.060606061, - 7, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '45-54', - 2, - 0.02819548872, - 0.02994011976, - 0.02645502646, - 0.1515151515, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '45-54', - 9, - 0.0380952381, - 0.2162162162, - 0.02566295979, - 0.7575757576, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '55-64', - 10, - 0.03383458647, - 0.2386363636, - 0.02645502646, - 1.060606061, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '55-64', - 7, - 0.03333333333, - 0.2413793103, - 0.02566295979, - 0.9090909091, - 6, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '65-74', - 4, - 0.03383458647, - 0.1387283237, - 0.02645502646, - 0.6060606061, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '65-74', - 5, - 0.03333333333, - 0.2121212121, - 0.02566295979, - 0.7575757576, - 5, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '75+', - 7, - 0.03947368421, - 0.2934131737, - 0.02645502646, - 1.060606061, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Freedom', - '75+', - 4, - 0.02857142857, - 0.1666666667, - 0.02566295979, - 0.6060606061, - 4, - 0.729591836734694, - 0.447278911564626, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Peace', - '15-24', - 5, - 0.01890756303, - 0.1212121212, - 0.01530612245, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Peace', - '25-34', - 5, - 0.02521008403, - 0.1403508772, - 0.01530612245, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Peace', - '35-44', - 12, - 0.01890756303, - 0.2424242424, - 0.01530612245, - 1.142857143, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Peace', - '45-54', - 4, - 0.01260504202, - 0.05, - 0.01530612245, - 0.2857142857, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Peace', - '55-64', - 1, - 0.01260504202, - 0.02469135802, - 0.01530612245, - 0.1428571429, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Peace', - '65-74', - 0, - 0.01260504202, - 0, - 0.01530612245, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Peace', - '75+', - 2, - 0.006302521008, - 0.03773584906, - 0.01530612245, - 0.2857142857, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Peace', - '15-24', - 4, - 0.01890756303, - 0.09090909091, - 0.01020408163, - 0.375, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Peace', - '25-34', - 4, - 0.02521008403, - 0.1052631579, - 0.01020408163, - 0.375, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Peace', - '35-44', - 4, - 0.01890756303, - 0.09090909091, - 0.01020408163, - 0.375, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Peace', - '45-54', - 0, - 0.01260504202, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Peace', - '55-64', - 7, - 0.01260504202, - 0.1234567901, - 0.01020408163, - 0.625, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Peace', - '65-74', - 3, - 0.01260504202, - 0.05479452055, - 0.01020408163, - 0.25, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'BE', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Peace', - '15-24', - 4, - 0.01890756303, - 0.09090909091, - 0.01020408163, - 0.4615384615, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Peace', - '25-34', - 4, - 0.02521008403, - 0.1052631579, - 0.01020408163, - 0.4615384615, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Peace', - '35-44', - 3, - 0.01890756303, - 0.06060606061, - 0.01020408163, - 0.3076923077, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Peace', - '45-54', - 7, - 0.01260504202, - 0.1, - 0.01020408163, - 0.6153846154, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Peace', - '55-64', - 1, - 0.01260504202, - 0.02469135802, - 0.01020408163, - 0.1538461538, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Peace', - '65-74', - 0, - 0.01260504202, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'BG', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Peace', - '15-24', - 3, - 0.01890756303, - 0.1515151515, - 0.02040816327, - 0.8695652174, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Peace', - '25-34', - 6, - 0.02521008403, - 0.3157894737, - 0.02040816327, - 1.565217391, - 9, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Peace', - '35-44', - 0, - 0.01890756303, - 0, - 0.02040816327, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Peace', - '45-54', - 4, - 0.01260504202, - 0.125, - 0.02040816327, - 0.8695652174, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Peace', - '55-64', - 2, - 0.01260504202, - 0.07407407407, - 0.02040816327, - 0.5217391304, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Peace', - '65-74', - 0, - 0.01260504202, - 0.02739726027, - 0.02040816327, - 0.1739130435, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CY', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.02040816327, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Peace', - '15-24', - 4, - 0.01890756303, - 0.09090909091, - 0.01020408163, - 0.375, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Peace', - '25-34', - 6, - 0.02521008403, - 0.1403508772, - 0.01020408163, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Peace', - '35-44', - 1, - 0.01890756303, - 0.0303030303, - 0.01020408163, - 0.125, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Peace', - '45-54', - 4, - 0.01260504202, - 0.075, - 0.01020408163, - 0.375, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Peace', - '55-64', - 5, - 0.01260504202, - 0.0987654321, - 0.01020408163, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Peace', - '65-74', - 1, - 0.01260504202, - 0.02739726027, - 0.01020408163, - 0.125, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'CZ', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Peace', - '15-24', - 14, - 0.01890756303, - 0.1212121212, - 0.01020408163, - 0.4705882353, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Peace', - '25-34', - 11, - 0.02521008403, - 0.0701754386, - 0.01020408163, - 0.2352941176, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Peace', - '35-44', - 3, - 0.01890756303, - 0.06060606061, - 0.01020408163, - 0.2352941176, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Peace', - '45-54', - 3, - 0.01260504202, - 0.05, - 0.01020408163, - 0.2352941176, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Peace', - '55-64', - 9, - 0.01260504202, - 0.0987654321, - 0.01020408163, - 0.4705882353, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Peace', - '65-74', - 6, - 0.01260504202, - 0.05479452055, - 0.01020408163, - 0.2352941176, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'DE', - 'Peace', - '75+', - 3, - 0.006302521008, - 0.01886792453, - 0.01020408163, - 0.1176470588, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Peace', - '15-24', - 1, - 0.01890756303, - 0.0303030303, - 0.01530612245, - 0.125, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Peace', - '25-34', - 7, - 0.02521008403, - 0.2105263158, - 0.01530612245, - 0.75, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Peace', - '35-44', - 6, - 0.01890756303, - 0.1212121212, - 0.01530612245, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Peace', - '45-54', - 6, - 0.01260504202, - 0.1, - 0.01530612245, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Peace', - '55-64', - 7, - 0.01260504202, - 0.1234567901, - 0.01530612245, - 0.625, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Peace', - '65-74', - 4, - 0.01260504202, - 0.08219178082, - 0.01530612245, - 0.375, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'DK', - 'Peace', - '75+', - 2, - 0.006302521008, - 0.01886792453, - 0.01530612245, - 0.125, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Peace', - '15-24', - 7, - 0.01890756303, - 0.1818181818, - 0.02551020408, - 0.9090909091, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Peace', - '25-34', - 8, - 0.02521008403, - 0.2105263158, - 0.02551020408, - 0.9090909091, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Peace', - '35-44', - 11, - 0.01890756303, - 0.2121212121, - 0.02551020408, - 1.060606061, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Peace', - '45-54', - 2, - 0.01260504202, - 0.05, - 0.02551020408, - 0.303030303, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Peace', - '55-64', - 3, - 0.01260504202, - 0.04938271605, - 0.02551020408, - 0.303030303, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Peace', - '65-74', - 7, - 0.01260504202, - 0.1643835616, - 0.02551020408, - 0.9090909091, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'EE', - 'Peace', - '75+', - 3, - 0.006302521008, - 0.07547169811, - 0.02551020408, - 0.6060606061, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Peace', - '15-24', - 7, - 0.01890756303, - 0.2121212121, - 0.01020408163, - 1.166666667, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Peace', - '25-34', - 0, - 0.02521008403, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Peace', - '35-44', - 2, - 0.01890756303, - 0.0303030303, - 0.01020408163, - 0.1666666667, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Peace', - '45-54', - 6, - 0.01260504202, - 0.1, - 0.01020408163, - 0.6666666667, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Peace', - '55-64', - 0, - 0.01260504202, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Peace', - '65-74', - 0, - 0.01260504202, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'EL', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Peace', - '15-24', - 4, - 0.01890756303, - 0.1515151515, - 0.01020408163, - 0.625, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Peace', - '25-34', - 3, - 0.02521008403, - 0.0701754386, - 0.01020408163, - 0.25, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Peace', - '35-44', - 2, - 0.01890756303, - 0.0303030303, - 0.01020408163, - 0.125, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Peace', - '45-54', - 0, - 0.01260504202, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Peace', - '55-64', - 4, - 0.01260504202, - 0.0987654321, - 0.01020408163, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Peace', - '65-74', - 3, - 0.01260504202, - 0.1095890411, - 0.01020408163, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'ES', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Peace', - '15-24', - 0, - 0.01890756303, - 0, - 0.005102040816, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Peace', - '25-34', - 0, - 0.02521008403, - 0, - 0.005102040816, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Peace', - '35-44', - 5, - 0.01890756303, - 0.09090909091, - 0.005102040816, - 0.3333333333, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Peace', - '45-54', - 3, - 0.01260504202, - 0.05, - 0.005102040816, - 0.2222222222, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Peace', - '55-64', - 2, - 0.01260504202, - 0.02469135802, - 0.005102040816, - 0.1111111111, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Peace', - '65-74', - 5, - 0.01260504202, - 0.08219178082, - 0.005102040816, - 0.3333333333, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'FI', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.005102040816, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Peace', - '15-24', - 5, - 0.01890756303, - 0.1212121212, - 0.01530612245, - 0.6315789474, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Peace', - '25-34', - 5, - 0.02521008403, - 0.1403508772, - 0.01530612245, - 0.6315789474, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Peace', - '35-44', - 6, - 0.01890756303, - 0.1212121212, - 0.01530612245, - 0.6315789474, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Peace', - '45-54', - 4, - 0.01260504202, - 0.075, - 0.01530612245, - 0.4736842105, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Peace', - '55-64', - 3, - 0.01260504202, - 0.04938271605, - 0.01530612245, - 0.3157894737, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Peace', - '65-74', - 1, - 0.01260504202, - 0.02739726027, - 0.01530612245, - 0.1578947368, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'FR', - 'Peace', - '75+', - 1, - 0.006302521008, - 0.01886792453, - 0.01530612245, - 0.1578947368, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Peace', - '15-24', - 5, - 0.01890756303, - 0.1212121212, - 0.01020408163, - 0.5333333333, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Peace', - '25-34', - 4, - 0.02521008403, - 0.1052631579, - 0.01020408163, - 0.4, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Peace', - '35-44', - 3, - 0.01890756303, - 0.06060606061, - 0.01020408163, - 0.2666666667, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Peace', - '45-54', - 3, - 0.01260504202, - 0.05, - 0.01020408163, - 0.2666666667, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Peace', - '55-64', - 5, - 0.01260504202, - 0.07407407407, - 0.01020408163, - 0.4, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Peace', - '65-74', - 2, - 0.01260504202, - 0.02739726027, - 0.01020408163, - 0.1333333333, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'HR', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Peace', - '15-24', - 0, - 0.01890756303, - 0, - 0.01530612245, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Peace', - '25-34', - 7, - 0.02521008403, - 0.2105263158, - 0.01530612245, - 0.7826086957, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Peace', - '35-44', - 5, - 0.01890756303, - 0.09090909091, - 0.01530612245, - 0.3913043478, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Peace', - '45-54', - 6, - 0.01260504202, - 0.1, - 0.01530612245, - 0.5217391304, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Peace', - '55-64', - 7, - 0.01260504202, - 0.1234567901, - 0.01530612245, - 0.652173913, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Peace', - '65-74', - 2, - 0.01260504202, - 0.05479452055, - 0.01530612245, - 0.2608695652, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'HU', - 'Peace', - '75+', - 2, - 0.006302521008, - 0.05660377358, - 0.01530612245, - 0.3913043478, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Peace', - '15-24', - 9, - 0.01890756303, - 0.1818181818, - 0.02040816327, - 0.8275862069, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Peace', - '25-34', - 9, - 0.02521008403, - 0.2105263158, - 0.02040816327, - 0.8275862069, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Peace', - '35-44', - 7, - 0.01890756303, - 0.09090909091, - 0.02040816327, - 0.4137931034, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Peace', - '45-54', - 9, - 0.01260504202, - 0.15, - 0.02040816327, - 0.8275862069, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Peace', - '55-64', - 6, - 0.01260504202, - 0.0987654321, - 0.02040816327, - 0.5517241379, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Peace', - '65-74', - 1, - 0.01260504202, - 0.02739726027, - 0.02040816327, - 0.1379310345, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'IE', - 'Peace', - '75+', - 2, - 0.006302521008, - 0.05660377358, - 0.02040816327, - 0.4137931034, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Peace', - '15-24', - 1, - 0.01890756303, - 0.0303030303, - 0.005102040816, - 0.1111111111, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Peace', - '25-34', - 5, - 0.02521008403, - 0.1403508772, - 0.005102040816, - 0.4444444444, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Peace', - '35-44', - 2, - 0.01890756303, - 0.0303030303, - 0.005102040816, - 0.1111111111, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Peace', - '45-54', - 3, - 0.01260504202, - 0.05, - 0.005102040816, - 0.2222222222, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Peace', - '55-64', - 1, - 0.01260504202, - 0.02469135802, - 0.005102040816, - 0.1111111111, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Peace', - '65-74', - 0, - 0.01260504202, - 0, - 0.005102040816, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'IT', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.005102040816, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Peace', - '15-24', - 2, - 0.01890756303, - 0.0303030303, - 0.01530612245, - 0.1428571429, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Peace', - '25-34', - 11, - 0.02521008403, - 0.2807017544, - 0.01530612245, - 1.142857143, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Peace', - '35-44', - 4, - 0.01890756303, - 0.09090909091, - 0.01530612245, - 0.4285714286, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Peace', - '45-54', - 1, - 0.01260504202, - 0.025, - 0.01530612245, - 0.1428571429, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Peace', - '55-64', - 1, - 0.01260504202, - 0.02469135802, - 0.01530612245, - 0.1428571429, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Peace', - '65-74', - 4, - 0.01260504202, - 0.1095890411, - 0.01530612245, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LT', - 'Peace', - '75+', - 4, - 0.006302521008, - 0.05660377358, - 0.01530612245, - 0.4285714286, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Peace', - '15-24', - 2, - 0.01890756303, - 0.09090909091, - 0.01020408163, - 0.3333333333, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Peace', - '25-34', - 2, - 0.02521008403, - 0.1052631579, - 0.01020408163, - 0.3333333333, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Peace', - '35-44', - 1, - 0.01890756303, - 0.0303030303, - 0.01020408163, - 0.1111111111, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Peace', - '45-54', - 1, - 0.01260504202, - 0.05, - 0.01020408163, - 0.2222222222, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Peace', - '55-64', - 1, - 0.01260504202, - 0.04938271605, - 0.01020408163, - 0.2222222222, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Peace', - '65-74', - 2, - 0.01260504202, - 0.1095890411, - 0.01020408163, - 0.4444444444, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'LU', - 'Peace', - '75+', - 1, - 0.006302521008, - 0.05660377358, - 0.01020408163, - 0.3333333333, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Peace', - '15-24', - 5, - 0.01890756303, - 0.1212121212, - 0.03571428571, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Peace', - '25-34', - 16, - 0.02521008403, - 0.3859649123, - 0.03571428571, - 1.375, - 11, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Peace', - '35-44', - 9, - 0.01890756303, - 0.2121212121, - 0.03571428571, - 0.875, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Peace', - '45-54', - 6, - 0.01260504202, - 0.1, - 0.03571428571, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Peace', - '55-64', - 9, - 0.01260504202, - 0.1728395062, - 0.03571428571, - 0.875, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Peace', - '65-74', - 15, - 0.01260504202, - 0.1917808219, - 0.03571428571, - 0.875, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'LV', - 'Peace', - '75+', - 2, - 0.006302521008, - 0.3018867925, - 0.03571428571, - 2, - 16, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Peace', - '15-24', - 0, - 0.01890756303, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Peace', - '25-34', - 0, - 0.02521008403, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Peace', - '35-44', - 3, - 0.01890756303, - 0.1515151515, - 0.01020408163, - 0.9090909091, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Peace', - '45-54', - 4, - 0.01260504202, - 0.125, - 0.01020408163, - 0.9090909091, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Peace', - '55-64', - 0, - 0.01260504202, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Peace', - '65-74', - 0, - 0.01260504202, - 0, - 0.01020408163, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'MT', - 'Peace', - '75+', - 0, - 0.006302521008, - 0.01886792453, - 0.01020408163, - 0.1818181818, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Peace', - '15-24', - 3, - 0.01890756303, - 0.06060606061, - 0.01530612245, - 0.3529411765, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Peace', - '25-34', - 4, - 0.02521008403, - 0.1052631579, - 0.01530612245, - 0.5294117647, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Peace', - '35-44', - 9, - 0.01890756303, - 0.1515151515, - 0.01530612245, - 0.8823529412, - 5, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Peace', - '45-54', - 3, - 0.01260504202, - 0.025, - 0.01530612245, - 0.1764705882, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Peace', - '55-64', - 7, - 0.01260504202, - 0.0987654321, - 0.01530612245, - 0.7058823529, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Peace', - '65-74', - 5, - 0.01260504202, - 0.05479452055, - 0.01530612245, - 0.3529411765, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'NL', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.01530612245, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Peace', - '15-24', - 3, - 0.01890756303, - 0.06060606061, - 0.01020408163, - 0.3076923077, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Peace', - '25-34', - 2, - 0.02521008403, - 0.0701754386, - 0.01020408163, - 0.3076923077, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Peace', - '35-44', - 5, - 0.01890756303, - 0.09090909091, - 0.01020408163, - 0.4615384615, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Peace', - '45-54', - 2, - 0.01260504202, - 0.025, - 0.01020408163, - 0.1538461538, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Peace', - '55-64', - 2, - 0.01260504202, - 0.02469135802, - 0.01020408163, - 0.1538461538, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Peace', - '65-74', - 4, - 0.01260504202, - 0.08219178082, - 0.01020408163, - 0.4615384615, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'PL', - 'Peace', - '75+', - 1, - 0.006302521008, - 0.01886792453, - 0.01020408163, - 0.1538461538, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Peace', - '15-24', - 3, - 0.01890756303, - 0.06060606061, - 0.005102040816, - 0.2, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Peace', - '25-34', - 2, - 0.02521008403, - 0.0701754386, - 0.005102040816, - 0.2, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Peace', - '35-44', - 3, - 0.01890756303, - 0.06060606061, - 0.005102040816, - 0.2, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Peace', - '45-54', - 1, - 0.01260504202, - 0, - 0.005102040816, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Peace', - '55-64', - 1, - 0.01260504202, - 0.02469135802, - 0.005102040816, - 0.1, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Peace', - '65-74', - 2, - 0.01260504202, - 0.05479452055, - 0.005102040816, - 0.2, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'PT', - 'Peace', - '75+', - 1, - 0.006302521008, - 0.01886792453, - 0.005102040816, - 0.1, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Peace', - '15-24', - 14, - 0.01890756303, - 0.3636363636, - 0.04591836735, - 1.830508475, - 12, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Peace', - '25-34', - 13, - 0.02521008403, - 0.3157894737, - 0.04591836735, - 1.372881356, - 9, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Peace', - '35-44', - 12, - 0.01890756303, - 0.2121212121, - 0.04591836735, - 1.06779661, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Peace', - '45-54', - 9, - 0.01260504202, - 0.175, - 0.04591836735, - 1.06779661, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Peace', - '55-64', - 15, - 0.01260504202, - 0.2469135802, - 0.04591836735, - 1.525423729, - 10, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Peace', - '65-74', - 15, - 0.01260504202, - 0.2739726027, - 0.04591836735, - 1.525423729, - 10, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'RO', - 'Peace', - '75+', - 2, - 0.006302521008, - 0.07547169811, - 0.04591836735, - 0.6101694915, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Peace', - '15-24', - 9, - 0.01890756303, - 0.2121212121, - 0.02551020408, - 1.029411765, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Peace', - '25-34', - 4, - 0.02521008403, - 0.0701754386, - 0.02551020408, - 0.2941176471, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Peace', - '35-44', - 8, - 0.01890756303, - 0.1818181818, - 0.02551020408, - 0.8823529412, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Peace', - '45-54', - 6, - 0.01260504202, - 0.1, - 0.02551020408, - 0.5882352941, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Peace', - '55-64', - 3, - 0.01260504202, - 0.04938271605, - 0.02551020408, - 0.2941176471, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Peace', - '65-74', - 9, - 0.01260504202, - 0.1643835616, - 0.02551020408, - 0.8823529412, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'SE', - 'Peace', - '75+', - 8, - 0.006302521008, - 0.1320754717, - 0.02551020408, - 1.029411765, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Peace', - '15-24', - 8, - 0.01890756303, - 0.2121212121, - 0.01530612245, - 0.875, - 7, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Peace', - '25-34', - 5, - 0.02521008403, - 0.1052631579, - 0.01530612245, - 0.375, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Peace', - '35-44', - 6, - 0.01890756303, - 0.1212121212, - 0.01530612245, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Peace', - '45-54', - 4, - 0.01260504202, - 0.075, - 0.01530612245, - 0.375, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Peace', - '55-64', - 5, - 0.01260504202, - 0.0987654321, - 0.01530612245, - 0.5, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Peace', - '65-74', - 2, - 0.01260504202, - 0.05479452055, - 0.01530612245, - 0.25, - 2, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'South', - 'SI', - 'Peace', - '75+', - 1, - 0.006302521008, - 0.01886792453, - 0.01530612245, - 0.125, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Peace', - '15-24', - 0, - 0.01890756303, - 0, - 0.01530612245, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Peace', - '25-34', - 5, - 0.02521008403, - 0.1052631579, - 0.01530612245, - 0.4285714286, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Peace', - '35-44', - 15, - 0.01890756303, - 0.2424242424, - 0.01530612245, - 1.142857143, - 8, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Peace', - '45-54', - 4, - 0.01260504202, - 0.075, - 0.01530612245, - 0.4285714286, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Peace', - '55-64', - 6, - 0.01260504202, - 0.0987654321, - 0.01530612245, - 0.5714285714, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Peace', - '65-74', - 4, - 0.01260504202, - 0.08219178082, - 0.01530612245, - 0.4285714286, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'East', - 'SK', - 'Peace', - '75+', - 0, - 0.006302521008, - 0, - 0.01530612245, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Peace', - '15-24', - 5, - 0.01890756303, - 0.09090909091, - 0.01530612245, - 0.45, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Peace', - '25-34', - 9, - 0.02521008403, - 0.2105263158, - 0.01530612245, - 0.9, - 6, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Peace', - '35-44', - 4, - 0.01890756303, - 0.09090909091, - 0.01530612245, - 0.45, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Peace', - '45-54', - 7, - 0.01260504202, - 0.1, - 0.01530612245, - 0.6, - 4, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Peace', - '55-64', - 0, - 0.01260504202, - 0, - 0.01530612245, - 0, - 0, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Peace', - '65-74', - 3, - 0.01260504202, - 0.08219178082, - 0.01530612245, - 0.45, - 3, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'North', - 'UK', - 'Peace', - '75+', - 1, - 0.006302521008, - 0.01886792453, - 0.01530612245, - 0.15, - 1, - 1.38520408163265, - 0.24234693877551, - 0.255102040816327 - ], - [ - 'West', - 'AT', - 'Happiness', - '15-24', - 7, - 0.01428571429, - 0.1730769231, - 0.01544401544, - 0.7741935484, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '25-34', - 8, - 0.01428571429, - 0.25, - 0.01544401544, - 0.9032258065, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '35-44', - 7, - 0.009523809524, - 0.1369863014, - 0.01544401544, - 0.6451612903, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '45-54', - 3, - 0.009523809524, - 0.05970149254, - 0.01544401544, - 0.2580645161, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '55-64', - 4, - 0.009523809524, - 0.08219178082, - 0.01544401544, - 0.3870967742, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '65-74', - 4, - 0.009523809524, - 0.09230769231, - 0.01544401544, - 0.3870967742, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'AT', - 'Happiness', - '75+', - 4, - 0.004761904762, - 0.1086956522, - 0.01544401544, - 0.6451612903, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '15-24', - 1, - 0.01428571429, - 0.02884615385, - 0.007722007722, - 0.1666666667, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '25-34', - 2, - 0.01428571429, - 0.03571428571, - 0.007722007722, - 0.1666666667, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '35-44', - 7, - 0.009523809524, - 0.1369863014, - 0.007722007722, - 0.8333333333, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '45-54', - 0, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '55-64', - 2, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '65-74', - 2, - 0.009523809524, - 0.06153846154, - 0.007722007722, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'BE', - 'Happiness', - '75+', - 1, - 0.004761904762, - 0.02173913043, - 0.007722007722, - 0.1666666667, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '15-24', - 9, - 0.01428571429, - 0.2307692308, - 0.007722007722, - 0.8888888889, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '25-34', - 0, - 0.01428571429, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '35-44', - 5, - 0.009523809524, - 0.1095890411, - 0.007722007722, - 0.4444444444, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '45-54', - 4, - 0.009523809524, - 0.08955223881, - 0.007722007722, - 0.3333333333, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '55-64', - 2, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.2222222222, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '65-74', - 2, - 0.009523809524, - 0.03076923077, - 0.007722007722, - 0.1111111111, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'BG', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '15-24', - 2, - 0.01428571429, - 0.1153846154, - 0.007722007722, - 0.8, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '25-34', - 2, - 0.01428571429, - 0.1071428571, - 0.007722007722, - 0.6, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '35-44', - 2, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.4, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '45-54', - 0, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '55-64', - 0, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '65-74', - 0, - 0.009523809524, - 0.03076923077, - 0.007722007722, - 0.2, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CY', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '15-24', - 6, - 0.01428571429, - 0.1730769231, - 0.007722007722, - 1.090909091, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '25-34', - 3, - 0.01428571429, - 0.07142857143, - 0.007722007722, - 0.3636363636, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '35-44', - 0, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '45-54', - 4, - 0.009523809524, - 0.05970149254, - 0.007722007722, - 0.3636363636, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '55-64', - 1, - 0.009523809524, - 0.02739726027, - 0.007722007722, - 0.1818181818, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '65-74', - 0, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'CZ', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '15-24', - 9, - 0.01428571429, - 0.05769230769, - 0.007722007722, - 0.2352941176, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '25-34', - 13, - 0.01428571429, - 0.07142857143, - 0.007722007722, - 0.2352941176, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '35-44', - 4, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.2352941176, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '45-54', - 6, - 0.009523809524, - 0.08955223881, - 0.007722007722, - 0.3529411765, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '55-64', - 9, - 0.009523809524, - 0.1095890411, - 0.007722007722, - 0.4705882353, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '65-74', - 4, - 0.009523809524, - 0.03076923077, - 0.007722007722, - 0.1176470588, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'DE', - 'Happiness', - '75+', - 7, - 0.004761904762, - 0.0652173913, - 0.007722007722, - 0.3529411765, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '15-24', - 5, - 0.01428571429, - 0.1153846154, - 0.02702702703, - 0.5833333333, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '25-34', - 10, - 0.01428571429, - 0.3214285714, - 0.02702702703, - 1.3125, - 9, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '35-44', - 6, - 0.009523809524, - 0.1095890411, - 0.02702702703, - 0.5833333333, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '45-54', - 14, - 0.009523809524, - 0.2388059701, - 0.02702702703, - 1.166666667, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '55-64', - 9, - 0.009523809524, - 0.1917808219, - 0.02702702703, - 1.020833333, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '65-74', - 10, - 0.009523809524, - 0.2461538462, - 0.02702702703, - 1.166666667, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'DK', - 'Happiness', - '75+', - 9, - 0.004761904762, - 0.1739130435, - 0.02702702703, - 1.166666667, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '15-24', - 8, - 0.01428571429, - 0.2019230769, - 0.01544401544, - 1.037037037, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '25-34', - 5, - 0.01428571429, - 0.1428571429, - 0.01544401544, - 0.5925925926, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '35-44', - 6, - 0.009523809524, - 0.08219178082, - 0.01544401544, - 0.4444444444, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '45-54', - 4, - 0.009523809524, - 0.08955223881, - 0.01544401544, - 0.4444444444, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '55-64', - 6, - 0.009523809524, - 0.1369863014, - 0.01544401544, - 0.7407407407, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '65-74', - 1, - 0.009523809524, - 0.03076923077, - 0.01544401544, - 0.1481481481, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'EE', - 'Happiness', - '75+', - 3, - 0.004761904762, - 0.08695652174, - 0.01544401544, - 0.5925925926, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '15-24', - 1, - 0.01428571429, - 0.02884615385, - 0, - 0, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '25-34', - 0, - 0.01428571429, - 0, - 0, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '35-44', - 2, - 0.009523809524, - 0.02739726027, - 0, - 0, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '45-54', - 2, - 0.009523809524, - 0.02985074627, - 0, - 0, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '55-64', - 0, - 0.009523809524, - 0, - 0, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '65-74', - 1, - 0.009523809524, - 0.03076923077, - 0, - 0, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'EL', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '15-24', - 1, - 0.01428571429, - 0.02884615385, - 0.003861003861, - 0.2, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '25-34', - 1, - 0.01428571429, - 0.03571428571, - 0.003861003861, - 0.2, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '35-44', - 1, - 0.009523809524, - 0.02739726027, - 0.003861003861, - 0.2, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '45-54', - 2, - 0.009523809524, - 0.02985074627, - 0.003861003861, - 0.2, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '55-64', - 1, - 0.009523809524, - 0.02739726027, - 0.003861003861, - 0.2, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '65-74', - 0, - 0.009523809524, - 0, - 0.003861003861, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'ES', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.003861003861, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '15-24', - 2, - 0.01428571429, - 0.02884615385, - 0.01544401544, - 0.16, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '25-34', - 7, - 0.01428571429, - 0.2142857143, - 0.01544401544, - 0.96, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '35-44', - 3, - 0.009523809524, - 0.05479452055, - 0.01544401544, - 0.32, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '45-54', - 6, - 0.009523809524, - 0.1194029851, - 0.01544401544, - 0.64, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '55-64', - 7, - 0.009523809524, - 0.1369863014, - 0.01544401544, - 0.8, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '65-74', - 7, - 0.009523809524, - 0.1538461538, - 0.01544401544, - 0.8, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'FI', - 'Happiness', - '75+', - 2, - 0.004761904762, - 0.04347826087, - 0.01544401544, - 0.32, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '15-24', - 2, - 0.01428571429, - 0.05769230769, - 0.007722007722, - 0.2857142857, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '25-34', - 3, - 0.01428571429, - 0.1071428571, - 0.007722007722, - 0.4285714286, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '35-44', - 1, - 0.009523809524, - 0.02739726027, - 0.007722007722, - 0.1428571429, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '45-54', - 5, - 0.009523809524, - 0.08955223881, - 0.007722007722, - 0.4285714286, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '55-64', - 1, - 0.009523809524, - 0.02739726027, - 0.007722007722, - 0.1428571429, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '65-74', - 4, - 0.009523809524, - 0.09230769231, - 0.007722007722, - 0.4285714286, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'FR', - 'Happiness', - '75+', - 1, - 0.004761904762, - 0.02173913043, - 0.007722007722, - 0.1428571429, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '15-24', - 4, - 0.01428571429, - 0.08653846154, - 0.007722007722, - 0.4615384615, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '25-34', - 3, - 0.01428571429, - 0.07142857143, - 0.007722007722, - 0.3076923077, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '35-44', - 4, - 0.009523809524, - 0.08219178082, - 0.007722007722, - 0.4615384615, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '45-54', - 5, - 0.009523809524, - 0.08955223881, - 0.007722007722, - 0.4615384615, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '55-64', - 3, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.3076923077, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '65-74', - 0, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'HR', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '15-24', - 2, - 0.01428571429, - 0.02884615385, - 0.007722007722, - 0.2, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '25-34', - 0, - 0.01428571429, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '35-44', - 3, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.4, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '45-54', - 2, - 0.009523809524, - 0.05970149254, - 0.007722007722, - 0.4, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '55-64', - 4, - 0.009523809524, - 0.08219178082, - 0.007722007722, - 0.6, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '65-74', - 1, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'HU', - 'Happiness', - '75+', - 2, - 0.004761904762, - 0.04347826087, - 0.007722007722, - 0.4, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '15-24', - 0, - 0.01428571429, - 0, - 0.01930501931, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '25-34', - 8, - 0.01428571429, - 0.2142857143, - 0.01930501931, - 0.8108108108, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '35-44', - 18, - 0.009523809524, - 0.2191780822, - 0.01930501931, - 1.081081081, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '45-54', - 6, - 0.009523809524, - 0.08955223881, - 0.01930501931, - 0.4054054054, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '55-64', - 7, - 0.009523809524, - 0.1643835616, - 0.01930501931, - 0.8108108108, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '65-74', - 7, - 0.009523809524, - 0.1846153846, - 0.01930501931, - 0.8108108108, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'IE', - 'Happiness', - '75+', - 5, - 0.004761904762, - 0.1739130435, - 0.01930501931, - 1.081081081, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '15-24', - 3, - 0.01428571429, - 0.08653846154, - 0.007722007722, - 0.5454545455, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '25-34', - 3, - 0.01428571429, - 0.07142857143, - 0.007722007722, - 0.3636363636, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '35-44', - 4, - 0.009523809524, - 0.08219178082, - 0.007722007722, - 0.5454545455, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '45-54', - 6, - 0.009523809524, - 0.08955223881, - 0.007722007722, - 0.5454545455, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '55-64', - 0, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '65-74', - 1, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'IT', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '15-24', - 3, - 0.01428571429, - 0.05769230769, - 0.007722007722, - 0.2222222222, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '25-34', - 9, - 0.01428571429, - 0.25, - 0.007722007722, - 0.7777777778, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '35-44', - 3, - 0.009523809524, - 0.08219178082, - 0.007722007722, - 0.3333333333, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '45-54', - 5, - 0.009523809524, - 0.08955223881, - 0.007722007722, - 0.3333333333, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '55-64', - 1, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '65-74', - 1, - 0.009523809524, - 0.03076923077, - 0.007722007722, - 0.1111111111, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LT', - 'Happiness', - '75+', - 2, - 0.004761904762, - 0.04347826087, - 0.007722007722, - 0.2222222222, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '15-24', - 0, - 0.01428571429, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '25-34', - 3, - 0.01428571429, - 0.1428571429, - 0.007722007722, - 0.6666666667, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '35-44', - 2, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '45-54', - 2, - 0.009523809524, - 0.05970149254, - 0.007722007722, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '55-64', - 1, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '65-74', - 1, - 0.009523809524, - 0.06153846154, - 0.007722007722, - 0.3333333333, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'LU', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '15-24', - 8, - 0.01428571429, - 0.2019230769, - 0.01544401544, - 1.12, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '25-34', - 4, - 0.01428571429, - 0.1071428571, - 0.01544401544, - 0.48, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '35-44', - 3, - 0.009523809524, - 0.05479452055, - 0.01544401544, - 0.32, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '45-54', - 4, - 0.009523809524, - 0.08955223881, - 0.01544401544, - 0.48, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '55-64', - 5, - 0.009523809524, - 0.1095890411, - 0.01544401544, - 0.64, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '65-74', - 13, - 0.009523809524, - 0.1846153846, - 0.01544401544, - 0.96, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'LV', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.01544401544, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '15-24', - 2, - 0.01428571429, - 0.08653846154, - 0.01158301158, - 0.36, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '25-34', - 2, - 0.01428571429, - 0.1071428571, - 0.01158301158, - 0.36, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '35-44', - 0, - 0.009523809524, - 0, - 0.01158301158, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '45-54', - 3, - 0.009523809524, - 0.1492537313, - 0.01158301158, - 0.6, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '55-64', - 4, - 0.009523809524, - 0.1917808219, - 0.01158301158, - 0.84, - 7, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '65-74', - 0, - 0.009523809524, - 0.03076923077, - 0.01158301158, - 0.12, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'MT', - 'Happiness', - '75+', - 2, - 0.004761904762, - 0.1304347826, - 0.01158301158, - 0.72, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '15-24', - 6, - 0.01428571429, - 0.1442307692, - 0.01158301158, - 0.9375, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '25-34', - 3, - 0.01428571429, - 0.07142857143, - 0.01158301158, - 0.375, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '35-44', - 1, - 0.009523809524, - 0.02739726027, - 0.01158301158, - 0.1875, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '45-54', - 4, - 0.009523809524, - 0.05970149254, - 0.01158301158, - 0.375, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '55-64', - 5, - 0.009523809524, - 0.08219178082, - 0.01158301158, - 0.5625, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '65-74', - 7, - 0.009523809524, - 0.09230769231, - 0.01158301158, - 0.5625, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'West', - 'NL', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.01158301158, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '15-24', - 7, - 0.01428571429, - 0.1730769231, - 0.01158301158, - 0.8571428571, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '25-34', - 5, - 0.01428571429, - 0.1071428571, - 0.01158301158, - 0.4285714286, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '35-44', - 6, - 0.009523809524, - 0.08219178082, - 0.01158301158, - 0.4285714286, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '45-54', - 2, - 0.009523809524, - 0.05970149254, - 0.01158301158, - 0.2857142857, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '55-64', - 5, - 0.009523809524, - 0.1095890411, - 0.01158301158, - 0.5714285714, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '65-74', - 3, - 0.009523809524, - 0.06153846154, - 0.01158301158, - 0.2857142857, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'PL', - 'Happiness', - '75+', - 1, - 0.004761904762, - 0.02173913043, - 0.01158301158, - 0.1428571429, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '15-24', - 4, - 0.01428571429, - 0.1153846154, - 0.003861003861, - 0.4444444444, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '25-34', - 1, - 0.01428571429, - 0.03571428571, - 0.003861003861, - 0.1111111111, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '35-44', - 4, - 0.009523809524, - 0.08219178082, - 0.003861003861, - 0.3333333333, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '45-54', - 0, - 0.009523809524, - 0, - 0.003861003861, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '55-64', - 0, - 0.009523809524, - 0, - 0.003861003861, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '65-74', - 1, - 0.009523809524, - 0.03076923077, - 0.003861003861, - 0.1111111111, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'PT', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.003861003861, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '15-24', - 10, - 0.01428571429, - 0.2307692308, - 0.01544401544, - 1.230769231, - 8, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '25-34', - 7, - 0.01428571429, - 0.1428571429, - 0.01544401544, - 0.6153846154, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '35-44', - 9, - 0.009523809524, - 0.1369863014, - 0.01544401544, - 0.7692307692, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '45-54', - 3, - 0.009523809524, - 0.05970149254, - 0.01544401544, - 0.3076923077, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '55-64', - 3, - 0.009523809524, - 0.05479452055, - 0.01544401544, - 0.3076923077, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '65-74', - 7, - 0.009523809524, - 0.1538461538, - 0.01544401544, - 0.7692307692, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'RO', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.01544401544, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '15-24', - 3, - 0.01428571429, - 0.08653846154, - 0.003861003861, - 0.3, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '25-34', - 0, - 0.01428571429, - 0, - 0.003861003861, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '35-44', - 2, - 0.009523809524, - 0.05479452055, - 0.003861003861, - 0.2, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '45-54', - 2, - 0.009523809524, - 0.02985074627, - 0.003861003861, - 0.1, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '55-64', - 2, - 0.009523809524, - 0.05479452055, - 0.003861003861, - 0.2, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '65-74', - 2, - 0.009523809524, - 0.03076923077, - 0.003861003861, - 0.1, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'SE', - 'Happiness', - '75+', - 1, - 0.004761904762, - 0.02173913043, - 0.003861003861, - 0.1, - 1, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '15-24', - 11, - 0.01428571429, - 0.2884615385, - 0.01158301158, - 1.363636364, - 10, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '25-34', - 2, - 0.01428571429, - 0.07142857143, - 0.01158301158, - 0.2727272727, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '35-44', - 3, - 0.009523809524, - 0.05479452055, - 0.01158301158, - 0.2727272727, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '45-54', - 4, - 0.009523809524, - 0.08955223881, - 0.01158301158, - 0.4090909091, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '55-64', - 3, - 0.009523809524, - 0.05479452055, - 0.01158301158, - 0.2727272727, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '65-74', - 5, - 0.009523809524, - 0.09230769231, - 0.01158301158, - 0.4090909091, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'South', - 'SI', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.01158301158, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '15-24', - 2, - 0.01428571429, - 0.05769230769, - 0.007722007722, - 0.4, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '25-34', - 4, - 0.01428571429, - 0.07142857143, - 0.007722007722, - 0.4, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '35-44', - 4, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.4, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '45-54', - 0, - 0.009523809524, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '55-64', - 2, - 0.009523809524, - 0.05479452055, - 0.007722007722, - 0.4, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '65-74', - 2, - 0.009523809524, - 0.06153846154, - 0.007722007722, - 0.4, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'East', - 'SK', - 'Happiness', - '75+', - 0, - 0.004761904762, - 0, - 0.007722007722, - 0, - 0, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '15-24', - 7, - 0.01428571429, - 0.1153846154, - 0.01158301158, - 0.48, - 4, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '25-34', - 7, - 0.01428571429, - 0.1785714286, - 0.01158301158, - 0.6, - 5, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '35-44', - 3, - 0.009523809524, - 0.05479452055, - 0.01158301158, - 0.24, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '45-54', - 4, - 0.009523809524, - 0.08955223881, - 0.01158301158, - 0.36, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '55-64', - 4, - 0.009523809524, - 0.08219178082, - 0.01158301158, - 0.36, - 3, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '65-74', - 5, - 0.009523809524, - 0.1846153846, - 0.01158301158, - 0.72, - 6, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ], - [ - 'North', - 'UK', - 'Happiness', - '75+', - 2, - 0.004761904762, - 0.04347826087, - 0.01158301158, - 0.24, - 2, - 0.578231292517007, - 0.16156462585034, - 0.170068027210884 - ] - ] + series: [ + { name: 'Region', type: 'dimension' }, + { name: 'Country code', type: 'dimension' }, + { name: 'Joy factors', type: 'dimension' }, + { name: 'Age group', type: 'dimension' }, + { name: 'Value 1', type: 'measure' }, + { name: 'Value 2', type: 'measure' }, + { name: 'Value 3', type: 'measure' }, + { name: 'Value 4', type: 'measure' }, + { name: 'Value 5', type: 'measure' }, + { name: 'Value 6', type: 'measure' }, + { name: 'Hor', type: 'measure' }, + { name: 'Ver', type: 'measure' }, + { name: 'Value 7', type: 'measure' } + ], + records: [ + [ + 'West', + 'AT', + 'Love', + '15-24', + 6, + 0.112244898, + 0.2249488753, + 0.04782882316, + 0.7692307692, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '25-34', + 8, + 0.09183673469, + 0.2437923251, + 0.04782882316, + 0.9230769231, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '35-44', + 16, + 0.09183673469, + 0.4829268293, + 0.04782882316, + 1.692307692, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '45-54', + 17, + 0.09693877551, + 0.4103671706, + 0.04782882316, + 1.538461538, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '55-64', + 8, + 0.09183673469, + 0.28125, + 0.04782882316, + 1.076923077, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '65-74', + 10, + 0.09693877551, + 0.3173277662, + 0.04782882316, + 1.230769231, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '75+', + 4, + 0.09693877551, + 0.2130044843, + 0.04782882316, + 0.7692307692, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '15-24', + 22, + 0.112244898, + 0.7648261759, + 0.1076148521, + 2.409448819, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '25-34', + 19, + 0.09183673469, + 0.5282167043, + 0.1076148521, + 1.842519685, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '35-44', + 28, + 0.09183673469, + 0.8341463415, + 0.1076148521, + 2.692913386, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '45-54', + 28, + 0.09693877551, + 0.7386609071, + 0.1076148521, + 2.551181102, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '55-64', + 23, + 0.09183673469, + 0.6830357143, + 0.1076148521, + 2.409448819, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '65-74', + 29, + 0.09693877551, + 0.8329853862, + 0.1076148521, + 2.976377953, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '75+', + 17, + 0.09693877551, + 0.9372197309, + 0.1076148521, + 3.118110236, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '15-24', + 20, + 0.112244898, + 0.854805726, + 0.1195720579, + 2.753623188, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '25-34', + 24, + 0.09183673469, + 0.6501128668, + 0.1195720579, + 2.31884058, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '35-44', + 39, + 0.09183673469, + 1.097560976, + 0.1195720579, + 3.623188406, + 25, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '45-54', + 22, + 0.09693877551, + 0.5745140389, + 0.1195720579, + 2.028985507, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '55-64', + 29, + 0.09183673469, + 0.7232142857, + 0.1195720579, + 2.608695652, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '65-74', + 49, + 0.09693877551, + 1.03131524, + 0.1195720579, + 3.768115942, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '75+', + 13, + 0.09693877551, + 0.8520179372, + 0.1195720579, + 2.898550725, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '15-24', + 3, + 0.112244898, + 0.2249488753, + 0.06576463184, + 0.7236842105, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '25-34', + 8, + 0.09183673469, + 0.4469525959, + 0.06576463184, + 1.592105263, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '35-44', + 9, + 0.09183673469, + 0.5707317073, + 0.06576463184, + 1.881578947, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '45-54', + 10, + 0.09693877551, + 0.5334773218, + 0.06576463184, + 1.881578947, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '55-64', + 11, + 0.09183673469, + 0.8035714286, + 0.06576463184, + 2.894736842, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '65-74', + 5, + 0.09693877551, + 0.3966597077, + 0.06576463184, + 1.447368421, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '75+', + 1, + 0.09693877551, + 0.1704035874, + 0.06576463184, + 0.5789473684, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '15-24', + 12, + 0.112244898, + 0.4948875256, + 0.1076148521, + 1.65, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '25-34', + 25, + 0.09183673469, + 0.6094808126, + 0.1076148521, + 2.25, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '35-44', + 24, + 0.09183673469, + 0.9658536585, + 0.1076148521, + 3.3, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '45-54', + 33, + 0.09693877551, + 0.9438444924, + 0.1076148521, + 3.45, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '55-64', + 22, + 0.09183673469, + 0.6428571429, + 0.1076148521, + 2.4, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '65-74', + 37, + 0.09693877551, + 0.9519832985, + 0.1076148521, + 3.6, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '75+', + 5, + 0.09693877551, + 0.3834080717, + 0.1076148521, + 1.35, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '15-24', + 53, + 0.112244898, + 0.5848670757, + 0.08370044053, + 1.82, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '25-34', + 78, + 0.09183673469, + 0.5688487585, + 0.08370044053, + 1.96, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '35-44', + 40, + 0.09183673469, + 0.9219512195, + 0.08370044053, + 2.94, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '45-54', + 20, + 0.09693877551, + 0.4514038877, + 0.08370044053, + 1.54, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '55-64', + 34, + 0.09183673469, + 0.6026785714, + 0.08370044053, + 2.1, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '65-74', + 37, + 0.09693877551, + 0.51565762, + 0.08370044053, + 1.82, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '75+', + 30, + 0.09693877551, + 0.5538116592, + 0.08370044053, + 1.82, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '15-24', + 38, + 0.112244898, + 1.214723926, + 0.1255506608, + 3.805369128, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '25-34', + 23, + 0.09183673469, + 0.7720090293, + 0.1255506608, + 2.677852349, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '35-44', + 24, + 0.09183673469, + 0.7024390244, + 0.1255506608, + 2.255033557, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '45-54', + 32, + 0.09693877551, + 0.7796976242, + 0.1255506608, + 2.677852349, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '55-64', + 27, + 0.09183673469, + 0.7633928571, + 0.1255506608, + 2.677852349, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '65-74', + 24, + 0.09693877551, + 0.7536534447, + 0.1255506608, + 2.677852349, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '75+', + 34, + 0.09693877551, + 1.278026906, + 0.1255506608, + 4.228187919, + 30, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '15-24', + 31, + 0.112244898, + 1.214723926, + 0.113593455, + 3.828358209, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '25-34', + 27, + 0.09183673469, + 0.7720090293, + 0.113593455, + 2.694029851, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '35-44', + 25, + 0.09183673469, + 0.7024390244, + 0.113593455, + 2.268656716, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '45-54', + 21, + 0.09693877551, + 0.6976241901, + 0.113593455, + 2.410447761, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '55-64', + 21, + 0.09183673469, + 0.6428571429, + 0.113593455, + 2.268656716, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '65-74', + 28, + 0.09693877551, + 0.8329853862, + 0.113593455, + 2.97761194, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '75+', + 16, + 0.09693877551, + 0.7668161435, + 0.113593455, + 2.552238806, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '15-24', + 2, + 0.112244898, + 0.0899795501, + 0.02989301447, + 0.303030303, + 2, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '25-34', + 11, + 0.09183673469, + 0.3250564334, + 0.02989301447, + 1.212121212, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '35-44', + 11, + 0.09183673469, + 0.3073170732, + 0.02989301447, + 1.060606061, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '45-54', + 7, + 0.09693877551, + 0.2051835853, + 0.02989301447, + 0.7575757576, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '55-64', + 7, + 0.09183673469, + 0.2410714286, + 0.02989301447, + 0.9090909091, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '65-74', + 7, + 0.09693877551, + 0.1586638831, + 0.02989301447, + 0.6060606061, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '75+', + 1, + 0.09693877551, + 0.04260089686, + 0.02989301447, + 0.1515151515, + 1, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '15-24', + 16, + 0.112244898, + 0.7648261759, + 0.1076148521, + 2.390625, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '25-34', + 23, + 0.09183673469, + 0.7313769752, + 0.1076148521, + 2.53125, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '35-44', + 20, + 0.09183673469, + 0.6146341463, + 0.1076148521, + 1.96875, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '45-54', + 27, + 0.09693877551, + 0.7796976242, + 0.1076148521, + 2.671875, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '55-64', + 14, + 0.09183673469, + 0.5625, + 0.1076148521, + 1.96875, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '65-74', + 17, + 0.09693877551, + 0.7536534447, + 0.1076148521, + 2.671875, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '75+', + 14, + 0.09693877551, + 1.150224215, + 0.1076148521, + 3.796875, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '15-24', + 29, + 0.112244898, + 1.034764826, + 0.1076148521, + 3.338709677, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '25-34', + 14, + 0.09183673469, + 0.4469525959, + 0.1076148521, + 1.596774194, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '35-44', + 27, + 0.09183673469, + 0.7902439024, + 0.1076148521, + 2.612903226, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '45-54', + 33, + 0.09693877551, + 0.8617710583, + 0.1076148521, + 3.048387097, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '55-64', + 28, + 0.09183673469, + 0.7232142857, + 0.1076148521, + 2.612903226, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '65-74', + 26, + 0.09693877551, + 0.6743215031, + 0.1076148521, + 2.467741935, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '75+', + 17, + 0.09693877551, + 0.6816143498, + 0.1076148521, + 2.322580645, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '15-24', + 42, + 0.112244898, + 1.529652352, + 0.1674008811, + 4.83248731, + 34, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '25-34', + 32, + 0.09183673469, + 1.097065463, + 0.1674008811, + 3.837563452, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '35-44', + 38, + 0.09183673469, + 1.097560976, + 0.1674008811, + 3.553299492, + 25, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '45-54', + 44, + 0.09693877551, + 1.272138229, + 0.1674008811, + 4.406091371, + 31, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '55-64', + 32, + 0.09183673469, + 1.044642857, + 0.1674008811, + 3.695431472, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '65-74', + 38, + 0.09693877551, + 1.229645094, + 0.1674008811, + 4.406091371, + 31, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '75+', + 21, + 0.09693877551, + 0.9798206278, + 0.1674008811, + 3.269035533, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '15-24', + 15, + 0.112244898, + 0.5398773006, + 0.07772183763, + 1.813953488, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '25-34', + 25, + 0.09183673469, + 0.6501128668, + 0.07772183763, + 2.418604651, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '35-44', + 16, + 0.09183673469, + 0.4390243902, + 0.07772183763, + 1.511627907, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '45-54', + 17, + 0.09693877551, + 0.4514038877, + 0.07772183763, + 1.662790698, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '55-64', + 14, + 0.09183673469, + 0.3616071429, + 0.07772183763, + 1.360465116, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '65-74', + 30, + 0.09693877551, + 0.6743215031, + 0.07772183763, + 2.569767442, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '75+', + 9, + 0.09693877551, + 0.4686098655, + 0.07772183763, + 1.662790698, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '15-24', + 10, + 0.112244898, + 0.3149284254, + 0.07174323474, + 1.024390244, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '25-34', + 12, + 0.09183673469, + 0.4063205418, + 0.07174323474, + 1.463414634, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '35-44', + 18, + 0.09183673469, + 0.4390243902, + 0.07174323474, + 1.463414634, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '45-54', + 13, + 0.09693877551, + 0.4103671706, + 0.07174323474, + 1.463414634, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '55-64', + 24, + 0.09183673469, + 0.6428571429, + 0.07174323474, + 2.341463415, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '65-74', + 22, + 0.09693877551, + 0.6346555324, + 0.07174323474, + 2.341463415, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '75+', + 9, + 0.09693877551, + 0.5538116592, + 0.07174323474, + 1.902439024, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '15-24', + 29, + 0.112244898, + 0.9447852761, + 0.113593455, + 2.891304348, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '25-34', + 28, + 0.09183673469, + 0.7720090293, + 0.113593455, + 2.615942029, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '35-44', + 34, + 0.09183673469, + 0.6585365854, + 0.113593455, + 2.065217391, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '45-54', + 28, + 0.09693877551, + 0.6976241901, + 0.113593455, + 2.34057971, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '55-64', + 25, + 0.09183673469, + 0.8035714286, + 0.113593455, + 2.753623188, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '65-74', + 30, + 0.09693877551, + 1.03131524, + 0.113593455, + 3.579710145, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '75+', + 12, + 0.09693877551, + 0.8520179372, + 0.113593455, + 2.753623188, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '15-24', + 10, + 0.112244898, + 0.4498977505, + 0.07174323474, + 1.445783133, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '25-34', + 19, + 0.09183673469, + 0.5688487585, + 0.07174323474, + 2.024096386, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '35-44', + 17, + 0.09183673469, + 0.5268292683, + 0.07174323474, + 1.734939759, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '45-54', + 22, + 0.09693877551, + 0.5334773218, + 0.07174323474, + 1.879518072, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '55-64', + 17, + 0.09183673469, + 0.5223214286, + 0.07174323474, + 1.879518072, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '65-74', + 22, + 0.09693877551, + 0.4759916493, + 0.07174323474, + 1.734939759, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '75+', + 8, + 0.09693877551, + 0.3834080717, + 0.07174323474, + 1.301204819, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '15-24', + 21, + 0.112244898, + 0.6748466258, + 0.06576463184, + 2.291666667, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '25-34', + 20, + 0.09183673469, + 0.6094808126, + 0.06576463184, + 2.291666667, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '35-44', + 1, + 0.09183673469, + 0.04390243902, + 0.06576463184, + 0.1527777778, + 1, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '45-54', + 23, + 0.09693877551, + 0.5334773218, + 0.06576463184, + 1.986111111, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '55-64', + 13, + 0.09183673469, + 0.4017857143, + 0.06576463184, + 1.527777778, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '65-74', + 12, + 0.09693877551, + 0.3966597077, + 0.06576463184, + 1.527777778, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '75+', + 10, + 0.09693877551, + 0.3408071749, + 0.06576463184, + 1.222222222, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '15-24', + 7, + 0.112244898, + 0.4948875256, + 0.09565764632, + 1.543859649, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '25-34', + 15, + 0.09183673469, + 0.8532731377, + 0.09565764632, + 2.947368421, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '35-44', + 13, + 0.09183673469, + 0.6585365854, + 0.09565764632, + 2.105263158, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '45-54', + 11, + 0.09693877551, + 0.5745140389, + 0.09565764632, + 1.964912281, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '55-64', + 11, + 0.09183673469, + 0.7633928571, + 0.09565764632, + 2.666666667, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '65-74', + 12, + 0.09693877551, + 0.7536534447, + 0.09565764632, + 2.666666667, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '75+', + 5, + 0.09693877551, + 0.6390134529, + 0.09565764632, + 2.105263158, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '15-24', + 21, + 0.112244898, + 0.854805726, + 0.09565764632, + 2.841121495, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '25-34', + 23, + 0.09183673469, + 0.6501128668, + 0.09565764632, + 2.392523364, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '35-44', + 20, + 0.09183673469, + 0.6585365854, + 0.09565764632, + 2.242990654, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '45-54', + 20, + 0.09693877551, + 0.6155507559, + 0.09565764632, + 2.242990654, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '55-64', + 19, + 0.09183673469, + 0.6026785714, + 0.09565764632, + 2.242990654, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '65-74', + 36, + 0.09693877551, + 0.6346555324, + 0.09565764632, + 2.392523364, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '75+', + 1, + 0.09693877551, + 0.4686098655, + 0.09565764632, + 1.644859813, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '15-24', + 12, + 0.112244898, + 0.854805726, + 0.07174323474, + 2.746987952, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '25-34', + 5, + 0.09183673469, + 0.3250564334, + 0.07174323474, + 1.156626506, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '35-44', + 2, + 0.09183673469, + 0.1317073171, + 0.07174323474, + 0.4337349398, + 3, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '45-54', + 11, + 0.09693877551, + 0.656587473, + 0.07174323474, + 2.313253012, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '55-64', + 8, + 0.09183673469, + 0.4821428571, + 0.07174323474, + 1.734939759, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '65-74', + 10, + 0.09693877551, + 0.5949895616, + 0.07174323474, + 2.168674699, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '75+', + 3, + 0.09693877551, + 0.4260089686, + 0.07174323474, + 1.445783133, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '15-24', + 42, + 0.112244898, + 1.574642127, + 0.1434864695, + 4.516129032, + 35, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '25-34', + 27, + 0.09183673469, + 0.934537246, + 0.1434864695, + 2.967741935, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '35-44', + 35, + 0.09183673469, + 0.8341463415, + 0.1434864695, + 2.451612903, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '45-54', + 56, + 0.09693877551, + 1.149028078, + 0.1434864695, + 3.612903226, + 28, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '55-64', + 29, + 0.09183673469, + 0.7232142857, + 0.1434864695, + 2.322580645, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '65-74', + 51, + 0.09693877551, + 0.8329853862, + 0.1434864695, + 2.709677419, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '75+', + 5, + 0.09693877551, + 1.789237668, + 0.1434864695, + 5.419354839, + 42, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '15-24', + 32, + 0.112244898, + 1.214723926, + 0.113593455, + 3.828358209, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '25-34', + 24, + 0.09183673469, + 0.6501128668, + 0.113593455, + 2.268656716, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '35-44', + 35, + 0.09183673469, + 0.8341463415, + 0.113593455, + 2.694029851, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '45-54', + 19, + 0.09693877551, + 0.6155507559, + 0.113593455, + 2.126865672, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '55-64', + 26, + 0.09183673469, + 0.7232142857, + 0.113593455, + 2.552238806, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '65-74', + 30, + 0.09693877551, + 0.9123173278, + 0.113593455, + 3.26119403, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '75+', + 10, + 0.09693877551, + 0.6816143498, + 0.113593455, + 2.268656716, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '15-24', + 21, + 0.112244898, + 0.854805726, + 0.1016362492, + 2.760683761, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '25-34', + 28, + 0.09183673469, + 0.8126410835, + 0.1016362492, + 2.905982906, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '35-44', + 24, + 0.09183673469, + 0.6146341463, + 0.1016362492, + 2.034188034, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '45-54', + 31, + 0.09693877551, + 0.7386609071, + 0.1016362492, + 2.615384615, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '55-64', + 28, + 0.09183673469, + 0.7633928571, + 0.1016362492, + 2.760683761, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '65-74', + 18, + 0.09693877551, + 0.4759916493, + 0.1016362492, + 1.743589744, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '75+', + 13, + 0.09693877551, + 0.6390134529, + 0.1016362492, + 2.179487179, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '15-24', + 15, + 0.112244898, + 0.5848670757, + 0.08370044053, + 2, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '25-34', + 27, + 0.09183673469, + 0.7720090293, + 0.08370044053, + 2.923076923, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '35-44', + 23, + 0.09183673469, + 0.5707317073, + 0.08370044053, + 2, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '45-54', + 25, + 0.09693877551, + 0.7796976242, + 0.08370044053, + 2.923076923, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '55-64', + 15, + 0.09183673469, + 0.4419642857, + 0.08370044053, + 1.692307692, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '65-74', + 16, + 0.09693877551, + 0.4363256785, + 0.08370044053, + 1.692307692, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '75+', + 2, + 0.09693877551, + 0.2130044843, + 0.08370044053, + 0.7692307692, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '15-24', + 15, + 0.112244898, + 0.5398773006, + 0.09565764632, + 1.699115044, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '25-34', + 23, + 0.09183673469, + 0.5282167043, + 0.09565764632, + 1.840707965, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '35-44', + 14, + 0.09183673469, + 0.4390243902, + 0.09565764632, + 1.415929204, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '45-54', + 26, + 0.09693877551, + 0.6976241901, + 0.09565764632, + 2.407079646, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '55-64', + 38, + 0.09183673469, + 1.044642857, + 0.09565764632, + 3.681415929, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '65-74', + 26, + 0.09693877551, + 0.6743215031, + 0.09565764632, + 2.407079646, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '75+', + 21, + 0.09693877551, + 0.7668161435, + 0.09565764632, + 2.548672566, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '15-24', + 19, + 0.112244898, + 0.7648261759, + 0.07174323474, + 2.372093023, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '25-34', + 28, + 0.09183673469, + 0.7313769752, + 0.07174323474, + 2.511627907, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '35-44', + 11, + 0.09183673469, + 0.3073170732, + 0.07174323474, + 0.976744186, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '45-54', + 14, + 0.09693877551, + 0.4514038877, + 0.07174323474, + 1.534883721, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '55-64', + 14, + 0.09183673469, + 0.3616071429, + 0.07174323474, + 1.255813953, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '65-74', + 15, + 0.09693877551, + 0.3966597077, + 0.07174323474, + 1.395348837, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '75+', + 10, + 0.09693877551, + 0.5964125561, + 0.07174323474, + 1.953488372, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '15-24', + 25, + 0.112244898, + 0.8098159509, + 0.07174323474, + 2.454545455, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '25-34', + 19, + 0.09183673469, + 0.4469525959, + 0.07174323474, + 1.5, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '35-44', + 16, + 0.09183673469, + 0.3951219512, + 0.07174323474, + 1.227272727, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '45-54', + 19, + 0.09693877551, + 0.4924406048, + 0.07174323474, + 1.636363636, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '55-64', + 16, + 0.09183673469, + 0.4017857143, + 0.07174323474, + 1.363636364, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '65-74', + 15, + 0.09693877551, + 0.4363256785, + 0.07174323474, + 1.5, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '75+', + 8, + 0.09693877551, + 0.7242152466, + 0.07174323474, + 2.318181818, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '15-24', + 50, + 0.112244898, + 1.529652352, + 0.1853366897, + 4.790909091, + 34, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '25-34', + 40, + 0.09183673469, + 1.097065463, + 0.1853366897, + 3.804545455, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '35-44', + 42, + 0.09183673469, + 1.36097561, + 0.1853366897, + 4.368181818, + 31, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '45-54', + 56, + 0.09693877551, + 1.354211663, + 0.1853366897, + 4.65, + 33, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '55-64', + 43, + 0.09183673469, + 1.245535714, + 0.1853366897, + 4.368181818, + 31, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '65-74', + 30, + 0.09693877551, + 1.189979123, + 0.1853366897, + 4.227272727, + 30, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '75+', + 34, + 0.09693877551, + 1.448430493, + 0.1853366897, + 4.790909091, + 34, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '15-24', + 16, + 0.05666208791, + 0.4085714286, + 0.09696186167, + 1.818181818, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '25-34', + 15, + 0.07211538462, + 0.429245283, + 0.09696186167, + 1.818181818, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '35-44', + 28, + 0.07211538462, + 0.5924276169, + 0.09696186167, + 2.657342657, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '45-54', + 35, + 0.07726648352, + 0.6892778993, + 0.09696186167, + 2.937062937, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '55-64', + 31, + 0.08241758242, + 0.9162995595, + 0.09696186167, + 3.636363636, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '65-74', + 34, + 0.08756868132, + 0.9081196581, + 0.09696186167, + 3.496503497, + 25, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '75+', + 21, + 0.08756868132, + 0.9464668094, + 0.09696186167, + 3.636363636, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '15-24', + 12, + 0.05666208791, + 0.2828571429, + 0.05332902392, + 1.356164384, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '25-34', + 13, + 0.07211538462, + 0.2971698113, + 0.05332902392, + 1.356164384, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '35-44', + 9, + 0.07211538462, + 0.1870824053, + 0.05332902392, + 0.904109589, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '45-54', + 21, + 0.07726648352, + 0.4266958425, + 0.05332902392, + 1.95890411, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '55-64', + 14, + 0.08241758242, + 0.3524229075, + 0.05332902392, + 1.506849315, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '65-74', + 19, + 0.08756868132, + 0.4722222222, + 0.05332902392, + 1.95890411, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '75+', + 10, + 0.08756868132, + 0.4732334047, + 0.05332902392, + 1.95890411, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '15-24', + 15, + 0.05666208791, + 0.44, + 0.06787330317, + 1.96, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '25-34', + 26, + 0.07211538462, + 0.5613207547, + 0.06787330317, + 2.38, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '35-44', + 15, + 0.07211538462, + 0.3118040089, + 0.06787330317, + 1.4, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '45-54', + 25, + 0.07726648352, + 0.5251641138, + 0.06787330317, + 2.24, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '55-64', + 23, + 0.08241758242, + 0.5286343612, + 0.06787330317, + 2.1, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '65-74', + 28, + 0.08756868132, + 0.5448717949, + 0.06787330317, + 2.1, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '75+', + 9, + 0.08756868132, + 0.4732334047, + 0.06787330317, + 1.82, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '15-24', + 1, + 0.05666208791, + 0.06285714286, + 0.04848093083, + 0.2816901408, + 2, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '25-34', + 3, + 0.07211538462, + 0.1320754717, + 0.04848093083, + 0.5633802817, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '35-44', + 7, + 0.07211538462, + 0.3118040089, + 0.04848093083, + 1.408450704, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '45-54', + 12, + 0.07726648352, + 0.4923413567, + 0.04848093083, + 2.112676056, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '55-64', + 7, + 0.08241758242, + 0.4581497797, + 0.04848093083, + 1.830985915, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '65-74', + 8, + 0.08756868132, + 0.5448717949, + 0.04848093083, + 2.112676056, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '75+', + 3, + 0.08756868132, + 0.4368308351, + 0.04848093083, + 1.690140845, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '15-24', + 25, + 0.05666208791, + 0.7542857143, + 0.1599870718, + 3.370212766, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '25-34', + 46, + 0.07211538462, + 0.9575471698, + 0.1599870718, + 4.072340426, + 29, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '35-44', + 46, + 0.07211538462, + 1.340757238, + 0.1599870718, + 6.038297872, + 43, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '45-54', + 46, + 0.07726648352, + 1.01750547, + 0.1599870718, + 4.353191489, + 31, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '55-64', + 43, + 0.08241758242, + 1.127753304, + 0.1599870718, + 4.493617021, + 32, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '65-74', + 55, + 0.08756868132, + 1.307692308, + 0.1599870718, + 5.055319149, + 36, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '75+', + 22, + 0.08756868132, + 1.456102784, + 0.1599870718, + 5.617021277, + 40, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '15-24', + 68, + 0.05666208791, + 0.5342857143, + 0.0872656755, + 2.571428571, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '25-34', + 113, + 0.07211538462, + 0.6603773585, + 0.0872656755, + 3.025210084, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '35-44', + 19, + 0.07211538462, + 0.3118040089, + 0.0872656755, + 1.512605042, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '45-54', + 31, + 0.07726648352, + 0.5579868709, + 0.0872656755, + 2.571428571, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '55-64', + 43, + 0.08241758242, + 0.704845815, + 0.0872656755, + 3.025210084, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '65-74', + 51, + 0.08756868132, + 0.6175213675, + 0.0872656755, + 2.571428571, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '75+', + 40, + 0.08756868132, + 0.6552462527, + 0.0872656755, + 2.722689076, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '15-24', + 12, + 0.05666208791, + 0.2828571429, + 0.058177117, + 1.301204819, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '25-34', + 17, + 0.07211538462, + 0.4622641509, + 0.058177117, + 2.024096386, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '35-44', + 16, + 0.07211538462, + 0.3118040089, + 0.058177117, + 1.445783133, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '45-54', + 16, + 0.07726648352, + 0.295404814, + 0.058177117, + 1.301204819, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '55-64', + 13, + 0.08241758242, + 0.3524229075, + 0.058177117, + 1.445783133, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '65-74', + 20, + 0.08756868132, + 0.5811965812, + 0.058177117, + 2.313253012, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '75+', + 17, + 0.08756868132, + 0.5460385439, + 0.058177117, + 2.168674699, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '15-24', + 6, + 0.05666208791, + 0.1885714286, + 0.1018099548, + 0.8873239437, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '25-34', + 22, + 0.07211538462, + 0.4952830189, + 0.1018099548, + 2.218309859, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '35-44', + 42, + 0.07211538462, + 0.8106904232, + 0.1018099548, + 3.845070423, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '45-54', + 35, + 0.07726648352, + 0.9190371991, + 0.1018099548, + 4.14084507, + 28, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '55-64', + 28, + 0.08241758242, + 0.704845815, + 0.1018099548, + 2.957746479, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '65-74', + 30, + 0.08756868132, + 0.8354700855, + 0.1018099548, + 3.401408451, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '75+', + 21, + 0.08756868132, + 0.8736616702, + 0.1018099548, + 3.549295775, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '15-24', + 22, + 0.05666208791, + 0.66, + 0.07756948933, + 3, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '25-34', + 22, + 0.07211538462, + 0.5283018868, + 0.07756948933, + 2.285714286, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '35-44', + 26, + 0.07211538462, + 0.561247216, + 0.07756948933, + 2.571428571, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '45-54', + 23, + 0.07726648352, + 0.5251641138, + 0.07756948933, + 2.285714286, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '55-64', + 21, + 0.08241758242, + 0.563876652, + 0.07756948933, + 2.285714286, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '65-74', + 19, + 0.08756868132, + 0.4358974359, + 0.07756948933, + 1.714285714, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '75+', + 12, + 0.08756868132, + 0.4732334047, + 0.07756948933, + 1.857142857, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '15-24', + 3, + 0.05666208791, + 0.1257142857, + 0.04848093083, + 0.5797101449, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '25-34', + 7, + 0.07211538462, + 0.1981132075, + 0.04848093083, + 0.8695652174, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '35-44', + 18, + 0.07211538462, + 0.4053452116, + 0.04848093083, + 1.884057971, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '45-54', + 14, + 0.07726648352, + 0.3282275711, + 0.04848093083, + 1.449275362, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '55-64', + 10, + 0.08241758242, + 0.3524229075, + 0.04848093083, + 1.449275362, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '65-74', + 12, + 0.08756868132, + 0.4722222222, + 0.04848093083, + 1.884057971, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '75+', + 7, + 0.08756868132, + 0.4732334047, + 0.04848093083, + 1.884057971, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '15-24', + 14, + 0.05666208791, + 0.3457142857, + 0.058177117, + 1.65, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '25-34', + 13, + 0.07211538462, + 0.3301886792, + 0.058177117, + 1.5, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '35-44', + 15, + 0.07211538462, + 0.3118040089, + 0.058177117, + 1.5, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '45-54', + 24, + 0.07726648352, + 0.4923413567, + 0.058177117, + 2.25, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '55-64', + 18, + 0.08241758242, + 0.3876651982, + 0.058177117, + 1.65, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '65-74', + 20, + 0.08756868132, + 0.5085470085, + 0.058177117, + 2.1, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '75+', + 9, + 0.08756868132, + 0.3276231263, + 0.058177117, + 1.35, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '15-24', + 6, + 0.05666208791, + 0.1571428571, + 0.03878474467, + 0.7272727273, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '25-34', + 11, + 0.07211538462, + 0.3301886792, + 0.03878474467, + 1.454545455, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '35-44', + 6, + 0.07211538462, + 0.1247216036, + 0.03878474467, + 0.5818181818, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '45-54', + 13, + 0.07726648352, + 0.295404814, + 0.03878474467, + 1.309090909, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '55-64', + 13, + 0.08241758242, + 0.3524229075, + 0.03878474467, + 1.454545455, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '65-74', + 6, + 0.08756868132, + 0.1816239316, + 0.03878474467, + 0.7272727273, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '75+', + 10, + 0.08756868132, + 0.4368308351, + 0.03878474467, + 1.745454545, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '15-24', + 6, + 0.05666208791, + 0.1571428571, + 0.03393665158, + 0.7, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '25-34', + 14, + 0.07211538462, + 0.2971698113, + 0.03393665158, + 1.26, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '35-44', + 14, + 0.07211538462, + 0.280623608, + 0.03393665158, + 1.26, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '45-54', + 11, + 0.07726648352, + 0.2297592998, + 0.03393665158, + 0.98, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '55-64', + 10, + 0.08241758242, + 0.2114537445, + 0.03393665158, + 0.84, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '65-74', + 10, + 0.08756868132, + 0.2179487179, + 0.03393665158, + 0.84, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '75+', + 7, + 0.08756868132, + 0.2912205567, + 0.03393665158, + 1.12, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '15-24', + 34, + 0.05666208791, + 0.8171428571, + 0.1405946994, + 3.67804878, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '25-34', + 40, + 0.07211538462, + 1.089622642, + 0.1405946994, + 4.668292683, + 33, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '35-44', + 43, + 0.07211538462, + 0.7483296214, + 0.1405946994, + 3.395121951, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '45-54', + 41, + 0.07726648352, + 1.01750547, + 0.1405946994, + 4.385365854, + 31, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '55-64', + 42, + 0.08241758242, + 0.9515418502, + 0.1405946994, + 3.819512195, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '65-74', + 54, + 0.08756868132, + 1.38034188, + 0.1405946994, + 5.375609756, + 38, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '75+', + 20, + 0.08756868132, + 0.9464668094, + 0.1405946994, + 3.67804878, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '15-24', + 18, + 0.05666208791, + 0.4085714286, + 0.06302521008, + 1.877777778, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '25-34', + 19, + 0.07211538462, + 0.429245283, + 0.06302521008, + 1.877777778, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '35-44', + 29, + 0.07211538462, + 0.4053452116, + 0.06302521008, + 1.877777778, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '45-54', + 17, + 0.07726648352, + 0.3610503282, + 0.06302521008, + 1.588888889, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '55-64', + 15, + 0.08241758242, + 0.422907489, + 0.06302521008, + 1.733333333, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '65-74', + 18, + 0.08756868132, + 0.5448717949, + 0.06302521008, + 2.166666667, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '75+', + 9, + 0.08756868132, + 0.4732334047, + 0.06302521008, + 1.877777778, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '15-24', + 26, + 0.05666208791, + 0.8171428571, + 0.1308985133, + 3.836065574, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '25-34', + 27, + 0.07211538462, + 0.6603773585, + 0.1308985133, + 2.950819672, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '35-44', + 32, + 0.07211538462, + 0.7171492205, + 0.1308985133, + 3.393442623, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '45-54', + 43, + 0.07726648352, + 0.7877461707, + 0.1308985133, + 3.540983607, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '55-64', + 44, + 0.08241758242, + 1.162995595, + 0.1308985133, + 4.868852459, + 33, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '65-74', + 66, + 0.08756868132, + 1.307692308, + 0.1308985133, + 5.31147541, + 36, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '75+', + 18, + 0.08756868132, + 0.7644539615, + 0.1308985133, + 3.098360656, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '15-24', + 13, + 0.05666208791, + 0.2828571429, + 0.04363283775, + 1.285714286, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '25-34', + 13, + 0.07211538462, + 0.3301886792, + 0.04363283775, + 1.428571429, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '35-44', + 12, + 0.07211538462, + 0.3429844098, + 0.04363283775, + 1.571428571, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '45-54', + 15, + 0.07726648352, + 0.2625820569, + 0.04363283775, + 1.142857143, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '55-64', + 13, + 0.08241758242, + 0.3171806167, + 0.04363283775, + 1.285714286, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '65-74', + 8, + 0.08756868132, + 0.2542735043, + 0.04363283775, + 1, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '75+', + 10, + 0.08756868132, + 0.3276231263, + 0.04363283775, + 1.285714286, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '15-24', + 9, + 0.05666208791, + 0.44, + 0.05332902392, + 2.053333333, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '25-34', + 8, + 0.07211538462, + 0.3632075472, + 0.05332902392, + 1.613333333, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '35-44', + 11, + 0.07211538462, + 0.4053452116, + 0.05332902392, + 1.906666667, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '45-54', + 11, + 0.07726648352, + 0.4266958425, + 0.05332902392, + 1.906666667, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '55-64', + 2, + 0.08241758242, + 0.140969163, + 0.05332902392, + 0.5866666667, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '65-74', + 7, + 0.08756868132, + 0.3995726496, + 0.05332902392, + 1.613333333, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '75+', + 3, + 0.08756868132, + 0.3276231263, + 0.05332902392, + 1.32, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '15-24', + 10, + 0.05666208791, + 0.2828571429, + 0.058177117, + 1.5, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '25-34', + 13, + 0.07211538462, + 0.2971698113, + 0.058177117, + 1.5, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '35-44', + 18, + 0.07211538462, + 0.4365256125, + 0.058177117, + 2.333333333, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '45-54', + 17, + 0.07726648352, + 0.4266958425, + 0.058177117, + 2.166666667, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '55-64', + 19, + 0.08241758242, + 0.4933920705, + 0.058177117, + 2.333333333, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '65-74', + 29, + 0.08756868132, + 0.4722222222, + 0.058177117, + 2.166666667, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '75+', + 0, + 0.08756868132, + 0, + 0.058177117, + 0, + 0, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '15-24', + 21, + 0.05666208791, + 1.068571429, + 0.2521008403, + 4.804347826, + 34, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '25-34', + 36, + 0.07211538462, + 1.981132075, + 0.2521008403, + 8.47826087, + 60, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '35-44', + 45, + 0.07211538462, + 2.151447661, + 0.2521008403, + 9.75, + 69, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '45-54', + 33, + 0.07726648352, + 1.641137856, + 0.2521008403, + 7.065217391, + 50, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '55-64', + 37, + 0.08241758242, + 2.008810573, + 0.2521008403, + 8.054347826, + 57, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '65-74', + 27, + 0.08756868132, + 1.452991453, + 0.2521008403, + 5.652173913, + 40, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '75+', + 20, + 0.08756868132, + 2.111349036, + 0.2521008403, + 8.195652174, + 58, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '15-24', + 6, + 0.05666208791, + 0.1571428571, + 0.03878474467, + 0.7407407407, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '25-34', + 10, + 0.07211538462, + 0.2971698113, + 0.03878474467, + 1.333333333, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '35-44', + 18, + 0.07211538462, + 0.3118040089, + 0.03878474467, + 1.481481481, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '45-54', + 10, + 0.07726648352, + 0.1641137856, + 0.03878474467, + 0.7407407407, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '55-64', + 11, + 0.08241758242, + 0.2466960352, + 0.03878474467, + 1.037037037, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '65-74', + 24, + 0.08756868132, + 0.3632478632, + 0.03878474467, + 1.481481481, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '75+', + 1, + 0.08756868132, + 0.2912205567, + 0.03878474467, + 1.185185185, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '15-24', + 12, + 0.05666208791, + 0.3142857143, + 0.08241758242, + 1.416666667, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '25-34', + 24, + 0.07211538462, + 0.5283018868, + 0.08241758242, + 2.266666667, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '35-44', + 41, + 0.07211538462, + 0.6859688196, + 0.08241758242, + 3.116666667, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '45-54', + 26, + 0.07726648352, + 0.6564551422, + 0.08241758242, + 2.833333333, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '55-64', + 25, + 0.08241758242, + 0.5991189427, + 0.08241758242, + 2.408333333, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '65-74', + 17, + 0.08756868132, + 0.4722222222, + 0.08241758242, + 1.841666667, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '75+', + 13, + 0.08756868132, + 0.800856531, + 0.08241758242, + 3.116666667, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '15-24', + 7, + 0.05666208791, + 0.22, + 0.0290885585, + 1, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '25-34', + 8, + 0.07211538462, + 0.1981132075, + 0.0290885585, + 0.8571428571, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '35-44', + 10, + 0.07211538462, + 0.1870824053, + 0.0290885585, + 0.8571428571, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '45-54', + 6, + 0.07726648352, + 0.1312910284, + 0.0290885585, + 0.5714285714, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '55-64', + 4, + 0.08241758242, + 0.0704845815, + 0.0290885585, + 0.2857142857, + 2, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '65-74', + 11, + 0.08756868132, + 0.2905982906, + 0.0290885585, + 1.142857143, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '75+', + 7, + 0.08756868132, + 0.3276231263, + 0.0290885585, + 1.285714286, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '15-24', + 12, + 0.05666208791, + 0.2828571429, + 0.03393665158, + 1.285714286, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '25-34', + 7, + 0.07211538462, + 0.1650943396, + 0.03393665158, + 0.7142857143, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '35-44', + 13, + 0.07211538462, + 0.2182628062, + 0.03393665158, + 1, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '45-54', + 6, + 0.07726648352, + 0.1312910284, + 0.03393665158, + 0.5714285714, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '55-64', + 15, + 0.08241758242, + 0.3876651982, + 0.03393665158, + 1.571428571, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '65-74', + 10, + 0.08756868132, + 0.2542735043, + 0.03393665158, + 1, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '75+', + 2, + 0.08756868132, + 0.2184154176, + 0.03393665158, + 0.8571428571, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '15-24', + 9, + 0.05666208791, + 0.22, + 0.01939237233, + 0.9333333333, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '25-34', + 3, + 0.07211538462, + 0.06603773585, + 0.01939237233, + 0.2666666667, + 2, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '35-44', + 4, + 0.07211538462, + 0.06236080178, + 0.01939237233, + 0.2666666667, + 2, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '45-54', + 4, + 0.07726648352, + 0.06564551422, + 0.01939237233, + 0.2666666667, + 2, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '55-64', + 7, + 0.08241758242, + 0.1762114537, + 0.01939237233, + 0.6666666667, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '65-74', + 10, + 0.08756868132, + 0.2179487179, + 0.01939237233, + 0.8, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '75+', + 6, + 0.08756868132, + 0.2184154176, + 0.01939237233, + 0.8, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '15-24', + 16, + 0.05666208791, + 0.4714285714, + 0.1066580478, + 2.115384615, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '25-34', + 30, + 0.07211538462, + 0.6273584906, + 0.1066580478, + 2.679487179, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '35-44', + 29, + 0.07211538462, + 0.561247216, + 0.1066580478, + 2.538461538, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '45-54', + 33, + 0.07726648352, + 0.8205689278, + 0.1066580478, + 3.525641026, + 25, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '55-64', + 38, + 0.08241758242, + 0.9162995595, + 0.1066580478, + 3.666666667, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '65-74', + 39, + 0.08756868132, + 0.9807692308, + 0.1066580478, + 3.807692308, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '75+', + 18, + 0.08756868132, + 0.9464668094, + 0.1066580478, + 3.666666667, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '15-24', + 28, + 0.05666208791, + 0.6285714286, + 0.1066580478, + 2.894736842, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '25-34', + 39, + 0.07211538462, + 0.7264150943, + 0.1066580478, + 3.184210526, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '35-44', + 35, + 0.07211538462, + 0.6236080178, + 0.1066580478, + 2.894736842, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '45-54', + 39, + 0.07726648352, + 0.8533916849, + 0.1066580478, + 3.763157895, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '55-64', + 35, + 0.08241758242, + 0.7753303965, + 0.1066580478, + 3.184210526, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '65-74', + 28, + 0.08756868132, + 0.7264957265, + 0.1066580478, + 2.894736842, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '75+', + 10, + 0.08756868132, + 0.800856531, + 0.1066580478, + 3.184210526, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '15-24', + 8, + 0.05666208791, + 0.1885714286, + 0.05332902392, + 0.8461538462, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '25-34', + 24, + 0.07211538462, + 0.5613207547, + 0.05332902392, + 2.397435897, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '35-44', + 13, + 0.07211538462, + 0.280623608, + 0.05332902392, + 1.269230769, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '45-54', + 25, + 0.07726648352, + 0.4595185996, + 0.05332902392, + 1.974358974, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '55-64', + 13, + 0.08241758242, + 0.3171806167, + 0.05332902392, + 1.269230769, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '65-74', + 7, + 0.08756868132, + 0.2542735043, + 0.05332902392, + 0.9871794872, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '75+', + 16, + 0.08756868132, + 0.5824411135, + 0.05332902392, + 2.256410256, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '15-24', + 23, + 0.08854166667, + 0.6646090535, + 0.06598984772, + 2.655913978, + 19, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '25-34', + 13, + 0.078125, + 0.4187817259, + 0.06598984772, + 1.537634409, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '35-44', + 19, + 0.07291666667, + 0.4715025907, + 0.06598984772, + 1.817204301, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '45-54', + 18, + 0.0625, + 0.3100775194, + 0.06598984772, + 1.397849462, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '55-64', + 18, + 0.07291666667, + 0.5025641026, + 0.06598984772, + 1.956989247, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '65-74', + 14, + 0.0625, + 0.3296703297, + 0.06598984772, + 1.397849462, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '75+', + 14, + 0.0625, + 0.5748502994, + 0.06598984772, + 2.23655914, + 16, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '15-24', + 25, + 0.08854166667, + 0.6646090535, + 0.06091370558, + 2.746987952, + 19, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '25-34', + 21, + 0.078125, + 0.5710659898, + 0.06091370558, + 2.168674699, + 15, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '35-44', + 13, + 0.07291666667, + 0.3264248705, + 0.06091370558, + 1.301204819, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '45-54', + 18, + 0.0625, + 0.3720930233, + 0.06091370558, + 1.734939759, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '55-64', + 12, + 0.07291666667, + 0.3230769231, + 0.06091370558, + 1.301204819, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '65-74', + 8, + 0.0625, + 0.1978021978, + 0.06091370558, + 0.8674698795, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '75+', + 10, + 0.0625, + 0.4670658683, + 0.06091370558, + 1.879518072, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '15-24', + 15, + 0.08854166667, + 0.4897119342, + 0.07106598985, + 2.020618557, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '25-34', + 25, + 0.078125, + 0.6091370558, + 0.07106598985, + 2.309278351, + 16, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '35-44', + 19, + 0.07291666667, + 0.4352331606, + 0.07106598985, + 1.731958763, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '45-54', + 22, + 0.0625, + 0.4341085271, + 0.07106598985, + 2.020618557, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '55-64', + 22, + 0.07291666667, + 0.5025641026, + 0.07106598985, + 2.020618557, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '65-74', + 30, + 0.0625, + 0.5274725275, + 0.07106598985, + 2.309278351, + 16, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '75+', + 8, + 0.0625, + 0.3952095808, + 0.07106598985, + 1.587628866, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '15-24', + 24, + 0.08854166667, + 1.434156379, + 0.1573604061, + 5.884259259, + 41, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '25-34', + 19, + 0.078125, + 0.9898477157, + 0.1573604061, + 3.731481481, + 26, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '35-44', + 21, + 0.07291666667, + 1.088082902, + 0.1573604061, + 4.305555556, + 30, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '45-54', + 29, + 0.0625, + 1.11627907, + 0.1573604061, + 5.166666667, + 36, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '55-64', + 15, + 0.07291666667, + 1.005128205, + 0.1573604061, + 4.018518519, + 28, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '65-74', + 12, + 0.0625, + 0.7252747253, + 0.1573604061, + 3.157407407, + 22, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '75+', + 9, + 0.0625, + 1.185628743, + 0.1573604061, + 4.736111111, + 33, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '15-24', + 10, + 0.08854166667, + 0.3148148148, + 0.02538071066, + 1.285714286, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '25-34', + 11, + 0.078125, + 0.2664974619, + 0.02538071066, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '35-44', + 3, + 0.07291666667, + 0.1088082902, + 0.02538071066, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '45-54', + 9, + 0.0625, + 0.1860465116, + 0.02538071066, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '55-64', + 9, + 0.07291666667, + 0.2512820513, + 0.02538071066, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '65-74', + 4, + 0.0625, + 0.0989010989, + 0.02538071066, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '75+', + 0, + 0.0625, + 0, + 0.02538071066, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '15-24', + 20, + 0.08854166667, + 0.1748971193, + 0.02538071066, + 0.6944444444, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '25-34', + 34, + 0.078125, + 0.2284263959, + 0.02538071066, + 0.8333333333, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '35-44', + 9, + 0.07291666667, + 0.1813471503, + 0.02538071066, + 0.6944444444, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '45-54', + 9, + 0.0625, + 0.1550387597, + 0.02538071066, + 0.6944444444, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '55-64', + 13, + 0.07291666667, + 0.2153846154, + 0.02538071066, + 0.8333333333, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '65-74', + 11, + 0.0625, + 0.1318681319, + 0.02538071066, + 0.5555555556, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '75+', + 12, + 0.0625, + 0.1796407186, + 0.02538071066, + 0.6944444444, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '15-24', + 12, + 0.08854166667, + 0.3148148148, + 0.02538071066, + 1.40625, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '25-34', + 1, + 0.078125, + 0.03807106599, + 0.02538071066, + 0.15625, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '35-44', + 15, + 0.07291666667, + 0.3264248705, + 0.02538071066, + 1.40625, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '45-54', + 4, + 0.0625, + 0.09302325581, + 0.02538071066, + 0.46875, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '55-64', + 7, + 0.07291666667, + 0.1794871795, + 0.02538071066, + 0.78125, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '65-74', + 2, + 0.0625, + 0.06593406593, + 0.02538071066, + 0.3125, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '75+', + 4, + 0.0625, + 0.1077844311, + 0.02538071066, + 0.46875, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '15-24', + 3, + 0.08854166667, + 0.1049382716, + 0.04568527919, + 0.4426229508, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '25-34', + 10, + 0.078125, + 0.2664974619, + 0.04568527919, + 1.032786885, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '35-44', + 17, + 0.07291666667, + 0.3626943005, + 0.04568527919, + 1.475409836, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '45-54', + 12, + 0.0625, + 0.3100775194, + 0.04568527919, + 1.475409836, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '55-64', + 15, + 0.07291666667, + 0.3948717949, + 0.04568527919, + 1.62295082, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '65-74', + 13, + 0.0625, + 0.3296703297, + 0.04568527919, + 1.475409836, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '75+', + 9, + 0.0625, + 0.3592814371, + 0.04568527919, + 1.475409836, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '15-24', + 42, + 0.08854166667, + 1.434156379, + 0.1827411168, + 5.857142857, + 41, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '25-34', + 59, + 0.078125, + 1.675126904, + 0.1827411168, + 6.285714286, + 44, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '35-44', + 51, + 0.07291666667, + 1.305699482, + 0.1827411168, + 5.142857143, + 36, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '45-54', + 43, + 0.0625, + 0.8992248062, + 0.1827411168, + 4.142857143, + 29, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '55-64', + 50, + 0.07291666667, + 1.4, + 0.1827411168, + 5.571428571, + 39, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '65-74', + 51, + 0.0625, + 1.120879121, + 0.1827411168, + 4.857142857, + 34, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '75+', + 26, + 0.0625, + 1.041916168, + 0.1827411168, + 4.142857143, + 29, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '15-24', + 27, + 0.08854166667, + 1.014403292, + 0.1269035533, + 4.073033708, + 29, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '25-34', + 27, + 0.078125, + 0.8375634518, + 0.1269035533, + 3.08988764, + 22, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '35-44', + 35, + 0.07291666667, + 0.9430051813, + 0.1269035533, + 3.651685393, + 26, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '45-54', + 37, + 0.0625, + 0.8062015504, + 0.1269035533, + 3.651685393, + 26, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '55-64', + 27, + 0.07291666667, + 0.9692307692, + 0.1269035533, + 3.792134831, + 27, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '65-74', + 20, + 0.0625, + 0.7582417582, + 0.1269035533, + 3.230337079, + 23, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '75+', + 12, + 0.0625, + 0.8982035928, + 0.1269035533, + 3.511235955, + 25, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '15-24', + 19, + 0.08854166667, + 0.524691358, + 0.03553299492, + 2.282608696, + 15, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '25-34', + 8, + 0.078125, + 0.2284263959, + 0.03553299492, + 0.9130434783, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '35-44', + 11, + 0.07291666667, + 0.2538860104, + 0.03553299492, + 1.065217391, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '45-54', + 6, + 0.0625, + 0.1240310078, + 0.03553299492, + 0.6086956522, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '55-64', + 5, + 0.07291666667, + 0.1076923077, + 0.03553299492, + 0.4565217391, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '65-74', + 8, + 0.0625, + 0.1648351648, + 0.03553299492, + 0.7608695652, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '75+', + 7, + 0.0625, + 0.2155688623, + 0.03553299492, + 0.9130434783, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '15-24', + 23, + 0.08854166667, + 0.6296296296, + 0.06598984772, + 2.659090909, + 18, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '25-34', + 9, + 0.078125, + 0.3045685279, + 0.06598984772, + 1.181818182, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '35-44', + 26, + 0.07291666667, + 0.6165803109, + 0.06598984772, + 2.511363636, + 17, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '45-54', + 12, + 0.0625, + 0.2480620155, + 0.06598984772, + 1.181818182, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '55-64', + 17, + 0.07291666667, + 0.5025641026, + 0.06598984772, + 2.068181818, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '65-74', + 15, + 0.0625, + 0.3956043956, + 0.06598984772, + 1.772727273, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '75+', + 10, + 0.0625, + 0.3952095808, + 0.06598984772, + 1.625, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '15-24', + 45, + 0.08854166667, + 1.224279835, + 0.1370558376, + 4.973684211, + 35, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '25-34', + 41, + 0.078125, + 0.9898477157, + 0.1370558376, + 3.694736842, + 26, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '35-44', + 37, + 0.07291666667, + 0.8341968912, + 0.1370558376, + 3.268421053, + 23, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '45-54', + 40, + 0.0625, + 0.8372093023, + 0.1370558376, + 3.836842105, + 27, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '55-64', + 40, + 0.07291666667, + 0.8974358974, + 0.1370558376, + 3.552631579, + 25, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '65-74', + 47, + 0.0625, + 0.8571428571, + 0.1370558376, + 3.694736842, + 26, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '75+', + 23, + 0.0625, + 1.005988024, + 0.1370558376, + 3.978947368, + 28, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '15-24', + 6, + 0.08854166667, + 0.1748971193, + 0.04060913706, + 0.7142857143, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '25-34', + 8, + 0.078125, + 0.2664974619, + 0.04060913706, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '35-44', + 24, + 0.07291666667, + 0.5077720207, + 0.04060913706, + 2, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '45-54', + 15, + 0.0625, + 0.3720930233, + 0.04060913706, + 1.714285714, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '55-64', + 12, + 0.07291666667, + 0.2871794872, + 0.04060913706, + 1.142857143, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '65-74', + 11, + 0.0625, + 0.2307692308, + 0.04060913706, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '75+', + 2, + 0.0625, + 0.1077844311, + 0.04060913706, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '15-24', + 15, + 0.08854166667, + 0.3847736626, + 0.06091370558, + 1.571428571, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '25-34', + 18, + 0.078125, + 0.4949238579, + 0.06091370558, + 1.857142857, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '35-44', + 27, + 0.07291666667, + 0.4352331606, + 0.06091370558, + 1.714285714, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '45-54', + 23, + 0.0625, + 0.4341085271, + 0.06091370558, + 2, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '55-64', + 11, + 0.07291666667, + 0.3230769231, + 0.06091370558, + 1.285714286, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '65-74', + 15, + 0.0625, + 0.4285714286, + 0.06091370558, + 1.857142857, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '75+', + 7, + 0.0625, + 0.4311377246, + 0.06091370558, + 1.714285714, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '15-24', + 37, + 0.08854166667, + 1.294238683, + 0.1421319797, + 5.206030151, + 37, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '25-34', + 45, + 0.078125, + 1.294416244, + 0.1421319797, + 4.783919598, + 34, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '35-44', + 38, + 0.07291666667, + 0.9430051813, + 0.1421319797, + 3.658291457, + 26, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '45-54', + 46, + 0.0625, + 0.8062015504, + 0.1421319797, + 3.658291457, + 26, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '55-64', + 35, + 0.07291666667, + 0.9692307692, + 0.1421319797, + 3.798994975, + 27, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '65-74', + 40, + 0.0625, + 0.7252747253, + 0.1421319797, + 3.095477387, + 22, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '75+', + 24, + 0.0625, + 0.9700598802, + 0.1421319797, + 3.798994975, + 27, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '15-24', + 24, + 0.08854166667, + 0.5946502058, + 0.09137055838, + 2.467741935, + 17, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '25-34', + 17, + 0.078125, + 0.4568527919, + 0.09137055838, + 1.741935484, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '35-44', + 13, + 0.07291666667, + 0.4352331606, + 0.09137055838, + 1.741935484, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '45-54', + 35, + 0.0625, + 0.5891472868, + 0.09137055838, + 2.758064516, + 19, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '55-64', + 27, + 0.07291666667, + 0.7179487179, + 0.09137055838, + 2.903225806, + 20, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '65-74', + 32, + 0.0625, + 0.9230769231, + 0.09137055838, + 4.064516129, + 28, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '75+', + 20, + 0.0625, + 0.5748502994, + 0.09137055838, + 2.322580645, + 16, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '15-24', + 14, + 0.08854166667, + 0.804526749, + 0.05583756345, + 3.048192771, + 23, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '25-34', + 4, + 0.078125, + 0.2284263959, + 0.05583756345, + 0.7951807229, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '35-44', + 9, + 0.07291666667, + 0.3989637306, + 0.05583756345, + 1.457831325, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '45-54', + 12, + 0.0625, + 0.4341085271, + 0.05583756345, + 1.855421687, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '55-64', + 4, + 0.07291666667, + 0.2153846154, + 0.05583756345, + 0.7951807229, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '65-74', + 5, + 0.0625, + 0.2967032967, + 0.05583756345, + 1.192771084, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '75+', + 5, + 0.0625, + 0.502994012, + 0.05583756345, + 1.855421687, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '15-24', + 21, + 0.08854166667, + 0.6646090535, + 0.09137055838, + 2.803278689, + 19, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '25-34', + 26, + 0.078125, + 0.6852791878, + 0.09137055838, + 2.655737705, + 18, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '35-44', + 23, + 0.07291666667, + 0.6528497409, + 0.09137055838, + 2.655737705, + 18, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '45-54', + 29, + 0.0625, + 0.6821705426, + 0.09137055838, + 3.245901639, + 22, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '55-64', + 21, + 0.07291666667, + 0.5743589744, + 0.09137055838, + 2.360655738, + 16, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '65-74', + 40, + 0.0625, + 0.5934065934, + 0.09137055838, + 2.655737705, + 18, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '75+', + 1, + 0.0625, + 0.3952095808, + 0.09137055838, + 1.62295082, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '15-24', + 2, + 0.08854166667, + 0.1399176955, + 0.0152284264, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '25-34', + 3, + 0.078125, + 0.152284264, + 0.0152284264, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '35-44', + 1, + 0.07291666667, + 0.03626943005, + 0.0152284264, + 0.1428571429, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '45-54', + 1, + 0.0625, + 0.03100775194, + 0.0152284264, + 0.1428571429, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '55-64', + 3, + 0.07291666667, + 0.1794871795, + 0.0152284264, + 0.7142857143, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '65-74', + 4, + 0.0625, + 0.1978021978, + 0.0152284264, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '75+', + 0, + 0.0625, + 0, + 0.0152284264, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '15-24', + 3, + 0.08854166667, + 0.06995884774, + 0.01015228426, + 0.2666666667, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '25-34', + 4, + 0.078125, + 0.152284264, + 0.01015228426, + 0.5333333333, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '35-44', + 3, + 0.07291666667, + 0.0725388601, + 0.01015228426, + 0.2666666667, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '45-54', + 3, + 0.0625, + 0.03100775194, + 0.01015228426, + 0.1333333333, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '55-64', + 4, + 0.07291666667, + 0.1076923077, + 0.01015228426, + 0.4, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '65-74', + 6, + 0.0625, + 0.0989010989, + 0.01015228426, + 0.4, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '75+', + 0, + 0.0625, + 0, + 0.01015228426, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '15-24', + 19, + 0.08854166667, + 0.5596707819, + 0.05076142132, + 2.253521127, + 16, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '25-34', + 15, + 0.078125, + 0.3807106599, + 0.05076142132, + 1.408450704, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '35-44', + 9, + 0.07291666667, + 0.1813471503, + 0.05076142132, + 0.7042253521, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '45-54', + 9, + 0.0625, + 0.2170542636, + 0.05076142132, + 0.985915493, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '55-64', + 20, + 0.07291666667, + 0.5025641026, + 0.05076142132, + 1.971830986, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '65-74', + 11, + 0.0625, + 0.2637362637, + 0.05076142132, + 1.126760563, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '75+', + 6, + 0.0625, + 0.3952095808, + 0.05076142132, + 1.549295775, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '15-24', + 24, + 0.08854166667, + 0.7695473251, + 0.1472081218, + 3.255102041, + 22, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '25-34', + 48, + 0.078125, + 1.294416244, + 0.1472081218, + 5.030612245, + 34, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '35-44', + 51, + 0.07291666667, + 1.088082902, + 0.1472081218, + 4.43877551, + 30, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '45-54', + 52, + 0.0625, + 0.9612403101, + 0.1472081218, + 4.586734694, + 31, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '55-64', + 43, + 0.07291666667, + 1.041025641, + 0.1472081218, + 4.290816327, + 29, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '65-74', + 43, + 0.0625, + 1.021978022, + 0.1472081218, + 4.586734694, + 31, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '75+', + 16, + 0.0625, + 0.6826347305, + 0.1472081218, + 2.81122449, + 19, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '15-24', + 21, + 0.08854166667, + 0.5946502058, + 0.07106598985, + 2.428571429, + 17, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '25-34', + 18, + 0.078125, + 0.4949238579, + 0.07106598985, + 1.857142857, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '35-44', + 22, + 0.07291666667, + 0.4715025907, + 0.07106598985, + 1.857142857, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '45-54', + 18, + 0.0625, + 0.4341085271, + 0.07106598985, + 2, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '55-64', + 26, + 0.07291666667, + 0.6820512821, + 0.07106598985, + 2.714285714, + 19, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '65-74', + 19, + 0.0625, + 0.4615384615, + 0.07106598985, + 2, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '75+', + 3, + 0.0625, + 0.2874251497, + 0.07106598985, + 1.142857143, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '15-24', + 0, + 0.08854166667, + 0, + 0.005076142132, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '25-34', + 2, + 0.078125, + 0.03807106599, + 0.005076142132, + 0.125, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '35-44', + 4, + 0.07291666667, + 0.1088082902, + 0.005076142132, + 0.375, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '45-54', + 1, + 0.0625, + 0.03100775194, + 0.005076142132, + 0.125, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '55-64', + 0, + 0.07291666667, + 0, + 0.005076142132, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '65-74', + 4, + 0.0625, + 0.06593406593, + 0.005076142132, + 0.25, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '75+', + 1, + 0.0625, + 0.03592814371, + 0.005076142132, + 0.125, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '15-24', + 21, + 0.08854166667, + 0.6646090535, + 0.06598984772, + 2.975903614, + 19, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '25-34', + 19, + 0.078125, + 0.4568527919, + 0.06598984772, + 1.879518072, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '35-44', + 26, + 0.07291666667, + 0.5803108808, + 0.06598984772, + 2.506024096, + 16, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '45-54', + 19, + 0.0625, + 0.4341085271, + 0.06598984772, + 2.192771084, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '55-64', + 14, + 0.07291666667, + 0.358974359, + 0.06598984772, + 1.56626506, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '65-74', + 13, + 0.0625, + 0.2967032967, + 0.06598984772, + 1.409638554, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '75+', + 2, + 0.0625, + 0.1077844311, + 0.06598984772, + 0.4698795181, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '15-24', + 33, + 0.08854166667, + 0.8395061728, + 0.08629441624, + 3.487179487, + 24, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '25-34', + 35, + 0.078125, + 0.7233502538, + 0.08629441624, + 2.760683761, + 19, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '35-44', + 27, + 0.07291666667, + 0.5440414508, + 0.08629441624, + 2.179487179, + 15, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '45-54', + 21, + 0.0625, + 0.4341085271, + 0.08629441624, + 2.034188034, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '55-64', + 26, + 0.07291666667, + 0.5743589744, + 0.08629441624, + 2.324786325, + 16, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '65-74', + 21, + 0.0625, + 0.4945054945, + 0.08629441624, + 2.179487179, + 15, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '75+', + 6, + 0.0625, + 0.502994012, + 0.08629441624, + 2.034188034, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '15-24', + 19, + 0.08854166667, + 0.4547325103, + 0.04060913706, + 1.824561404, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '25-34', + 18, + 0.078125, + 0.4568527919, + 0.04060913706, + 1.684210526, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '35-44', + 10, + 0.07291666667, + 0.2901554404, + 0.04060913706, + 1.122807018, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '45-54', + 12, + 0.0625, + 0.2170542636, + 0.04060913706, + 0.9824561404, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '55-64', + 8, + 0.07291666667, + 0.2153846154, + 0.04060913706, + 0.8421052632, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '65-74', + 6, + 0.0625, + 0.1978021978, + 0.04060913706, + 0.8421052632, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '75+', + 5, + 0.0625, + 0.1796407186, + 0.04060913706, + 0.701754386, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '15-24', + 20, + 0.06914893617, + 0.5773195876, + 0.06878306878, + 2.348623853, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '25-34', + 26, + 0.06420972644, + 0.6514806378, + 0.06878306878, + 3.229357798, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '35-44', + 22, + 0.06914893617, + 0.472972973, + 0.06878306878, + 2.201834862, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '45-54', + 31, + 0.06914893617, + 0.6086956522, + 0.06878306878, + 2.642201835, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '55-64', + 14, + 0.05927051672, + 0.2986425339, + 0.06878306878, + 1.614678899, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '65-74', + 23, + 0.06420972644, + 0.5011337868, + 0.06878306878, + 2.495412844, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Love', + '75+', + 8, + 0.06914893617, + 0.2692307692, + 0.06878306878, + 1.467889908, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '15-24', + 11, + 0.06914893617, + 0.2886597938, + 0.06018518519, + 1.154639175, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '25-34', + 23, + 0.06420972644, + 0.4738041002, + 0.06018518519, + 2.309278351, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '35-44', + 27, + 0.06914893617, + 0.5990990991, + 0.06018518519, + 2.742268041, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '45-54', + 20, + 0.06914893617, + 0.4396135266, + 0.06018518519, + 1.87628866, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '55-64', + 15, + 0.05927051672, + 0.2986425339, + 0.06018518519, + 1.587628866, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '65-74', + 19, + 0.06420972644, + 0.3832199546, + 0.06018518519, + 1.87628866, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Love', + '75+', + 13, + 0.06914893617, + 0.4576923077, + 0.06018518519, + 2.453608247, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '15-24', + 25, + 0.06914893617, + 0.8298969072, + 0.1031746032, + 3.365853659, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '25-34', + 39, + 0.06420972644, + 0.7403189066, + 0.1031746032, + 3.658536585, + 25, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '35-44', + 31, + 0.06914893617, + 0.6306306306, + 0.1031746032, + 2.926829268, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '45-54', + 37, + 0.06914893617, + 0.8115942029, + 0.1031746032, + 3.512195122, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '55-64', + 36, + 0.05927051672, + 0.6244343891, + 0.1031746032, + 3.365853659, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '65-74', + 45, + 0.06420972644, + 0.7074829932, + 0.1031746032, + 3.512195122, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Love', + '75+', + 17, + 0.06914893617, + 0.6730769231, + 0.1031746032, + 3.658536585, + 25, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '15-24', + 12, + 0.06914893617, + 0.7577319588, + 0.09457671958, + 2.834355828, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '25-34', + 19, + 0.06420972644, + 0.7995444191, + 0.09457671958, + 3.644171779, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '35-44', + 17, + 0.06914893617, + 0.7882882883, + 0.09457671958, + 3.374233129, + 25, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '45-54', + 11, + 0.06914893617, + 0.4734299517, + 0.09457671958, + 1.889570552, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '55-64', + 10, + 0.05927051672, + 0.5158371041, + 0.09457671958, + 2.564417178, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '65-74', + 16, + 0.06420972644, + 0.8548752834, + 0.09457671958, + 3.914110429, + 29, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Love', + '75+', + 7, + 0.06914893617, + 0.7538461538, + 0.09457671958, + 3.779141104, + 28, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '15-24', + 18, + 0.06914893617, + 0.6134020619, + 0.03009259259, + 2.245283019, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '25-34', + 10, + 0.06420972644, + 0.1776765376, + 0.03009259259, + 0.7924528302, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '35-44', + 4, + 0.06914893617, + 0.1261261261, + 0.03009259259, + 0.5283018868, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '45-54', + 8, + 0.06914893617, + 0.1690821256, + 0.03009259259, + 0.6603773585, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '55-64', + 5, + 0.05927051672, + 0.1085972851, + 0.03009259259, + 0.5283018868, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '65-74', + 4, + 0.06420972644, + 0.08843537415, + 0.03009259259, + 0.3962264151, + 3, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Love', + '75+', + 8, + 0.06914893617, + 0.3769230769, + 0.03009259259, + 1.849056604, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '15-24', + 53, + 0.06914893617, + 0.4690721649, + 0.05158730159, + 1.879518072, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '25-34', + 46, + 0.06420972644, + 0.2369020501, + 0.05158730159, + 1.156626506, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '35-44', + 33, + 0.06914893617, + 0.5675675676, + 0.05158730159, + 2.602409639, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '45-54', + 20, + 0.06914893617, + 0.3381642512, + 0.05158730159, + 1.445783133, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '55-64', + 33, + 0.05927051672, + 0.407239819, + 0.05158730159, + 2.168674699, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '65-74', + 36, + 0.06420972644, + 0.3537414966, + 0.05158730159, + 1.734939759, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Love', + '75+', + 17, + 0.06914893617, + 0.1884615385, + 0.05158730159, + 1.012048193, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '15-24', + 11, + 0.06914893617, + 0.2886597938, + 0.02579365079, + 1.090909091, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '25-34', + 10, + 0.06420972644, + 0.2369020501, + 0.02579365079, + 1.090909091, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '35-44', + 9, + 0.06914893617, + 0.1891891892, + 0.02579365079, + 0.8181818182, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '45-54', + 13, + 0.06914893617, + 0.270531401, + 0.02579365079, + 1.090909091, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '55-64', + 7, + 0.05927051672, + 0.1357466063, + 0.02579365079, + 0.6818181818, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '65-74', + 5, + 0.06420972644, + 0.1179138322, + 0.02579365079, + 0.5454545455, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Love', + '75+', + 5, + 0.06914893617, + 0.1346153846, + 0.02579365079, + 0.6818181818, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '15-24', + 11, + 0.06914893617, + 0.3608247423, + 0.03869047619, + 1.363636364, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '25-34', + 14, + 0.06420972644, + 0.2961275626, + 0.03869047619, + 1.363636364, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '35-44', + 15, + 0.06914893617, + 0.3153153153, + 0.03869047619, + 1.363636364, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '45-54', + 11, + 0.06914893617, + 0.3043478261, + 0.03869047619, + 1.227272727, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '55-64', + 13, + 0.05927051672, + 0.2714932127, + 0.03869047619, + 1.363636364, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '65-74', + 9, + 0.06420972644, + 0.2063492063, + 0.03869047619, + 0.9545454545, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Love', + '75+', + 9, + 0.06914893617, + 0.2692307692, + 0.03869047619, + 1.363636364, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '15-24', + 25, + 0.06914893617, + 0.8659793814, + 0.128968254, + 3.428571429, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '25-34', + 28, + 0.06420972644, + 0.6218678815, + 0.128968254, + 3, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '35-44', + 41, + 0.06914893617, + 0.8828828829, + 0.128968254, + 4, + 28, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '45-54', + 46, + 0.06914893617, + 1.082125604, + 0.128968254, + 4.571428571, + 32, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '55-64', + 34, + 0.05927051672, + 0.7330316742, + 0.128968254, + 3.857142857, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '65-74', + 59, + 0.06420972644, + 1.149659864, + 0.128968254, + 5.571428571, + 39, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Love', + '75+', + 35, + 0.06914893617, + 1.05, + 0.128968254, + 5.571428571, + 39, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '15-24', + 21, + 0.06914893617, + 0.793814433, + 0.08167989418, + 3.096296296, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '25-34', + 28, + 0.06420972644, + 0.6514806378, + 0.08167989418, + 3.096296296, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '35-44', + 26, + 0.06914893617, + 0.5990990991, + 0.08167989418, + 2.674074074, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '45-54', + 25, + 0.06914893617, + 0.5748792271, + 0.08167989418, + 2.392592593, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '55-64', + 16, + 0.05927051672, + 0.4615384615, + 0.08167989418, + 2.392592593, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '65-74', + 15, + 0.06420972644, + 0.5011337868, + 0.08167989418, + 2.392592593, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Love', + '75+', + 10, + 0.06914893617, + 0.5653846154, + 0.08167989418, + 2.955555556, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '15-24', + 19, + 0.06914893617, + 0.5412371134, + 0.06448412698, + 2.027027027, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '25-34', + 30, + 0.06420972644, + 0.7107061503, + 0.06448412698, + 3.243243243, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '35-44', + 20, + 0.06914893617, + 0.4099099099, + 0.06448412698, + 1.756756757, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '45-54', + 16, + 0.06914893617, + 0.3381642512, + 0.06448412698, + 1.351351351, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '55-64', + 23, + 0.05927051672, + 0.407239819, + 0.06448412698, + 2.027027027, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '65-74', + 20, + 0.06420972644, + 0.3832199546, + 0.06448412698, + 1.756756757, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Love', + '75+', + 22, + 0.06914893617, + 0.5653846154, + 0.06448412698, + 2.837837838, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '15-24', + 13, + 0.06914893617, + 0.3969072165, + 0.05158730159, + 1.483146067, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '25-34', + 13, + 0.06420972644, + 0.3553530752, + 0.05158730159, + 1.617977528, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '35-44', + 16, + 0.06914893617, + 0.3468468468, + 0.05158730159, + 1.483146067, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '45-54', + 20, + 0.06914893617, + 0.4734299517, + 0.05158730159, + 1.887640449, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '55-64', + 18, + 0.05927051672, + 0.407239819, + 0.05158730159, + 2.02247191, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '65-74', + 14, + 0.06420972644, + 0.3537414966, + 0.05158730159, + 1.617977528, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Love', + '75+', + 13, + 0.06914893617, + 0.3769230769, + 0.05158730159, + 1.887640449, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '15-24', + 19, + 0.06914893617, + 0.5412371134, + 0.1031746032, + 2.057142857, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '25-34', + 33, + 0.06420972644, + 0.6514806378, + 0.1031746032, + 3.017142857, + 22, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '35-44', + 41, + 0.06914893617, + 0.8198198198, + 0.1031746032, + 3.565714286, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '45-54', + 28, + 0.06914893617, + 0.6086956522, + 0.1031746032, + 2.468571429, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '55-64', + 45, + 0.05927051672, + 0.7601809955, + 0.1031746032, + 3.84, + 28, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '65-74', + 48, + 0.06420972644, + 0.7959183673, + 0.1031746032, + 3.702857143, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Love', + '75+', + 32, + 0.06914893617, + 1.05, + 0.1031746032, + 5.348571429, + 39, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '15-24', + 26, + 0.06914893617, + 0.7577319588, + 0.06448412698, + 2.916666667, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '25-34', + 22, + 0.06420972644, + 0.5330296128, + 0.06448412698, + 2.5, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '35-44', + 20, + 0.06914893617, + 0.3468468468, + 0.06448412698, + 1.527777778, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '45-54', + 21, + 0.06914893617, + 0.5072463768, + 0.06448412698, + 2.083333333, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '55-64', + 23, + 0.05927051672, + 0.407239819, + 0.06448412698, + 2.083333333, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '65-74', + 17, + 0.06420972644, + 0.3537414966, + 0.06448412698, + 1.666666667, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Love', + '75+', + 12, + 0.06914893617, + 0.4307692308, + 0.06448412698, + 2.222222222, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '15-24', + 19, + 0.06914893617, + 0.4690721649, + 0.04728835979, + 1.881578947, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '25-34', + 14, + 0.06420972644, + 0.2665148064, + 0.04728835979, + 1.302631579, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '35-44', + 24, + 0.06914893617, + 0.3468468468, + 0.04728835979, + 1.592105263, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '45-54', + 20, + 0.06914893617, + 0.4057971014, + 0.04728835979, + 1.736842105, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '55-64', + 17, + 0.05927051672, + 0.3529411765, + 0.04728835979, + 1.881578947, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '65-74', + 9, + 0.06420972644, + 0.2358276644, + 0.04728835979, + 1.157894737, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Love', + '75+', + 7, + 0.06914893617, + 0.2692307692, + 0.04728835979, + 1.447368421, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '15-24', + 5, + 0.06914893617, + 0.1804123711, + 0.04298941799, + 0.7462686567, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '25-34', + 11, + 0.06420972644, + 0.2369020501, + 0.04298941799, + 1.194029851, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '35-44', + 16, + 0.06914893617, + 0.3468468468, + 0.04298941799, + 1.641791045, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '45-54', + 19, + 0.06914893617, + 0.3719806763, + 0.04298941799, + 1.641791045, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '55-64', + 7, + 0.05927051672, + 0.1357466063, + 0.04298941799, + 0.7462686567, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '65-74', + 19, + 0.06420972644, + 0.2947845805, + 0.04298941799, + 1.492537313, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Love', + '75+', + 15, + 0.06914893617, + 0.4576923077, + 0.04298941799, + 2.537313433, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '15-24', + 28, + 0.06914893617, + 0.6855670103, + 0.1418650794, + 2.690987124, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '25-34', + 42, + 0.06420972644, + 0.9179954442, + 0.1418650794, + 4.39055794, + 31, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '35-44', + 48, + 0.06914893617, + 1.355855856, + 0.1418650794, + 6.090128755, + 43, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '45-54', + 63, + 0.06914893617, + 1.183574879, + 0.1418650794, + 4.957081545, + 35, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '55-64', + 55, + 0.05927051672, + 1.113122172, + 0.1418650794, + 5.806866953, + 41, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '65-74', + 37, + 0.06420972644, + 0.9433106576, + 0.1418650794, + 4.532188841, + 32, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Love', + '75+', + 38, + 0.06914893617, + 0.8615384615, + 0.1418650794, + 4.532188841, + 32, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '15-24', + 5, + 0.06914893617, + 0.2886597938, + 0.07308201058, + 1.182608696, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '25-34', + 15, + 0.06420972644, + 0.6218678815, + 0.07308201058, + 3.104347826, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '35-44', + 15, + 0.06914893617, + 0.5045045045, + 0.07308201058, + 2.365217391, + 16, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '45-54', + 11, + 0.06914893617, + 0.4734299517, + 0.07308201058, + 2.069565217, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '55-64', + 14, + 0.05927051672, + 0.6244343891, + 0.07308201058, + 3.4, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '65-74', + 13, + 0.06420972644, + 0.619047619, + 0.07308201058, + 3.104347826, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Love', + '75+', + 4, + 0.06914893617, + 0.3230769231, + 0.07308201058, + 1.773913043, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '15-24', + 13, + 0.06914893617, + 0.3969072165, + 0.05158730159, + 1.360824742, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '25-34', + 19, + 0.06420972644, + 0.3849658314, + 0.05158730159, + 1.608247423, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '35-44', + 12, + 0.06914893617, + 0.2837837838, + 0.05158730159, + 1.113402062, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '45-54', + 13, + 0.06914893617, + 0.3381642512, + 0.05158730159, + 1.237113402, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '55-64', + 20, + 0.05927051672, + 0.407239819, + 0.05158730159, + 1.855670103, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '65-74', + 26, + 0.06420972644, + 0.3537414966, + 0.05158730159, + 1.484536082, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Love', + '75+', + 3, + 0.06914893617, + 0.7269230769, + 0.05158730159, + 3.340206186, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '15-24', + 3, + 0.06914893617, + 0.1804123711, + 0.0171957672, + 0.6451612903, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '25-34', + 0, + 0.06420972644, + 0, + 0.0171957672, + 0, + 0, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '35-44', + 4, + 0.06914893617, + 0.1891891892, + 0.0171957672, + 0.7741935484, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '45-54', + 2, + 0.06914893617, + 0.1352657005, + 0.0171957672, + 0.5161290323, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '55-64', + 3, + 0.05927051672, + 0.1085972851, + 0.0171957672, + 0.5161290323, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '65-74', + 7, + 0.06420972644, + 0.2947845805, + 0.0171957672, + 1.290322581, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Love', + '75+', + 1, + 0.06914893617, + 0.05384615385, + 0.0171957672, + 0.2580645161, + 2, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '15-24', + 12, + 0.06914893617, + 0.3608247423, + 0.04728835979, + 1.506849315, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '25-34', + 13, + 0.06420972644, + 0.3257403189, + 0.04728835979, + 1.657534247, + 11, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '35-44', + 19, + 0.06914893617, + 0.3153153153, + 0.04728835979, + 1.506849315, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '45-54', + 29, + 0.06914893617, + 0.4734299517, + 0.04728835979, + 2.109589041, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '55-64', + 21, + 0.05927051672, + 0.3529411765, + 0.04728835979, + 1.95890411, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '65-74', + 20, + 0.06420972644, + 0.2358276644, + 0.04728835979, + 1.205479452, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Love', + '75+', + 1, + 0.06914893617, + 0.1884615385, + 0.04728835979, + 1.054794521, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '15-24', + 8, + 0.06914893617, + 0.2525773196, + 0.05158730159, + 0.976744186, + 7, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '25-34', + 13, + 0.06420972644, + 0.2665148064, + 0.05158730159, + 1.255813953, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '35-44', + 15, + 0.06914893617, + 0.2522522523, + 0.05158730159, + 1.11627907, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '45-54', + 18, + 0.06914893617, + 0.4734299517, + 0.05158730159, + 1.953488372, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '55-64', + 22, + 0.05927051672, + 0.407239819, + 0.05158730159, + 2.093023256, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '65-74', + 19, + 0.06420972644, + 0.4421768707, + 0.05158730159, + 2.093023256, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Love', + '75+', + 11, + 0.06914893617, + 0.4846153846, + 0.05158730159, + 2.511627907, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '15-24', + 22, + 0.06914893617, + 0.7216494845, + 0.1117724868, + 2.872928177, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '25-34', + 33, + 0.06420972644, + 0.7107061503, + 0.1117724868, + 3.447513812, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '35-44', + 39, + 0.06914893617, + 0.7252252252, + 0.1117724868, + 3.303867403, + 23, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '45-54', + 43, + 0.06914893617, + 0.8792270531, + 0.1117724868, + 3.73480663, + 26, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '55-64', + 42, + 0.05927051672, + 0.7873303167, + 0.1117724868, + 4.165745856, + 29, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '65-74', + 37, + 0.06420972644, + 0.7959183673, + 0.1117724868, + 3.878453039, + 27, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Love', + '75+', + 26, + 0.06914893617, + 0.8615384615, + 0.1117724868, + 4.596685083, + 32, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '15-24', + 15, + 0.06914893617, + 0.4690721649, + 0.08167989418, + 1.646666667, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '25-34', + 26, + 0.06420972644, + 0.5330296128, + 0.08167989418, + 2.28, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '35-44', + 41, + 0.06914893617, + 0.7567567568, + 0.08167989418, + 3.04, + 24, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '45-54', + 25, + 0.06914893617, + 0.6425120773, + 0.08167989418, + 2.406666667, + 19, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '55-64', + 20, + 0.05927051672, + 0.3800904977, + 0.08167989418, + 1.773333333, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '65-74', + 29, + 0.06420972644, + 0.619047619, + 0.08167989418, + 2.66, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Love', + '75+', + 16, + 0.06914893617, + 1.103846154, + 0.08167989418, + 5.193333333, + 41, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '15-24', + 21, + 0.06914893617, + 0.6134020619, + 0.04728835979, + 2.428571429, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '25-34', + 23, + 0.06420972644, + 0.4145785877, + 0.04728835979, + 2, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '35-44', + 18, + 0.06914893617, + 0.4099099099, + 0.04728835979, + 1.857142857, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '45-54', + 17, + 0.06914893617, + 0.3381642512, + 0.04728835979, + 1.428571429, + 10, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '55-64', + 17, + 0.05927051672, + 0.3257918552, + 0.04728835979, + 1.714285714, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '65-74', + 7, + 0.06420972644, + 0.1473922902, + 0.04728835979, + 0.7142857143, + 5, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Love', + '75+', + 7, + 0.06914893617, + 0.1615384615, + 0.04728835979, + 0.8571428571, + 6, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '15-24', + 10, + 0.06914893617, + 0.324742268, + 0.08167989418, + 1.248175182, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '25-34', + 32, + 0.06420972644, + 0.5922551253, + 0.08167989418, + 2.773722628, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '35-44', + 33, + 0.06914893617, + 0.6306306306, + 0.08167989418, + 2.773722628, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '45-54', + 26, + 0.06914893617, + 0.6763285024, + 0.08167989418, + 2.773722628, + 20, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '55-64', + 26, + 0.05927051672, + 0.4886877828, + 0.08167989418, + 2.496350365, + 18, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '65-74', + 30, + 0.06420972644, + 0.619047619, + 0.08167989418, + 2.912408759, + 21, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Love', + '75+', + 20, + 0.06914893617, + 0.7807692308, + 0.08167989418, + 4.02189781, + 29, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '15-24', + 17, + 0.06914893617, + 0.4329896907, + 0.05158730159, + 1.6, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '25-34', + 21, + 0.06420972644, + 0.3553530752, + 0.05158730159, + 1.6, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '35-44', + 22, + 0.06914893617, + 0.4099099099, + 0.05158730159, + 1.733333333, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '45-54', + 14, + 0.06914893617, + 0.3043478261, + 0.05158730159, + 1.2, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '55-64', + 21, + 0.05927051672, + 0.3529411765, + 0.05158730159, + 1.733333333, + 13, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '65-74', + 19, + 0.06420972644, + 0.4126984127, + 0.05158730159, + 1.866666667, + 14, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Love', + '75+', + 7, + 0.06914893617, + 0.4576923077, + 0.05158730159, + 2.266666667, + 17, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '15-24', + 22, + 0.06914893617, + 0.5412371134, + 0.04298941799, + 2.205882353, + 15, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '25-34', + 12, + 0.06420972644, + 0.2369020501, + 0.04298941799, + 1.176470588, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '35-44', + 17, + 0.06914893617, + 0.3783783784, + 0.04298941799, + 1.764705882, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '45-54', + 15, + 0.06914893617, + 0.3043478261, + 0.04298941799, + 1.323529412, + 9, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '55-64', + 17, + 0.05927051672, + 0.3257918552, + 0.04298941799, + 1.764705882, + 12, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '65-74', + 7, + 0.06420972644, + 0.2358276644, + 0.04298941799, + 1.176470588, + 8, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Love', + '75+', + 4, + 0.06914893617, + 0.1076923077, + 0.04298941799, + 0.5882352941, + 4, + 0.384353741496599, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '15-24', + 3, + 0.0306122449, + 0.06451612903, + 0.02222222222, + 0.2962962963, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Peace', + '15-24', + 13, + 0.03571428571, + 0.3701923077, + 0.04188481675, + 1.62962963, + 11, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Freedom', + '15-24', + 8, + 0.03888888889, + 0.2346368715, + 0.04191616766, + 0.8235294118, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '25-34', + 6, + 0.04081632653, + 0.1951219512, + 0.02222222222, + 0.5925925926, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Peace', + '25-34', + 10, + 0.04081632653, + 0.281938326, + 0.04188481675, + 1.185185185, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Freedom', + '25-34', + 9, + 0.03888888889, + 0.358974359, + 0.04191616766, + 1.098039216, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '35-44', + 7, + 0.0306122449, + 0.1704545455, + 0.02222222222, + 0.7407407407, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Peace', + '35-44', + 10, + 0.03571428571, + 0.2425742574, + 0.04188481675, + 1.037037037, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Freedom', + '35-44', + 8, + 0.03888888889, + 0.227027027, + 0.04191616766, + 0.8235294118, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '45-54', + 5, + 0.03571428571, + 0.1160220994, + 0.02222222222, + 0.4444444444, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Peace', + '45-54', + 12, + 0.03571428571, + 0.2512820513, + 0.04188481675, + 1.037037037, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Freedom', + '45-54', + 13, + 0.03888888889, + 0.2987804878, + 0.04191616766, + 0.9607843137, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '55-64', + 4, + 0.03571428571, + 0.1546961326, + 0.02222222222, + 0.5925925926, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Peace', + '55-64', + 8, + 0.04081632653, + 0.2962962963, + 0.04188481675, + 0.8888888889, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Freedom', + '55-64', + 10, + 0.03888888889, + 0.3353293413, + 0.04191616766, + 1.098039216, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '65-74', + 9, + 0.03571428571, + 0.2832369942, + 0.02222222222, + 1.037037037, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Peace', + '65-74', + 14, + 0.0306122449, + 0.3448275862, + 0.04188481675, + 1.481481481, + 10, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Freedom', + '65-74', + 10, + 0.03333333333, + 0.2658227848, + 0.04191616766, + 0.9607843137, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '75+', + 1, + 0.04081632653, + 0.07111111111, + 0.02222222222, + 0.2962962963, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Peace', + '75+', + 4, + 0.0306122449, + 0.1886792453, + 0.04188481675, + 0.7407407407, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Freedom', + '75+', + 8, + 0.02222222222, + 0.288, + 0.04191616766, + 1.235294118, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '15-24', + 13, + 0.0306122449, + 0.3225806452, + 0.02777777778, + 1.428571429, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Peace', + '15-24', + 12, + 0.03571428571, + 0.3365384615, + 0.05759162304, + 1.375, + 10, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Freedom', + '15-24', + 16, + 0.03888888889, + 0.469273743, + 0.05389221557, + 1.770491803, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '25-34', + 6, + 0.04081632653, + 0.1951219512, + 0.02777777778, + 0.5714285714, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Peace', + '25-34', + 16, + 0.04081632653, + 0.422907489, + 0.05759162304, + 1.65, + 12, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Freedom', + '25-34', + 17, + 0.03888888889, + 0.5384615385, + 0.05389221557, + 1.770491803, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '35-44', + 4, + 0.0306122449, + 0.1022727273, + 0.02777777778, + 0.4285714286, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Peace', + '35-44', + 25, + 0.03571428571, + 0.6237623762, + 0.05759162304, + 2.475, + 18, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Freedom', + '35-44', + 5, + 0.03888888889, + 0.1513513514, + 0.05389221557, + 0.5901639344, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '45-54', + 12, + 0.03571428571, + 0.270718232, + 0.02777777778, + 1, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Peace', + '45-54', + 15, + 0.03571428571, + 0.3230769231, + 0.05759162304, + 1.2375, + 9, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Freedom', + '45-54', + 10, + 0.03888888889, + 0.2987804878, + 0.05389221557, + 1.032786885, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '55-64', + 4, + 0.03571428571, + 0.1160220994, + 0.02777777778, + 0.4285714286, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Peace', + '55-64', + 19, + 0.04081632653, + 0.7407407407, + 0.05759162304, + 2.0625, + 15, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Freedom', + '55-64', + 12, + 0.03888888889, + 0.4191616766, + 0.05389221557, + 1.475409836, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '65-74', + 9, + 0.03571428571, + 0.2427745665, + 0.02777777778, + 0.8571428571, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Peace', + '65-74', + 12, + 0.0306122449, + 0.275862069, + 0.05759162304, + 1.1, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Freedom', + '65-74', + 12, + 0.03333333333, + 0.3417721519, + 0.05389221557, + 1.327868852, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '75+', + 1, + 0.04081632653, + 0.07111111111, + 0.02777777778, + 0.2857142857, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Peace', + '75+', + 6, + 0.0306122449, + 0.3018867925, + 0.05759162304, + 1.1, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Freedom', + '75+', + 6, + 0.02222222222, + 0.224, + 0.05389221557, + 1.032786885, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '15-24', + 8, + 0.0306122449, + 0.2258064516, + 0.02777777778, + 0.9722222222, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Peace', + '15-24', + 1, + 0.03571428571, + 0.03365384615, + 0.005235602094, + 0.1, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Freedom', + '15-24', + 3, + 0.03888888889, + 0.1173184358, + 0.01796407186, + 0.5294117647, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '25-34', + 4, + 0.04081632653, + 0.1463414634, + 0.02777777778, + 0.4166666667, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Peace', + '25-34', + 1, + 0.04081632653, + 0.03524229075, + 0.005235602094, + 0.1, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Freedom', + '25-34', + 3, + 0.03888888889, + 0.08974358974, + 0.01796407186, + 0.3529411765, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '35-44', + 6, + 0.0306122449, + 0.1363636364, + 0.02777777778, + 0.5555555556, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Peace', + '35-44', + 2, + 0.03571428571, + 0.03465346535, + 0.005235602094, + 0.1, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Freedom', + '35-44', + 8, + 0.03888888889, + 0.1891891892, + 0.01796407186, + 0.8823529412, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '45-54', + 5, + 0.03571428571, + 0.1160220994, + 0.02777777778, + 0.4166666667, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Peace', + '45-54', + 3, + 0.03571428571, + 0.07179487179, + 0.005235602094, + 0.2, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Freedom', + '45-54', + 6, + 0.03888888889, + 0.1707317073, + 0.01796407186, + 0.7058823529, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '55-64', + 8, + 0.03571428571, + 0.1933701657, + 0.02777777778, + 0.6944444444, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Peace', + '55-64', + 2, + 0.04081632653, + 0.04938271605, + 0.005235602094, + 0.1, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Freedom', + '55-64', + 1, + 0.03888888889, + 0.04191616766, + 0.01796407186, + 0.1764705882, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '65-74', + 9, + 0.03571428571, + 0.2023121387, + 0.02777777778, + 0.6944444444, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Peace', + '65-74', + 2, + 0.0306122449, + 0.03448275862, + 0.005235602094, + 0.1, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Freedom', + '65-74', + 4, + 0.03333333333, + 0.07594936709, + 0.01796407186, + 0.3529411765, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '75+', + 6, + 0.04081632653, + 0.32, + 0.02777777778, + 1.25, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Peace', + '75+', + 2, + 0.0306122449, + 0.1132075472, + 0.005235602094, + 0.3, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Freedom', + '75+', + 0, + 0.02222222222, + 0, + 0.01796407186, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '15-24', + 5, + 0.0306122449, + 0.2580645161, + 0.03333333333, + 1.263157895, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Peace', + '15-24', + 2, + 0.03571428571, + 0.1009615385, + 0.01570680628, + 0.3913043478, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Freedom', + '15-24', + 4, + 0.03888888889, + 0.2346368715, + 0.01796407186, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '25-34', + 7, + 0.04081632653, + 0.487804878, + 0.03333333333, + 1.578947368, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Peace', + '25-34', + 2, + 0.04081632653, + 0.1057268722, + 0.01570680628, + 0.3913043478, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Freedom', + '25-34', + 1, + 0.03888888889, + 0.08974358974, + 0.01796407186, + 0.2857142857, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '35-44', + 1, + 0.0306122449, + 0.06818181818, + 0.03333333333, + 0.3157894737, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Peace', + '35-44', + 0, + 0.03571428571, + 0, + 0.01570680628, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Freedom', + '35-44', + 5, + 0.03888888889, + 0.2648648649, + 0.01796407186, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '45-54', + 3, + 0.03571428571, + 0.1546961326, + 0.03333333333, + 0.6315789474, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Peace', + '45-54', + 4, + 0.03571428571, + 0.2153846154, + 0.01570680628, + 0.7826086957, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Freedom', + '45-54', + 2, + 0.03888888889, + 0.1280487805, + 0.01796407186, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '55-64', + 3, + 0.03571428571, + 0.2320441989, + 0.03333333333, + 0.9473684211, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Peace', + '55-64', + 0, + 0.04081632653, + 0, + 0.01570680628, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Freedom', + '55-64', + 0, + 0.03888888889, + 0, + 0.01796407186, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '65-74', + 3, + 0.03571428571, + 0.2427745665, + 0.03333333333, + 0.9473684211, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Peace', + '65-74', + 4, + 0.0306122449, + 0.2068965517, + 0.01570680628, + 0.7826086957, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Freedom', + '65-74', + 1, + 0.03333333333, + 0.07594936709, + 0.01796407186, + 0.2857142857, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '75+', + 1, + 0.04081632653, + 0.07111111111, + 0.03333333333, + 0.3157894737, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Peace', + '75+', + 1, + 0.0306122449, + 0.1886792453, + 0.01570680628, + 0.652173913, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Freedom', + '75+', + 0, + 0.02222222222, + 0.032, + 0.01796407186, + 0.1428571429, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '15-24', + 12, + 0.0306122449, + 0.3548387097, + 0.06111111111, + 1.551282051, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Peace', + '15-24', + 2, + 0.03571428571, + 0.06730769231, + 0.01570680628, + 0.2727272727, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Freedom', + '15-24', + 1, + 0.03888888889, + 0.03910614525, + 0.02395209581, + 0.1379310345, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '25-34', + 17, + 0.04081632653, + 0.5365853659, + 0.06111111111, + 1.551282051, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Peace', + '25-34', + 6, + 0.04081632653, + 0.140969163, + 0.01570680628, + 0.5454545455, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Freedom', + '25-34', + 4, + 0.03888888889, + 0.1346153846, + 0.02395209581, + 0.4137931034, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '35-44', + 6, + 0.0306122449, + 0.1704545455, + 0.06111111111, + 0.7051282051, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Peace', + '35-44', + 3, + 0.03571428571, + 0.103960396, + 0.01570680628, + 0.4090909091, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Freedom', + '35-44', + 5, + 0.03888888889, + 0.1513513514, + 0.02395209581, + 0.5517241379, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '45-54', + 17, + 0.03571428571, + 0.4640883978, + 0.06111111111, + 1.692307692, + 12, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Peace', + '45-54', + 4, + 0.03571428571, + 0.1076923077, + 0.01570680628, + 0.4090909091, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Freedom', + '45-54', + 6, + 0.03888888889, + 0.1707317073, + 0.02395209581, + 0.5517241379, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '55-64', + 12, + 0.03571428571, + 0.3480662983, + 0.06111111111, + 1.269230769, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Peace', + '55-64', + 6, + 0.04081632653, + 0.1975308642, + 0.01570680628, + 0.5454545455, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Freedom', + '55-64', + 7, + 0.03888888889, + 0.2095808383, + 0.02395209581, + 0.6896551724, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '65-74', + 19, + 0.03571428571, + 0.4855491329, + 0.06111111111, + 1.692307692, + 12, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Peace', + '65-74', + 2, + 0.0306122449, + 0.06896551724, + 0.01570680628, + 0.2727272727, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Freedom', + '65-74', + 5, + 0.03333333333, + 0.1139240506, + 0.02395209581, + 0.4137931034, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '75+', + 10, + 0.04081632653, + 0.64, + 0.06111111111, + 2.538461538, + 18, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Peace', + '75+', + 2, + 0.0306122449, + 0.1509433962, + 0.01570680628, + 0.5454545455, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Freedom', + '75+', + 5, + 0.02222222222, + 0.288, + 0.02395209581, + 1.24137931, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '15-24', + 27, + 0.0306122449, + 0.2258064516, + 0.05, + 1.016129032, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Peace', + '15-24', + 20, + 0.03571428571, + 0.1682692308, + 0.04188481675, + 0.7407407407, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Freedom', + '15-24', + 43, + 0.03888888889, + 0.4301675978, + 0.06586826347, + 1.49382716, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '25-34', + 50, + 0.04081632653, + 0.4390243902, + 0.05, + 1.306451613, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Peace', + '25-34', + 52, + 0.04081632653, + 0.3171806167, + 0.04188481675, + 1.333333333, + 9, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Freedom', + '25-34', + 50, + 0.03888888889, + 0.4038461538, + 0.06586826347, + 1.222222222, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '35-44', + 22, + 0.0306122449, + 0.4090909091, + 0.05, + 1.741935484, + 12, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Peace', + '35-44', + 8, + 0.03571428571, + 0.1386138614, + 0.04188481675, + 0.5925925926, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Freedom', + '35-44', + 26, + 0.03888888889, + 0.5297297297, + 0.06586826347, + 1.901234568, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '45-54', + 28, + 0.03571428571, + 0.5801104972, + 0.05, + 2.177419355, + 15, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Peace', + '45-54', + 24, + 0.03571428571, + 0.4666666667, + 0.04188481675, + 1.925925926, + 13, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Freedom', + '45-54', + 26, + 0.03888888889, + 0.5975609756, + 0.06586826347, + 1.901234568, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '55-64', + 12, + 0.03571428571, + 0.1933701657, + 0.05, + 0.7258064516, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Peace', + '55-64', + 9, + 0.04081632653, + 0.1975308642, + 0.04188481675, + 0.5925925926, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Freedom', + '55-64', + 25, + 0.03888888889, + 0.502994012, + 0.06586826347, + 1.62962963, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '65-74', + 21, + 0.03571428571, + 0.2832369942, + 0.05, + 1.016129032, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Peace', + '65-74', + 17, + 0.0306122449, + 0.2068965517, + 0.04188481675, + 0.8888888889, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Freedom', + '65-74', + 37, + 0.03333333333, + 0.4556962025, + 0.06586826347, + 1.62962963, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '75+', + 16, + 0.04081632653, + 0.2488888889, + 0.05, + 1.016129032, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Peace', + '75+', + 29, + 0.0306122449, + 0.4905660377, + 0.04188481675, + 1.925925926, + 13, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Freedom', + '75+', + 21, + 0.02222222222, + 0.288, + 0.06586826347, + 1.222222222, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '15-24', + 6, + 0.0306122449, + 0.1290322581, + 0.02222222222, + 0.5925925926, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Peace', + '15-24', + 30, + 0.03571428571, + 0.7403846154, + 0.1047120419, + 3.098591549, + 22, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Freedom', + '15-24', + 15, + 0.03888888889, + 0.3910614525, + 0.04191616766, + 1.590909091, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '25-34', + 3, + 0.04081632653, + 0.09756097561, + 0.02222222222, + 0.2962962963, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Peace', + '25-34', + 38, + 0.04081632653, + 1.127753304, + 0.1047120419, + 4.507042254, + 32, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Freedom', + '25-34', + 3, + 0.03888888889, + 0.08974358974, + 0.04191616766, + 0.3181818182, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '35-44', + 1, + 0.0306122449, + 0.03409090909, + 0.02222222222, + 0.1481481481, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Peace', + '35-44', + 39, + 0.03571428571, + 0.8663366337, + 0.1047120419, + 3.521126761, + 25, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Freedom', + '35-44', + 12, + 0.03888888889, + 0.2648648649, + 0.04191616766, + 1.113636364, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '45-54', + 3, + 0.03571428571, + 0.0773480663, + 0.02222222222, + 0.2962962963, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Peace', + '45-54', + 27, + 0.03571428571, + 0.5743589744, + 0.1047120419, + 2.253521127, + 16, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Freedom', + '45-54', + 16, + 0.03888888889, + 0.3841463415, + 0.04191616766, + 1.431818182, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '55-64', + 14, + 0.03571428571, + 0.3867403315, + 0.02222222222, + 1.481481481, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Peace', + '55-64', + 24, + 0.04081632653, + 0.8395061728, + 0.1047120419, + 2.394366197, + 17, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Freedom', + '55-64', + 5, + 0.03888888889, + 0.1676646707, + 0.04191616766, + 0.6363636364, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '65-74', + 6, + 0.03571428571, + 0.2023121387, + 0.02222222222, + 0.7407407407, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Peace', + '65-74', + 23, + 0.0306122449, + 0.6206896552, + 0.1047120419, + 2.535211268, + 18, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Freedom', + '65-74', + 8, + 0.03333333333, + 0.2658227848, + 0.04191616766, + 1.113636364, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '75+', + 4, + 0.04081632653, + 0.1066666667, + 0.02222222222, + 0.4444444444, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Peace', + '75+', + 13, + 0.0306122449, + 0.4528301887, + 0.1047120419, + 1.690140845, + 12, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Freedom', + '75+', + 5, + 0.02222222222, + 0.16, + 0.04191616766, + 0.7954545455, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '15-24', + 18, + 0.0306122449, + 0.5161290323, + 0.04444444444, + 2.133333333, + 16, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Peace', + '15-24', + 3, + 0.03571428571, + 0.1009615385, + 0.01047120419, + 0.3529411765, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Freedom', + '15-24', + 8, + 0.03888888889, + 0.2737430168, + 0.04191616766, + 1.065217391, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '25-34', + 14, + 0.04081632653, + 0.487804878, + 0.04444444444, + 1.333333333, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Peace', + '25-34', + 4, + 0.04081632653, + 0.1057268722, + 0.01047120419, + 0.3529411765, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Freedom', + '25-34', + 13, + 0.03888888889, + 0.4038461538, + 0.04191616766, + 1.369565217, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '35-44', + 7, + 0.0306122449, + 0.1363636364, + 0.04444444444, + 0.5333333333, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Peace', + '35-44', + 6, + 0.03571428571, + 0.1386138614, + 0.01047120419, + 0.4705882353, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Freedom', + '35-44', + 13, + 0.03888888889, + 0.3027027027, + 0.04191616766, + 1.217391304, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '45-54', + 3, + 0.03571428571, + 0.0773480663, + 0.04444444444, + 0.2666666667, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Peace', + '45-54', + 2, + 0.03571428571, + 0.0358974359, + 0.01047120419, + 0.1176470588, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Freedom', + '45-54', + 10, + 0.03888888889, + 0.3414634146, + 0.04191616766, + 1.217391304, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '55-64', + 10, + 0.03571428571, + 0.270718232, + 0.04444444444, + 0.9333333333, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Peace', + '55-64', + 5, + 0.04081632653, + 0.1481481481, + 0.01047120419, + 0.3529411765, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Freedom', + '55-64', + 7, + 0.03888888889, + 0.2095808383, + 0.04191616766, + 0.7608695652, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '65-74', + 15, + 0.03571428571, + 0.4450867052, + 0.04444444444, + 1.466666667, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Peace', + '65-74', + 3, + 0.0306122449, + 0.06896551724, + 0.01047120419, + 0.2352941176, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Freedom', + '65-74', + 7, + 0.03333333333, + 0.1898734177, + 0.04191616766, + 0.7608695652, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '75+', + 9, + 0.04081632653, + 0.3555555556, + 0.04444444444, + 1.333333333, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Peace', + '75+', + 1, + 0.0306122449, + 0.03773584906, + 0.01047120419, + 0.1176470588, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Freedom', + '75+', + 3, + 0.02222222222, + 0.128, + 0.04191616766, + 0.6086956522, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '15-24', + 0, + 0.0306122449, + 0, + 0.01111111111, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Peace', + '15-24', + 0, + 0.03571428571, + 0, + 0.005235602094, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Freedom', + '15-24', + 0, + 0.03888888889, + 0, + 0.0119760479, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '25-34', + 4, + 0.04081632653, + 0.1463414634, + 0.01111111111, + 0.4, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Peace', + '25-34', + 1, + 0.04081632653, + 0.03524229075, + 0.005235602094, + 0.2, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Freedom', + '25-34', + 3, + 0.03888888889, + 0.08974358974, + 0.0119760479, + 0.3333333333, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '35-44', + 4, + 0.0306122449, + 0.1022727273, + 0.01111111111, + 0.4, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Peace', + '35-44', + 1, + 0.03571428571, + 0.03465346535, + 0.005235602094, + 0.2, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Freedom', + '35-44', + 1, + 0.03888888889, + 0.03783783784, + 0.0119760479, + 0.1666666667, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '45-54', + 1, + 0.03571428571, + 0.03867403315, + 0.01111111111, + 0.1333333333, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Peace', + '45-54', + 2, + 0.03571428571, + 0.0358974359, + 0.005235602094, + 0.2, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Freedom', + '45-54', + 3, + 0.03888888889, + 0.08536585366, + 0.0119760479, + 0.3333333333, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '55-64', + 3, + 0.03571428571, + 0.0773480663, + 0.01111111111, + 0.2666666667, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Peace', + '55-64', + 1, + 0.04081632653, + 0.04938271605, + 0.005235602094, + 0.2, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Freedom', + '55-64', + 1, + 0.03888888889, + 0.04191616766, + 0.0119760479, + 0.1666666667, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '65-74', + 6, + 0.03571428571, + 0.161849711, + 0.01111111111, + 0.5333333333, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Peace', + '65-74', + 2, + 0.0306122449, + 0.03448275862, + 0.005235602094, + 0.2, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Freedom', + '65-74', + 4, + 0.03333333333, + 0.07594936709, + 0.0119760479, + 0.3333333333, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '75+', + 1, + 0.04081632653, + 0.07111111111, + 0.01111111111, + 0.2666666667, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Peace', + '75+', + 0, + 0.0306122449, + 0, + 0.005235602094, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Freedom', + '75+', + 3, + 0.02222222222, + 0.128, + 0.0119760479, + 0.6666666667, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '15-24', + 4, + 0.0306122449, + 0.1612903226, + 0.02222222222, + 0.8, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Peace', + '15-24', + 4, + 0.03571428571, + 0.1346153846, + 0.03141361257, + 0.6666666667, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Freedom', + '15-24', + 5, + 0.03888888889, + 0.1955307263, + 0.04191616766, + 0.7291666667, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '25-34', + 7, + 0.04081632653, + 0.2926829268, + 0.02222222222, + 0.96, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Peace', + '25-34', + 11, + 0.04081632653, + 0.281938326, + 0.03141361257, + 1.333333333, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Freedom', + '25-34', + 9, + 0.03888888889, + 0.3141025641, + 0.04191616766, + 1.020833333, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '35-44', + 3, + 0.0306122449, + 0.06818181818, + 0.02222222222, + 0.32, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Peace', + '35-44', + 10, + 0.03571428571, + 0.2425742574, + 0.03141361257, + 1.166666667, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Freedom', + '35-44', + 14, + 0.03888888889, + 0.3783783784, + 0.04191616766, + 1.458333333, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '45-54', + 5, + 0.03571428571, + 0.1546961326, + 0.02222222222, + 0.64, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Peace', + '45-54', + 6, + 0.03571428571, + 0.1435897436, + 0.03141361257, + 0.6666666667, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Freedom', + '45-54', + 12, + 0.03888888889, + 0.3841463415, + 0.04191616766, + 1.3125, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '55-64', + 2, + 0.03571428571, + 0.0773480663, + 0.02222222222, + 0.32, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Peace', + '55-64', + 5, + 0.04081632653, + 0.2469135802, + 0.03141361257, + 0.8333333333, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Freedom', + '55-64', + 9, + 0.03888888889, + 0.377245509, + 0.04191616766, + 1.3125, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '65-74', + 4, + 0.03571428571, + 0.161849711, + 0.02222222222, + 0.64, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Peace', + '65-74', + 5, + 0.0306122449, + 0.1724137931, + 0.03141361257, + 0.8333333333, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Freedom', + '65-74', + 7, + 0.03333333333, + 0.3037974684, + 0.04191616766, + 1.166666667, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '75+', + 1, + 0.04081632653, + 0.07111111111, + 0.02222222222, + 0.32, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Peace', + '75+', + 2, + 0.0306122449, + 0.1132075472, + 0.03141361257, + 0.5, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Freedom', + '75+', + 0, + 0.02222222222, + 0, + 0.04191616766, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '15-24', + 12, + 0.0306122449, + 0.3225806452, + 0.05555555556, + 1.449275362, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Peace', + '15-24', + 22, + 0.03571428571, + 0.5721153846, + 0.07329842932, + 2.404040404, + 17, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Freedom', + '15-24', + 8, + 0.03888888889, + 0.2346368715, + 0.03592814371, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '25-34', + 5, + 0.04081632653, + 0.1951219512, + 0.05555555556, + 0.5797101449, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Peace', + '25-34', + 28, + 0.04081632653, + 0.7753303965, + 0.07329842932, + 3.111111111, + 22, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Freedom', + '25-34', + 8, + 0.03888888889, + 0.2692307692, + 0.03592814371, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '35-44', + 23, + 0.0306122449, + 0.5113636364, + 0.05555555556, + 2.173913043, + 15, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Peace', + '35-44', + 27, + 0.03571428571, + 0.6237623762, + 0.07329842932, + 2.545454545, + 18, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Freedom', + '35-44', + 8, + 0.03888888889, + 0.1891891892, + 0.03592814371, + 0.7142857143, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '45-54', + 20, + 0.03571428571, + 0.5027624309, + 0.05555555556, + 1.884057971, + 13, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Peace', + '45-54', + 19, + 0.03571428571, + 0.4307692308, + 0.07329842932, + 1.696969697, + 12, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Freedom', + '45-54', + 6, + 0.03888888889, + 0.1707317073, + 0.03592814371, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '55-64', + 15, + 0.03571428571, + 0.3867403315, + 0.05555555556, + 1.449275362, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Peace', + '55-64', + 13, + 0.04081632653, + 0.3950617284, + 0.07329842932, + 1.131313131, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Freedom', + '55-64', + 13, + 0.03888888889, + 0.3353293413, + 0.03592814371, + 1.142857143, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '65-74', + 13, + 0.03571428571, + 0.323699422, + 0.05555555556, + 1.15942029, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Peace', + '65-74', + 16, + 0.0306122449, + 0.3793103448, + 0.07329842932, + 1.555555556, + 11, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Freedom', + '65-74', + 9, + 0.03333333333, + 0.2278481013, + 0.03592814371, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '75+', + 10, + 0.04081632653, + 0.32, + 0.05555555556, + 1.304347826, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Peace', + '75+', + 12, + 0.0306122449, + 0.4150943396, + 0.07329842932, + 1.555555556, + 11, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Freedom', + '75+', + 7, + 0.02222222222, + 0.224, + 0.03592814371, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '15-24', + 3, + 0.0306122449, + 0.06451612903, + 0.02777777778, + 0.2857142857, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Peace', + '15-24', + 15, + 0.03571428571, + 0.4038461538, + 0.05235602094, + 1.764705882, + 12, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Freedom', + '15-24', + 6, + 0.03888888889, + 0.1955307263, + 0.03592814371, + 0.6818181818, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '25-34', + 5, + 0.04081632653, + 0.1951219512, + 0.02777777778, + 0.5714285714, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Peace', + '25-34', + 9, + 0.04081632653, + 0.2466960352, + 0.05235602094, + 1.029411765, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Freedom', + '25-34', + 12, + 0.03888888889, + 0.4487179487, + 0.03592814371, + 1.363636364, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '35-44', + 11, + 0.0306122449, + 0.2727272727, + 0.02777777778, + 1.142857143, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Peace', + '35-44', + 16, + 0.03571428571, + 0.3465346535, + 0.05235602094, + 1.470588235, + 10, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Freedom', + '35-44', + 5, + 0.03888888889, + 0.1135135135, + 0.03592814371, + 0.4090909091, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '45-54', + 6, + 0.03571428571, + 0.1546961326, + 0.02777777778, + 0.5714285714, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Peace', + '45-54', + 15, + 0.03571428571, + 0.3948717949, + 0.05235602094, + 1.617647059, + 11, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Freedom', + '45-54', + 9, + 0.03888888889, + 0.2987804878, + 0.03592814371, + 0.9545454545, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '55-64', + 6, + 0.03571428571, + 0.1933701657, + 0.02777777778, + 0.7142857143, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Peace', + '55-64', + 16, + 0.04081632653, + 0.6419753086, + 0.05235602094, + 1.911764706, + 13, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Freedom', + '55-64', + 8, + 0.03888888889, + 0.251497006, + 0.03592814371, + 0.8181818182, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '65-74', + 7, + 0.03571428571, + 0.2427745665, + 0.02777777778, + 0.8571428571, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Peace', + '65-74', + 10, + 0.0306122449, + 0.275862069, + 0.05235602094, + 1.176470588, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Freedom', + '65-74', + 9, + 0.03333333333, + 0.3037974684, + 0.03592814371, + 1.090909091, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '75+', + 6, + 0.04081632653, + 0.2133333333, + 0.02777777778, + 0.8571428571, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Peace', + '75+', + 6, + 0.0306122449, + 0.2641509434, + 0.05235602094, + 1.029411765, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Freedom', + '75+', + 5, + 0.02222222222, + 0.16, + 0.03592814371, + 0.6818181818, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '15-24', + 10, + 0.0306122449, + 0.2580645161, + 0.03888888889, + 1.166666667, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Peace', + '15-24', + 8, + 0.03571428571, + 0.2355769231, + 0.02094240838, + 1, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Freedom', + '15-24', + 3, + 0.03888888889, + 0.0782122905, + 0.02395209581, + 0.3076923077, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '25-34', + 9, + 0.04081632653, + 0.2926829268, + 0.03888888889, + 0.875, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Peace', + '25-34', + 3, + 0.04081632653, + 0.0704845815, + 0.02094240838, + 0.2857142857, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Freedom', + '25-34', + 6, + 0.03888888889, + 0.1794871795, + 0.02395209581, + 0.6153846154, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '35-44', + 12, + 0.0306122449, + 0.2386363636, + 0.03888888889, + 1.020833333, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Peace', + '35-44', + 4, + 0.03571428571, + 0.06930693069, + 0.02094240838, + 0.2857142857, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Freedom', + '35-44', + 9, + 0.03888888889, + 0.227027027, + 0.02395209581, + 0.9230769231, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '45-54', + 13, + 0.03571428571, + 0.3480662983, + 0.03888888889, + 1.3125, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Peace', + '45-54', + 6, + 0.03571428571, + 0.1435897436, + 0.02094240838, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Freedom', + '45-54', + 7, + 0.03888888889, + 0.1707317073, + 0.02395209581, + 0.6153846154, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '55-64', + 12, + 0.03571428571, + 0.270718232, + 0.03888888889, + 1.020833333, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Peace', + '55-64', + 7, + 0.04081632653, + 0.1975308642, + 0.02094240838, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Freedom', + '55-64', + 7, + 0.03888888889, + 0.1676646707, + 0.02395209581, + 0.6153846154, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '65-74', + 12, + 0.03571428571, + 0.2427745665, + 0.03888888889, + 0.875, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Peace', + '65-74', + 5, + 0.0306122449, + 0.1034482759, + 0.02094240838, + 0.4285714286, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Freedom', + '65-74', + 12, + 0.03333333333, + 0.2278481013, + 0.02395209581, + 0.9230769231, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '75+', + 4, + 0.04081632653, + 0.1777777778, + 0.03888888889, + 0.7291666667, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Peace', + '75+', + 5, + 0.0306122449, + 0.2264150943, + 0.02094240838, + 0.8571428571, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Freedom', + '75+', + 0, + 0.02222222222, + 0, + 0.02395209581, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '15-24', + 7, + 0.0306122449, + 0.1612903226, + 0.02222222222, + 0.6896551724, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Peace', + '15-24', + 11, + 0.03571428571, + 0.3028846154, + 0.03664921466, + 1.235294118, + 9, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Freedom', + '15-24', + 18, + 0.03888888889, + 0.5474860335, + 0.04790419162, + 2.074074074, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '25-34', + 6, + 0.04081632653, + 0.243902439, + 0.02222222222, + 0.6896551724, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Peace', + '25-34', + 9, + 0.04081632653, + 0.2466960352, + 0.03664921466, + 0.9607843137, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Freedom', + '25-34', + 2, + 0.03888888889, + 0.08974358974, + 0.04790419162, + 0.2962962963, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '35-44', + 11, + 0.0306122449, + 0.2045454545, + 0.02222222222, + 0.8275862069, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Peace', + '35-44', + 15, + 0.03571428571, + 0.2772277228, + 0.03664921466, + 1.098039216, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Freedom', + '35-44', + 17, + 0.03888888889, + 0.3405405405, + 0.04790419162, + 1.333333333, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '45-54', + 7, + 0.03571428571, + 0.1933701657, + 0.02222222222, + 0.6896551724, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Peace', + '45-54', + 8, + 0.03571428571, + 0.2153846154, + 0.03664921466, + 0.8235294118, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Freedom', + '45-54', + 3, + 0.03888888889, + 0.1280487805, + 0.04790419162, + 0.4444444444, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '55-64', + 3, + 0.03571428571, + 0.0773480663, + 0.02222222222, + 0.275862069, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Peace', + '55-64', + 5, + 0.04081632653, + 0.1481481481, + 0.03664921466, + 0.4117647059, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Freedom', + '55-64', + 16, + 0.03888888889, + 0.4191616766, + 0.04790419162, + 1.481481481, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '65-74', + 3, + 0.03571428571, + 0.08092485549, + 0.02222222222, + 0.275862069, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Peace', + '65-74', + 4, + 0.0306122449, + 0.1034482759, + 0.03664921466, + 0.4117647059, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Freedom', + '65-74', + 8, + 0.03333333333, + 0.1898734177, + 0.04790419162, + 0.7407407407, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '75+', + 3, + 0.04081632653, + 0.1422222222, + 0.02222222222, + 0.5517241379, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Peace', + '75+', + 11, + 0.0306122449, + 0.5660377358, + 0.03664921466, + 2.058823529, + 15, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Freedom', + '75+', + 8, + 0.02222222222, + 0.352, + 0.04790419162, + 1.62962963, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '15-24', + 9, + 0.0306122449, + 0.1935483871, + 0.02222222222, + 1, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Peace', + '15-24', + 12, + 0.03571428571, + 0.3028846154, + 0.04712041885, + 1.372881356, + 9, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Freedom', + '15-24', + 5, + 0.03888888889, + 0.156424581, + 0.02994011976, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '25-34', + 3, + 0.04081632653, + 0.09756097561, + 0.02222222222, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Peace', + '25-34', + 13, + 0.04081632653, + 0.3171806167, + 0.04712041885, + 1.372881356, + 9, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Freedom', + '25-34', + 8, + 0.03888888889, + 0.2692307692, + 0.02994011976, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '35-44', + 6, + 0.0306122449, + 0.1022727273, + 0.02222222222, + 0.5, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Peace', + '35-44', + 28, + 0.03571428571, + 0.4158415842, + 0.04712041885, + 1.830508475, + 12, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Freedom', + '35-44', + 17, + 0.03888888889, + 0.2648648649, + 0.02994011976, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '45-54', + 4, + 0.03571428571, + 0.0773480663, + 0.02222222222, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Peace', + '45-54', + 22, + 0.03571428571, + 0.4666666667, + 0.04712041885, + 1.983050847, + 13, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Freedom', + '45-54', + 7, + 0.03888888889, + 0.1707317073, + 0.02994011976, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '55-64', + 5, + 0.03571428571, + 0.1546961326, + 0.02222222222, + 0.6666666667, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Peace', + '55-64', + 5, + 0.04081632653, + 0.1975308642, + 0.04712041885, + 0.6101694915, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Freedom', + '55-64', + 5, + 0.03888888889, + 0.1676646707, + 0.02994011976, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '65-74', + 5, + 0.03571428571, + 0.161849711, + 0.02222222222, + 0.6666666667, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Peace', + '65-74', + 9, + 0.0306122449, + 0.2413793103, + 0.04712041885, + 1.06779661, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Freedom', + '65-74', + 3, + 0.03333333333, + 0.1139240506, + 0.02994011976, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '75+', + 2, + 0.04081632653, + 0.1066666667, + 0.02222222222, + 0.5, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Peace', + '75+', + 3, + 0.0306122449, + 0.1886792453, + 0.04712041885, + 0.7627118644, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Freedom', + '75+', + 5, + 0.02222222222, + 0.224, + 0.02994011976, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '15-24', + 1, + 0.0306122449, + 0.03225806452, + 0.01666666667, + 0.1428571429, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Peace', + '15-24', + 2, + 0.03571428571, + 0.06730769231, + 0.01570680628, + 0.2857142857, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Freedom', + '15-24', + 5, + 0.03888888889, + 0.1955307263, + 0.02395209581, + 0.7692307692, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '25-34', + 3, + 0.04081632653, + 0.09756097561, + 0.01666666667, + 0.2857142857, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Peace', + '25-34', + 6, + 0.04081632653, + 0.140969163, + 0.01570680628, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Freedom', + '25-34', + 4, + 0.03888888889, + 0.1346153846, + 0.02395209581, + 0.4615384615, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '35-44', + 5, + 0.0306122449, + 0.1022727273, + 0.01666666667, + 0.4285714286, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Peace', + '35-44', + 5, + 0.03571428571, + 0.1386138614, + 0.01570680628, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Freedom', + '35-44', + 6, + 0.03888888889, + 0.1513513514, + 0.02395209581, + 0.6153846154, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '45-54', + 8, + 0.03571428571, + 0.1546961326, + 0.01666666667, + 0.5714285714, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Peace', + '45-54', + 4, + 0.03571428571, + 0.07179487179, + 0.01570680628, + 0.2857142857, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Freedom', + '45-54', + 8, + 0.03888888889, + 0.1707317073, + 0.02395209581, + 0.6153846154, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '55-64', + 5, + 0.03571428571, + 0.1546961326, + 0.01666666667, + 0.5714285714, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Peace', + '55-64', + 7, + 0.04081632653, + 0.2469135802, + 0.01570680628, + 0.7142857143, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Freedom', + '55-64', + 5, + 0.03888888889, + 0.1676646707, + 0.02395209581, + 0.6153846154, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '65-74', + 6, + 0.03571428571, + 0.1213872832, + 0.01666666667, + 0.4285714286, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Peace', + '65-74', + 7, + 0.0306122449, + 0.1379310345, + 0.01570680628, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Freedom', + '65-74', + 2, + 0.03333333333, + 0.03797468354, + 0.02395209581, + 0.1538461538, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '75+', + 3, + 0.04081632653, + 0.1422222222, + 0.01666666667, + 0.5714285714, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Peace', + '75+', + 0, + 0.0306122449, + 0, + 0.01570680628, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Freedom', + '75+', + 4, + 0.02222222222, + 0.16, + 0.02395209581, + 0.7692307692, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '15-24', + 13, + 0.0306122449, + 0.2903225806, + 0.05555555556, + 1.25, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Peace', + '15-24', + 8, + 0.03571428571, + 0.1682692308, + 0.005235602094, + 0.625, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Freedom', + '15-24', + 11, + 0.03888888889, + 0.312849162, + 0.01796407186, + 1.2, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '25-34', + 10, + 0.04081632653, + 0.3414634146, + 0.05555555556, + 0.9722222222, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Peace', + '25-34', + 0, + 0.04081632653, + 0, + 0.005235602094, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Freedom', + '25-34', + 2, + 0.03888888889, + 0.04487179487, + 0.01796407186, + 0.15, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '35-44', + 12, + 0.0306122449, + 0.375, + 0.05555555556, + 1.527777778, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Peace', + '35-44', + 0, + 0.03571428571, + 0, + 0.005235602094, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Freedom', + '35-44', + 8, + 0.03888888889, + 0.2648648649, + 0.01796407186, + 1.05, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '45-54', + 13, + 0.03571428571, + 0.270718232, + 0.05555555556, + 0.9722222222, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Peace', + '45-54', + 0, + 0.03571428571, + 0, + 0.005235602094, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Freedom', + '45-54', + 1, + 0.03888888889, + 0.04268292683, + 0.01796407186, + 0.15, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '55-64', + 13, + 0.03571428571, + 0.3867403315, + 0.05555555556, + 1.388888889, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Peace', + '55-64', + 3, + 0.04081632653, + 0.0987654321, + 0.005235602094, + 0.25, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Freedom', + '55-64', + 2, + 0.03888888889, + 0.04191616766, + 0.01796407186, + 0.15, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '65-74', + 11, + 0.03571428571, + 0.3641618497, + 0.05555555556, + 1.25, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Peace', + '65-74', + 1, + 0.0306122449, + 0.03448275862, + 0.005235602094, + 0.125, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Freedom', + '65-74', + 2, + 0.03333333333, + 0.07594936709, + 0.01796407186, + 0.3, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '75+', + 23, + 0.04081632653, + 0.6755555556, + 0.05555555556, + 2.638888889, + 19, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Peace', + '75+', + 0, + 0.0306122449, + 0, + 0.005235602094, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Freedom', + '75+', + 0, + 0.02222222222, + 0, + 0.01796407186, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '15-24', + 3, + 0.0306122449, + 0.1612903226, + 0.02777777778, + 0.7352941176, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Peace', + '15-24', + 7, + 0.03571428571, + 0.3701923077, + 0.06282722513, + 1.65, + 11, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Freedom', + '15-24', + 10, + 0.03888888889, + 0.5865921788, + 0.06586826347, + 2.088607595, + 15, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '25-34', + 3, + 0.04081632653, + 0.243902439, + 0.02777777778, + 0.7352941176, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Peace', + '25-34', + 9, + 0.04081632653, + 0.422907489, + 0.06282722513, + 1.8, + 12, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Freedom', + '25-34', + 3, + 0.03888888889, + 0.2243589744, + 0.06586826347, + 0.6962025316, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '35-44', + 6, + 0.0306122449, + 0.2045454545, + 0.02777777778, + 0.8823529412, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Peace', + '35-44', + 12, + 0.03571428571, + 0.4504950495, + 0.06282722513, + 1.95, + 13, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Freedom', + '35-44', + 10, + 0.03888888889, + 0.4540540541, + 0.06586826347, + 1.670886076, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '45-54', + 2, + 0.03571428571, + 0.1160220994, + 0.02777777778, + 0.4411764706, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Peace', + '45-54', + 9, + 0.03571428571, + 0.3948717949, + 0.06282722513, + 1.65, + 11, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Freedom', + '45-54', + 9, + 0.03888888889, + 0.4695121951, + 0.06586826347, + 1.53164557, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '55-64', + 2, + 0.03571428571, + 0.1160220994, + 0.02777777778, + 0.4411764706, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Peace', + '55-64', + 8, + 0.04081632653, + 0.6419753086, + 0.06282722513, + 1.95, + 13, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Freedom', + '55-64', + 8, + 0.03888888889, + 0.5868263473, + 0.06586826347, + 1.949367089, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '65-74', + 3, + 0.03571428571, + 0.2023121387, + 0.02777777778, + 0.7352941176, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Peace', + '65-74', + 4, + 0.0306122449, + 0.2413793103, + 0.06282722513, + 1.05, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Freedom', + '65-74', + 8, + 0.03333333333, + 0.4556962025, + 0.06586826347, + 1.670886076, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '75+', + 3, + 0.04081632653, + 0.2488888889, + 0.02777777778, + 1.029411765, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Peace', + '75+', + 4, + 0.0306122449, + 0.4905660377, + 0.06282722513, + 1.95, + 13, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Freedom', + '75+', + 3, + 0.02222222222, + 0.32, + 0.06586826347, + 1.392405063, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '15-24', + 19, + 0.0306122449, + 0.5483870968, + 0.08888888889, + 2.076335878, + 17, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Peace', + '15-24', + 2, + 0.03571428571, + 0.06730769231, + 0.01047120419, + 0.3636363636, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Freedom', + '15-24', + 3, + 0.03888888889, + 0.1173184358, + 0.02395209581, + 0.6, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '25-34', + 18, + 0.04081632653, + 0.5853658537, + 0.08888888889, + 1.465648855, + 12, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Peace', + '25-34', + 3, + 0.04081632653, + 0.0704845815, + 0.01047120419, + 0.3636363636, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Freedom', + '25-34', + 9, + 0.03888888889, + 0.2692307692, + 0.02395209581, + 1.2, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '35-44', + 27, + 0.0306122449, + 0.7159090909, + 0.08888888889, + 2.564885496, + 21, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Peace', + '35-44', + 2, + 0.03571428571, + 0.06930693069, + 0.01047120419, + 0.3636363636, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Freedom', + '35-44', + 8, + 0.03888888889, + 0.227027027, + 0.02395209581, + 1.2, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '45-54', + 24, + 0.03571428571, + 0.6961325967, + 0.08888888889, + 2.198473282, + 18, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Peace', + '45-54', + 1, + 0.03571428571, + 0.0358974359, + 0.01047120419, + 0.1818181818, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Freedom', + '45-54', + 3, + 0.03888888889, + 0.08536585366, + 0.02395209581, + 0.4, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '55-64', + 20, + 0.03571428571, + 0.5801104972, + 0.08888888889, + 1.832061069, + 15, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Peace', + '55-64', + 2, + 0.04081632653, + 0.04938271605, + 0.01047120419, + 0.1818181818, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Freedom', + '55-64', + 3, + 0.03888888889, + 0.08383233533, + 0.02395209581, + 0.4, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '65-74', + 30, + 0.03571428571, + 0.5260115607, + 0.08888888889, + 1.58778626, + 13, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Peace', + '65-74', + 7, + 0.0306122449, + 0.1034482759, + 0.01047120419, + 0.5454545455, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Freedom', + '65-74', + 2, + 0.03333333333, + 0.03797468354, + 0.02395209581, + 0.2, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '75+', + 4, + 0.04081632653, + 1.244444444, + 0.08888888889, + 4.27480916, + 35, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Peace', + '75+', + 0, + 0.0306122449, + 0, + 0.01047120419, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Freedom', + '75+', + 0, + 0.02222222222, + 0, + 0.02395209581, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '15-24', + 2, + 0.0306122449, + 0.09677419355, + 0.005555555556, + 0.75, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Peace', + '15-24', + 6, + 0.03571428571, + 0.3365384615, + 0.02617801047, + 1.5625, + 10, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Freedom', + '15-24', + 6, + 0.03888888889, + 0.3519553073, + 0.02395209581, + 1.384615385, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '25-34', + 0, + 0.04081632653, + 0, + 0.005555555556, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Peace', + '25-34', + 1, + 0.04081632653, + 0.03524229075, + 0.02617801047, + 0.15625, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Freedom', + '25-34', + 4, + 0.03888888889, + 0.2692307692, + 0.02395209581, + 0.9230769231, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '35-44', + 0, + 0.0306122449, + 0, + 0.005555555556, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Peace', + '35-44', + 1, + 0.03571428571, + 0.03465346535, + 0.02617801047, + 0.15625, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Freedom', + '35-44', + 2, + 0.03888888889, + 0.07567567568, + 0.02395209581, + 0.3076923077, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '45-54', + 0, + 0.03571428571, + 0, + 0.005555555556, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Peace', + '45-54', + 5, + 0.03571428571, + 0.2512820513, + 0.02617801047, + 1.09375, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Freedom', + '45-54', + 0, + 0.03888888889, + 0, + 0.02395209581, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '55-64', + 0, + 0.03571428571, + 0, + 0.005555555556, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Peace', + '55-64', + 1, + 0.04081632653, + 0.0987654321, + 0.02617801047, + 0.3125, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Freedom', + '55-64', + 2, + 0.03888888889, + 0.125748503, + 0.02395209581, + 0.4615384615, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '65-74', + 0, + 0.03571428571, + 0, + 0.005555555556, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Peace', + '65-74', + 6, + 0.0306122449, + 0.3103448276, + 0.02617801047, + 1.40625, + 9, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Freedom', + '65-74', + 4, + 0.03333333333, + 0.2278481013, + 0.02395209581, + 0.9230769231, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '75+', + 0, + 0.04081632653, + 0.03555555556, + 0.005555555556, + 0.25, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Peace', + '75+', + 1, + 0.0306122449, + 0.07547169811, + 0.02617801047, + 0.3125, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Freedom', + '75+', + 0, + 0.02222222222, + 0, + 0.02395209581, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '15-24', + 9, + 0.0306122449, + 0.2580645161, + 0.03333333333, + 0.9795918367, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Peace', + '15-24', + 21, + 0.03571428571, + 0.6057692308, + 0.07329842932, + 2.680851064, + 18, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Freedom', + '15-24', + 12, + 0.03888888889, + 0.3910614525, + 0.05988023952, + 1.428571429, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '25-34', + 7, + 0.04081632653, + 0.2926829268, + 0.03333333333, + 0.7346938776, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Peace', + '25-34', + 21, + 0.04081632653, + 0.6343612335, + 0.07329842932, + 2.680851064, + 18, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Freedom', + '25-34', + 14, + 0.03888888889, + 0.5384615385, + 0.05988023952, + 1.714285714, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '35-44', + 12, + 0.0306122449, + 0.2045454545, + 0.03333333333, + 0.7346938776, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Peace', + '35-44', + 31, + 0.03571428571, + 0.5891089109, + 0.07329842932, + 2.531914894, + 17, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Freedom', + '35-44', + 19, + 0.03888888889, + 0.3783783784, + 0.05988023952, + 1.428571429, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '45-54', + 9, + 0.03571428571, + 0.1933701657, + 0.03333333333, + 0.612244898, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Peace', + '45-54', + 21, + 0.03571428571, + 0.3948717949, + 0.07329842932, + 1.638297872, + 11, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Freedom', + '45-54', + 23, + 0.03888888889, + 0.4695121951, + 0.05988023952, + 1.571428571, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '55-64', + 10, + 0.03571428571, + 0.270718232, + 0.03333333333, + 0.8571428571, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Peace', + '55-64', + 23, + 0.04081632653, + 0.6913580247, + 0.07329842932, + 2.085106383, + 14, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Freedom', + '55-64', + 18, + 0.03888888889, + 0.4610778443, + 0.05988023952, + 1.571428571, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '65-74', + 12, + 0.03571428571, + 0.2023121387, + 0.03333333333, + 0.612244898, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Peace', + '65-74', + 26, + 0.0306122449, + 0.3793103448, + 0.07329842932, + 1.638297872, + 11, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Freedom', + '65-74', + 20, + 0.03333333333, + 0.3037974684, + 0.05988023952, + 1.142857143, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '75+', + 1, + 0.04081632653, + 0.4266666667, + 0.03333333333, + 1.469387755, + 12, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Peace', + '75+', + 1, + 0.0306122449, + 0.1886792453, + 0.07329842932, + 0.7446808511, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Freedom', + '75+', + 1, + 0.02222222222, + 0.256, + 0.05988023952, + 1.142857143, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '15-24', + 21, + 0.0306122449, + 0.5483870968, + 0.07777777778, + 2.333333333, + 17, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Peace', + '15-24', + 0, + 0.03571428571, + 0, + 0.01570680628, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Freedom', + '15-24', + 9, + 0.03888888889, + 0.312849162, + 0.02994011976, + 1.212121212, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '25-34', + 29, + 0.04081632653, + 0.9268292683, + 0.07777777778, + 2.607843137, + 19, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Peace', + '25-34', + 7, + 0.04081632653, + 0.140969163, + 0.01570680628, + 0.6, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Freedom', + '25-34', + 5, + 0.03888888889, + 0.1794871795, + 0.02994011976, + 0.6060606061, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '35-44', + 15, + 0.0306122449, + 0.2727272727, + 0.07777777778, + 1.098039216, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Peace', + '35-44', + 10, + 0.03571428571, + 0.1732673267, + 0.01570680628, + 0.75, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Freedom', + '35-44', + 14, + 0.03888888889, + 0.2648648649, + 0.02994011976, + 1.060606061, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '45-54', + 21, + 0.03571428571, + 0.6187845304, + 0.07777777778, + 2.196078431, + 16, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Peace', + '45-54', + 5, + 0.03571428571, + 0.1435897436, + 0.01570680628, + 0.6, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Freedom', + '45-54', + 8, + 0.03888888889, + 0.256097561, + 0.02994011976, + 0.9090909091, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '55-64', + 19, + 0.03571428571, + 0.5027624309, + 0.07777777778, + 1.784313725, + 13, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Peace', + '55-64', + 5, + 0.04081632653, + 0.1481481481, + 0.01570680628, + 0.45, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Freedom', + '55-64', + 4, + 0.03888888889, + 0.125748503, + 0.02994011976, + 0.4545454545, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '65-74', + 17, + 0.03571428571, + 0.5260115607, + 0.07777777778, + 1.784313725, + 13, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Peace', + '65-74', + 4, + 0.0306122449, + 0.1034482759, + 0.01570680628, + 0.45, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Freedom', + '65-74', + 4, + 0.03333333333, + 0.1139240506, + 0.02994011976, + 0.4545454545, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '75+', + 9, + 0.04081632653, + 0.5688888889, + 0.07777777778, + 2.196078431, + 16, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Peace', + '75+', + 1, + 0.0306122449, + 0.03773584906, + 0.01570680628, + 0.15, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Freedom', + '75+', + 1, + 0.02222222222, + 0.064, + 0.02994011976, + 0.303030303, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '15-24', + 2, + 0.0306122449, + 0.06451612903, + 0.01666666667, + 0.24, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Peace', + '15-24', + 2, + 0.03571428571, + 0.06730769231, + 0.01047120419, + 0.2857142857, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Freedom', + '15-24', + 6, + 0.03888888889, + 0.1955307263, + 0.02994011976, + 0.8064516129, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '25-34', + 1, + 0.04081632653, + 0.0487804878, + 0.01666666667, + 0.12, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Peace', + '25-34', + 4, + 0.04081632653, + 0.1057268722, + 0.01047120419, + 0.4285714286, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Freedom', + '25-34', + 6, + 0.03888888889, + 0.1794871795, + 0.02994011976, + 0.6451612903, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '35-44', + 10, + 0.0306122449, + 0.2045454545, + 0.01666666667, + 0.72, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Peace', + '35-44', + 2, + 0.03571428571, + 0.03465346535, + 0.01047120419, + 0.1428571429, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Freedom', + '35-44', + 9, + 0.03888888889, + 0.1891891892, + 0.02994011976, + 0.8064516129, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '45-54', + 7, + 0.03571428571, + 0.1546961326, + 0.01666666667, + 0.48, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Peace', + '45-54', + 6, + 0.03571428571, + 0.1435897436, + 0.01047120419, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Freedom', + '45-54', + 6, + 0.03888888889, + 0.1707317073, + 0.02994011976, + 0.6451612903, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '55-64', + 6, + 0.03571428571, + 0.1546961326, + 0.01666666667, + 0.48, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Peace', + '55-64', + 1, + 0.04081632653, + 0.04938271605, + 0.01047120419, + 0.1428571429, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Freedom', + '55-64', + 10, + 0.03888888889, + 0.2934131737, + 0.02994011976, + 1.129032258, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '65-74', + 2, + 0.03571428571, + 0.08092485549, + 0.01666666667, + 0.24, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Peace', + '65-74', + 3, + 0.0306122449, + 0.06896551724, + 0.01047120419, + 0.2857142857, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Freedom', + '65-74', + 5, + 0.03333333333, + 0.1518987342, + 0.02994011976, + 0.6451612903, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '75+', + 5, + 0.04081632653, + 0.2133333333, + 0.01666666667, + 0.72, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Peace', + '75+', + 1, + 0.0306122449, + 0.03773584906, + 0.01047120419, + 0.1428571429, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Freedom', + '75+', + 1, + 0.02222222222, + 0.064, + 0.02994011976, + 0.3225806452, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '15-24', + 5, + 0.0306122449, + 0.1290322581, + 0.03888888889, + 0.5490196078, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Peace', + '15-24', + 6, + 0.03571428571, + 0.1682692308, + 0.03141361257, + 0.6976744186, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Freedom', + '15-24', + 5, + 0.03888888889, + 0.156424581, + 0.03592814371, + 0.5581395349, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '25-34', + 12, + 0.04081632653, + 0.3902439024, + 0.03888888889, + 1.098039216, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Peace', + '25-34', + 6, + 0.04081632653, + 0.140969163, + 0.03141361257, + 0.5581395349, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Freedom', + '25-34', + 10, + 0.03888888889, + 0.3141025641, + 0.03592814371, + 0.976744186, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '35-44', + 12, + 0.0306122449, + 0.2386363636, + 0.03888888889, + 0.9607843137, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Peace', + '35-44', + 9, + 0.03571428571, + 0.1732673267, + 0.03141361257, + 0.6976744186, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Freedom', + '35-44', + 8, + 0.03888888889, + 0.1891891892, + 0.03592814371, + 0.6976744186, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '45-54', + 9, + 0.03571428571, + 0.270718232, + 0.03888888889, + 0.9607843137, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Peace', + '45-54', + 8, + 0.03571428571, + 0.2153846154, + 0.03141361257, + 0.8372093023, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Freedom', + '45-54', + 15, + 0.03888888889, + 0.4695121951, + 0.03592814371, + 1.534883721, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '55-64', + 11, + 0.03571428571, + 0.3093922652, + 0.03888888889, + 1.098039216, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Peace', + '55-64', + 11, + 0.04081632653, + 0.3950617284, + 0.03141361257, + 1.11627907, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Freedom', + '55-64', + 7, + 0.03888888889, + 0.2095808383, + 0.03592814371, + 0.6976744186, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '65-74', + 8, + 0.03571428571, + 0.2023121387, + 0.03888888889, + 0.6862745098, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Peace', + '65-74', + 12, + 0.0306122449, + 0.3103448276, + 0.03141361257, + 1.255813953, + 9, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Freedom', + '65-74', + 6, + 0.03333333333, + 0.1518987342, + 0.03592814371, + 0.5581395349, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '75+', + 5, + 0.04081632653, + 0.4266666667, + 0.03888888889, + 1.647058824, + 12, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Peace', + '75+', + 2, + 0.0306122449, + 0.2264150943, + 0.03141361257, + 0.8372093023, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Freedom', + '75+', + 3, + 0.02222222222, + 0.224, + 0.03592814371, + 0.976744186, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '15-24', + 6, + 0.0306122449, + 0.1612903226, + 0.06111111111, + 0.6875, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Peace', + '15-24', + 30, + 0.03571428571, + 0.8413461538, + 0.109947644, + 3.523489933, + 25, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Freedom', + '15-24', + 9, + 0.03888888889, + 0.2737430168, + 0.05389221557, + 1.016129032, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '25-34', + 17, + 0.04081632653, + 0.487804878, + 0.06111111111, + 1.375, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Peace', + '25-34', + 54, + 0.04081632653, + 1.127753304, + 0.109947644, + 4.510067114, + 32, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Freedom', + '25-34', + 16, + 0.03888888889, + 0.4038461538, + 0.05389221557, + 1.306451613, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '35-44', + 15, + 0.0306122449, + 0.375, + 0.06111111111, + 1.5125, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Peace', + '35-44', + 32, + 0.03571428571, + 0.797029703, + 0.109947644, + 3.241610738, + 23, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Freedom', + '35-44', + 16, + 0.03888888889, + 0.4162162162, + 0.05389221557, + 1.596774194, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '45-54', + 21, + 0.03571428571, + 0.5414364641, + 0.06111111111, + 1.925, + 14, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Peace', + '45-54', + 32, + 0.03571428571, + 0.7179487179, + 0.109947644, + 2.818791946, + 20, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Freedom', + '45-54', + 15, + 0.03888888889, + 0.3841463415, + 0.05389221557, + 1.306451613, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '55-64', + 22, + 0.03571428571, + 0.6187845304, + 0.06111111111, + 2.2, + 16, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Peace', + '55-64', + 20, + 0.04081632653, + 0.6913580247, + 0.109947644, + 1.973154362, + 14, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Freedom', + '55-64', + 11, + 0.03888888889, + 0.3353293413, + 0.05389221557, + 1.161290323, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '65-74', + 15, + 0.03571428571, + 0.4046242775, + 0.06111111111, + 1.375, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Peace', + '65-74', + 24, + 0.0306122449, + 0.5517241379, + 0.109947644, + 2.255033557, + 16, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Freedom', + '65-74', + 19, + 0.03333333333, + 0.4556962025, + 0.05389221557, + 1.741935484, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '75+', + 16, + 0.04081632653, + 0.4977777778, + 0.06111111111, + 1.925, + 14, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Peace', + '75+', + 22, + 0.0306122449, + 0.7169811321, + 0.109947644, + 2.677852349, + 19, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Freedom', + '75+', + 7, + 0.02222222222, + 0.192, + 0.05389221557, + 0.8709677419, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '15-24', + 4, + 0.0306122449, + 0.09677419355, + 0.01111111111, + 0.5, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Peace', + '15-24', + 4, + 0.03571428571, + 0.1009615385, + 0.02094240838, + 0.3870967742, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Freedom', + '15-24', + 4, + 0.03888888889, + 0.156424581, + 0.03592814371, + 0.6315789474, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '25-34', + 0, + 0.04081632653, + 0, + 0.01111111111, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Peace', + '25-34', + 9, + 0.04081632653, + 0.2114537445, + 0.02094240838, + 0.7741935484, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Freedom', + '25-34', + 8, + 0.03888888889, + 0.2243589744, + 0.03592814371, + 0.7894736842, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '35-44', + 4, + 0.0306122449, + 0.1022727273, + 0.01111111111, + 0.5, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Peace', + '35-44', + 4, + 0.03571428571, + 0.06930693069, + 0.02094240838, + 0.2580645161, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Freedom', + '35-44', + 14, + 0.03888888889, + 0.3405405405, + 0.03592814371, + 1.421052632, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '45-54', + 3, + 0.03571428571, + 0.1160220994, + 0.01111111111, + 0.5, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Peace', + '45-54', + 8, + 0.03571428571, + 0.2153846154, + 0.02094240838, + 0.7741935484, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Freedom', + '45-54', + 5, + 0.03888888889, + 0.1280487805, + 0.03592814371, + 0.4736842105, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '55-64', + 3, + 0.03571428571, + 0.0773480663, + 0.01111111111, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Peace', + '55-64', + 5, + 0.04081632653, + 0.1975308642, + 0.02094240838, + 0.5161290323, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Freedom', + '55-64', + 11, + 0.03888888889, + 0.3353293413, + 0.03592814371, + 1.263157895, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '65-74', + 1, + 0.03571428571, + 0, + 0.01111111111, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Peace', + '65-74', + 8, + 0.0306122449, + 0.2068965517, + 0.02094240838, + 0.7741935484, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Freedom', + '65-74', + 9, + 0.03333333333, + 0.2278481013, + 0.03592814371, + 0.9473684211, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '75+', + 1, + 0.04081632653, + 0.03555555556, + 0.01111111111, + 0.1666666667, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Peace', + '75+', + 3, + 0.0306122449, + 0.1509433962, + 0.02094240838, + 0.5161290323, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Freedom', + '75+', + 2, + 0.02222222222, + 0.096, + 0.03592814371, + 0.4736842105, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '15-24', + 14, + 0.0306122449, + 0.3225806452, + 0.04444444444, + 1.538461538, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Peace', + '15-24', + 3, + 0.03571428571, + 0.06730769231, + 0.02094240838, + 0.2580645161, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Freedom', + '15-24', + 6, + 0.03888888889, + 0.156424581, + 0.02994011976, + 0.5882352941, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '25-34', + 9, + 0.04081632653, + 0.243902439, + 0.04444444444, + 0.7692307692, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Peace', + '25-34', + 8, + 0.04081632653, + 0.1762114537, + 0.02094240838, + 0.6451612903, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Freedom', + '25-34', + 8, + 0.03888888889, + 0.2243589744, + 0.02994011976, + 0.7352941176, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '35-44', + 16, + 0.0306122449, + 0.3068181818, + 0.04444444444, + 1.384615385, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Peace', + '35-44', + 5, + 0.03571428571, + 0.103960396, + 0.02094240838, + 0.3870967742, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Freedom', + '35-44', + 11, + 0.03888888889, + 0.227027027, + 0.02994011976, + 0.8823529412, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '45-54', + 10, + 0.03571428571, + 0.270718232, + 0.04444444444, + 1.076923077, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Peace', + '45-54', + 8, + 0.03571428571, + 0.1794871795, + 0.02094240838, + 0.6451612903, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Freedom', + '45-54', + 12, + 0.03888888889, + 0.3414634146, + 0.02994011976, + 1.176470588, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '55-64', + 12, + 0.03571428571, + 0.3093922652, + 0.04444444444, + 1.230769231, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Peace', + '55-64', + 7, + 0.04081632653, + 0.2469135802, + 0.02094240838, + 0.6451612903, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Freedom', + '55-64', + 6, + 0.03888888889, + 0.1676646707, + 0.02994011976, + 0.5882352941, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '65-74', + 11, + 0.03571428571, + 0.323699422, + 0.04444444444, + 1.230769231, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Peace', + '65-74', + 9, + 0.0306122449, + 0.2068965517, + 0.02094240838, + 0.7741935484, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Freedom', + '65-74', + 6, + 0.03333333333, + 0.1898734177, + 0.02994011976, + 0.7352941176, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '75+', + 2, + 0.04081632653, + 0.1777777778, + 0.04444444444, + 0.7692307692, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Peace', + '75+', + 2, + 0.0306122449, + 0.1886792453, + 0.02094240838, + 0.6451612903, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Freedom', + '75+', + 1, + 0.02222222222, + 0.064, + 0.02994011976, + 0.2941176471, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '15-24', + 1, + 0.0306122449, + 0.03225806452, + 0.03333333333, + 0.1333333333, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Peace', + '15-24', + 12, + 0.03571428571, + 0.2692307692, + 0.03664921466, + 1.244444444, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Freedom', + '15-24', + 7, + 0.03888888889, + 0.1955307263, + 0.03592814371, + 0.7317073171, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '25-34', + 8, + 0.04081632653, + 0.2926829268, + 0.03333333333, + 0.8, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Peace', + '25-34', + 11, + 0.04081632653, + 0.281938326, + 0.03664921466, + 1.244444444, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Freedom', + '25-34', + 7, + 0.03888888889, + 0.2243589744, + 0.03592814371, + 0.7317073171, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '35-44', + 8, + 0.0306122449, + 0.1704545455, + 0.03333333333, + 0.6666666667, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Peace', + '35-44', + 9, + 0.03571428571, + 0.2079207921, + 0.03664921466, + 0.9333333333, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Freedom', + '35-44', + 6, + 0.03888888889, + 0.1891891892, + 0.03592814371, + 0.7317073171, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '45-54', + 13, + 0.03571428571, + 0.270718232, + 0.03333333333, + 0.9333333333, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Peace', + '45-54', + 16, + 0.03571428571, + 0.358974359, + 0.03664921466, + 1.555555556, + 10, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Freedom', + '45-54', + 9, + 0.03888888889, + 0.2134146341, + 0.03592814371, + 0.7317073171, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '55-64', + 14, + 0.03571428571, + 0.3867403315, + 0.03333333333, + 1.333333333, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Peace', + '55-64', + 3, + 0.04081632653, + 0.0987654321, + 0.03664921466, + 0.3111111111, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Freedom', + '55-64', + 13, + 0.03888888889, + 0.4191616766, + 0.03592814371, + 1.463414634, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '65-74', + 7, + 0.03571428571, + 0.2832369942, + 0.03333333333, + 0.9333333333, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Peace', + '65-74', + 6, + 0.0306122449, + 0.2068965517, + 0.03664921466, + 0.9333333333, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Freedom', + '65-74', + 9, + 0.03333333333, + 0.3417721519, + 0.03592814371, + 1.317073171, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '75+', + 9, + 0.04081632653, + 0.32, + 0.03333333333, + 1.2, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Peace', + '75+', + 5, + 0.0306122449, + 0.1886792453, + 0.03664921466, + 0.7777777778, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Freedom', + '75+', + 2, + 0.02222222222, + 0.064, + 0.03592814371, + 0.2926829268, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '15-24', + 10, + 0.02255639098, + 0.237037037, + 0.04232804233, + 1.230769231, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '15-24', + 8, + 0.02380952381, + 0.2734375, + 0.04619332763, + 1.05, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '25-34', + 10, + 0.02255639098, + 0.2222222222, + 0.04232804233, + 1.230769231, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '25-34', + 10, + 0.02380952381, + 0.25, + 0.04619332763, + 1.2, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '35-44', + 6, + 0.03383458647, + 0.1678321678, + 0.04232804233, + 0.6153846154, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '35-44', + 11, + 0.03333333333, + 0.270718232, + 0.04619332763, + 1.05, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '45-54', + 16, + 0.02819548872, + 0.2694610778, + 0.04232804233, + 1.384615385, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '45-54', + 19, + 0.0380952381, + 0.4756756757, + 0.04619332763, + 1.65, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '55-64', + 12, + 0.03383458647, + 0.3068181818, + 0.04232804233, + 1.384615385, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '55-64', + 11, + 0.03333333333, + 0.3620689655, + 0.04619332763, + 1.35, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '65-74', + 9, + 0.03383458647, + 0.2427745665, + 0.04232804233, + 1.076923077, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '65-74', + 8, + 0.03333333333, + 0.2545454545, + 0.04619332763, + 0.9, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '75+', + 6, + 0.03947368421, + 0.2934131737, + 0.04232804233, + 1.076923077, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Freedom', + '75+', + 10, + 0.02857142857, + 0.5, + 0.04619332763, + 1.8, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '15-24', + 5, + 0.02255639098, + 0.1185185185, + 0.02645502646, + 0.5882352941, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '15-24', + 9, + 0.02380952381, + 0.2734375, + 0.05645851155, + 1.013157895, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '25-34', + 3, + 0.02255639098, + 0.08333333333, + 0.02645502646, + 0.4411764706, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '25-34', + 16, + 0.02380952381, + 0.375, + 0.05645851155, + 1.736842105, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '35-44', + 2, + 0.03383458647, + 0.08391608392, + 0.02645502646, + 0.2941176471, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '35-44', + 17, + 0.03333333333, + 0.4640883978, + 0.05645851155, + 1.736842105, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '45-54', + 10, + 0.02819548872, + 0.1796407186, + 0.02645502646, + 0.8823529412, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '45-54', + 23, + 0.0380952381, + 0.6486486486, + 0.05645851155, + 2.171052632, + 15, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '55-64', + 8, + 0.03383458647, + 0.2045454545, + 0.02645502646, + 0.8823529412, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '55-64', + 15, + 0.03333333333, + 0.4827586207, + 0.05645851155, + 1.736842105, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '65-74', + 8, + 0.03383458647, + 0.2080924855, + 0.02645502646, + 0.8823529412, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '65-74', + 18, + 0.03333333333, + 0.5515151515, + 0.05645851155, + 1.881578947, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '75+', + 5, + 0.03947368421, + 0.2934131737, + 0.02645502646, + 1.029411765, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Freedom', + '75+', + 4, + 0.02857142857, + 0.2083333333, + 0.05645851155, + 0.7236842105, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '15-24', + 5, + 0.02255639098, + 0.1481481481, + 0.04232804233, + 0.6779661017, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '15-24', + 2, + 0.02380952381, + 0.078125, + 0.02566295979, + 0.3333333333, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '25-34', + 18, + 0.02255639098, + 0.3333333333, + 0.04232804233, + 1.627118644, + 12, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '25-34', + 2, + 0.02380952381, + 0.03125, + 0.02566295979, + 0.1666666667, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '35-44', + 17, + 0.03383458647, + 0.4615384615, + 0.04232804233, + 1.491525424, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '35-44', + 9, + 0.03333333333, + 0.2320441989, + 0.02566295979, + 1, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '45-54', + 13, + 0.02819548872, + 0.2395209581, + 0.04232804233, + 1.084745763, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '45-54', + 8, + 0.0380952381, + 0.2594594595, + 0.02566295979, + 1, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '55-64', + 12, + 0.03383458647, + 0.2727272727, + 0.04232804233, + 1.084745763, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '55-64', + 13, + 0.03333333333, + 0.3218390805, + 0.02566295979, + 1.333333333, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '65-74', + 6, + 0.03383458647, + 0.1040462428, + 0.04232804233, + 0.406779661, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '65-74', + 10, + 0.03333333333, + 0.2121212121, + 0.02566295979, + 0.8333333333, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '75+', + 8, + 0.03947368421, + 0.502994012, + 0.04232804233, + 1.627118644, + 12, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Freedom', + '75+', + 1, + 0.02857142857, + 0.08333333333, + 0.02566295979, + 0.3333333333, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '15-24', + 2, + 0.02255639098, + 0.08888888889, + 0.02116402116, + 0.4444444444, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '15-24', + 0, + 0.02380952381, + 0, + 0.01026518392, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '25-34', + 1, + 0.02255639098, + 0.02777777778, + 0.02116402116, + 0.1481481481, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '25-34', + 1, + 0.02380952381, + 0.0625, + 0.01026518392, + 0.25, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '35-44', + 1, + 0.03383458647, + 0.08391608392, + 0.02116402116, + 0.2962962963, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '35-44', + 3, + 0.03333333333, + 0.1546961326, + 0.01026518392, + 0.5, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '45-54', + 3, + 0.02819548872, + 0.119760479, + 0.02116402116, + 0.5925925926, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '45-54', + 0, + 0.0380952381, + 0, + 0.01026518392, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '55-64', + 2, + 0.03383458647, + 0.1363636364, + 0.02116402116, + 0.5925925926, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '55-64', + 2, + 0.03333333333, + 0.1609195402, + 0.01026518392, + 0.5, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '65-74', + 4, + 0.03383458647, + 0.2427745665, + 0.02116402116, + 1.037037037, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '65-74', + 1, + 0.03333333333, + 0.04242424242, + 0.01026518392, + 0.125, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '75+', + 2, + 0.03947368421, + 0.251497006, + 0.02116402116, + 0.8888888889, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Freedom', + '75+', + 1, + 0.02857142857, + 0.2083333333, + 0.01026518392, + 0.625, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '15-24', + 9, + 0.02255639098, + 0.237037037, + 0.02116402116, + 1.066666667, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '15-24', + 9, + 0.02380952381, + 0.3125, + 0.05132591959, + 1.230769231, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '25-34', + 4, + 0.02255639098, + 0.05555555556, + 0.02116402116, + 0.2666666667, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '25-34', + 24, + 0.02380952381, + 0.46875, + 0.05132591959, + 2.307692308, + 15, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '35-44', + 5, + 0.03383458647, + 0.2097902098, + 0.02116402116, + 0.6666666667, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '35-44', + 8, + 0.03333333333, + 0.3093922652, + 0.05132591959, + 1.230769231, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '45-54', + 6, + 0.02819548872, + 0.119760479, + 0.02116402116, + 0.5333333333, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '45-54', + 10, + 0.0380952381, + 0.3027027027, + 0.05132591959, + 1.076923077, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '55-64', + 5, + 0.03383458647, + 0.1363636364, + 0.02116402116, + 0.5333333333, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '55-64', + 19, + 0.03333333333, + 0.5632183908, + 0.05132591959, + 2.153846154, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '65-74', + 10, + 0.03383458647, + 0.2427745665, + 0.02116402116, + 0.9333333333, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '65-74', + 11, + 0.03333333333, + 0.296969697, + 0.05132591959, + 1.076923077, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '75+', + 0, + 0.03947368421, + 0, + 0.02116402116, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Freedom', + '75+', + 3, + 0.02857142857, + 0.25, + 0.05132591959, + 0.9230769231, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '15-24', + 37, + 0.02255639098, + 0.2666666667, + 0.04761904762, + 1.396551724, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '15-24', + 47, + 0.02380952381, + 0.46875, + 0.04619332763, + 1.714285714, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '25-34', + 55, + 0.02255639098, + 0.2777777778, + 0.04761904762, + 1.551724138, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '25-34', + 57, + 0.02380952381, + 0.3125, + 0.04619332763, + 1.428571429, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '35-44', + 10, + 0.03383458647, + 0.2097902098, + 0.04761904762, + 0.775862069, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '35-44', + 13, + 0.03333333333, + 0.270718232, + 0.04619332763, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '45-54', + 11, + 0.02819548872, + 0.1796407186, + 0.04761904762, + 0.9310344828, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '45-54', + 6, + 0.0380952381, + 0.1297297297, + 0.04619332763, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '55-64', + 21, + 0.03383458647, + 0.3409090909, + 0.04761904762, + 1.551724138, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '55-64', + 9, + 0.03333333333, + 0.1609195402, + 0.04619332763, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '65-74', + 27, + 0.03383458647, + 0.3121387283, + 0.04761904762, + 1.396551724, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '65-74', + 42, + 0.03333333333, + 0.5939393939, + 0.04619332763, + 2, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '75+', + 20, + 0.03947368421, + 0.377245509, + 0.04761904762, + 1.396551724, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Freedom', + '75+', + 29, + 0.02857142857, + 0.5416666667, + 0.04619332763, + 1.857142857, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '15-24', + 6, + 0.02255639098, + 0.1185185185, + 0.04232804233, + 0.5818181818, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '15-24', + 3, + 0.02380952381, + 0.078125, + 0.03592814371, + 0.3181818182, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '25-34', + 5, + 0.02255639098, + 0.1111111111, + 0.04232804233, + 0.5818181818, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '25-34', + 3, + 0.02380952381, + 0.09375, + 0.03592814371, + 0.4772727273, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '35-44', + 15, + 0.03383458647, + 0.4195804196, + 0.04232804233, + 1.454545455, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '35-44', + 12, + 0.03333333333, + 0.3093922652, + 0.03592814371, + 1.272727273, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '45-54', + 14, + 0.02819548872, + 0.2395209581, + 0.04232804233, + 1.163636364, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '45-54', + 21, + 0.0380952381, + 0.5189189189, + 0.03592814371, + 1.909090909, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '55-64', + 13, + 0.03383458647, + 0.3409090909, + 0.04232804233, + 1.454545455, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '55-64', + 10, + 0.03333333333, + 0.2816091954, + 0.03592814371, + 1.113636364, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '65-74', + 11, + 0.03383458647, + 0.3121387283, + 0.04232804233, + 1.309090909, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '65-74', + 9, + 0.03333333333, + 0.3393939394, + 0.03592814371, + 1.272727273, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '75+', + 11, + 0.03947368421, + 0.4191616766, + 0.04232804233, + 1.454545455, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Freedom', + '75+', + 4, + 0.02857142857, + 0.1666666667, + 0.03592814371, + 0.6363636364, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '15-24', + 8, + 0.02255639098, + 0.2074074074, + 0.02645502646, + 0.9459459459, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '15-24', + 4, + 0.02380952381, + 0.1171875, + 0.04106073567, + 0.4615384615, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '25-34', + 7, + 0.02255639098, + 0.1388888889, + 0.02645502646, + 0.6756756757, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '25-34', + 13, + 0.02380952381, + 0.28125, + 0.04106073567, + 1.384615385, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '35-44', + 5, + 0.03383458647, + 0.1258741259, + 0.02645502646, + 0.4054054054, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '35-44', + 13, + 0.03333333333, + 0.3093922652, + 0.04106073567, + 1.230769231, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '45-54', + 7, + 0.02819548872, + 0.1497005988, + 0.02645502646, + 0.6756756757, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '45-54', + 16, + 0.0380952381, + 0.5621621622, + 0.04106073567, + 2, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '55-64', + 6, + 0.03383458647, + 0.1704545455, + 0.02645502646, + 0.6756756757, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '55-64', + 17, + 0.03333333333, + 0.4827586207, + 0.04106073567, + 1.846153846, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '65-74', + 10, + 0.03383458647, + 0.2427745665, + 0.02645502646, + 0.9459459459, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '65-74', + 3, + 0.03333333333, + 0.1272727273, + 0.04106073567, + 0.4615384615, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '75+', + 5, + 0.03947368421, + 0.2095808383, + 0.02645502646, + 0.6756756757, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Freedom', + '75+', + 3, + 0.02857142857, + 0.1666666667, + 0.04106073567, + 0.6153846154, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '15-24', + 2, + 0.02255639098, + 0.05925925926, + 0.02116402116, + 0.2962962963, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '15-24', + 2, + 0.02380952381, + 0.078125, + 0.005132591959, + 0.2, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '25-34', + 6, + 0.02255639098, + 0.1111111111, + 0.02116402116, + 0.5925925926, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '25-34', + 1, + 0.02380952381, + 0.03125, + 0.005132591959, + 0.1, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '35-44', + 4, + 0.03383458647, + 0.1258741259, + 0.02116402116, + 0.4444444444, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '35-44', + 1, + 0.03333333333, + 0.03867403315, + 0.005132591959, + 0.1, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '45-54', + 7, + 0.02819548872, + 0.1497005988, + 0.02116402116, + 0.7407407407, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '45-54', + 5, + 0.0380952381, + 0.1297297297, + 0.005132591959, + 0.3, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '55-64', + 9, + 0.03383458647, + 0.2386363636, + 0.02116402116, + 1.037037037, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '55-64', + 1, + 0.03333333333, + 0.04022988506, + 0.005132591959, + 0.1, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '65-74', + 3, + 0.03383458647, + 0.06936416185, + 0.02116402116, + 0.2962962963, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '65-74', + 1, + 0.03333333333, + 0.04242424242, + 0.005132591959, + 0.1, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '75+', + 4, + 0.03947368421, + 0.1676646707, + 0.02116402116, + 0.5925925926, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Freedom', + '75+', + 1, + 0.02857142857, + 0.04166666667, + 0.005132591959, + 0.1, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '15-24', + 3, + 0.02255639098, + 0.08888888889, + 0.01058201058, + 0.4, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '15-24', + 3, + 0.02380952381, + 0.15625, + 0.02053036784, + 0.4848484848, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '25-34', + 4, + 0.02255639098, + 0.08333333333, + 0.01058201058, + 0.4, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '25-34', + 3, + 0.02380952381, + 0.09375, + 0.02053036784, + 0.3636363636, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '35-44', + 2, + 0.03383458647, + 0.08391608392, + 0.01058201058, + 0.2666666667, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '35-44', + 6, + 0.03333333333, + 0.1546961326, + 0.02053036784, + 0.4848484848, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '45-54', + 5, + 0.02819548872, + 0.08982035928, + 0.01058201058, + 0.4, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '45-54', + 9, + 0.0380952381, + 0.2594594595, + 0.02053036784, + 0.7272727273, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '55-64', + 4, + 0.03383458647, + 0.1363636364, + 0.01058201058, + 0.5333333333, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '55-64', + 6, + 0.03333333333, + 0.2413793103, + 0.02053036784, + 0.7272727273, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '65-74', + 0, + 0.03383458647, + 0, + 0.01058201058, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '65-74', + 2, + 0.03333333333, + 0.1272727273, + 0.02053036784, + 0.3636363636, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '75+', + 0, + 0.03947368421, + 0, + 0.01058201058, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Freedom', + '75+', + 3, + 0.02857142857, + 0.2916666667, + 0.02053036784, + 0.8484848485, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '15-24', + 0, + 0.02255639098, + 0, + 0.04232804233, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '15-24', + 0, + 0.02380952381, + 0, + 0.02053036784, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '25-34', + 7, + 0.02255639098, + 0.1666666667, + 0.04232804233, + 0.8727272727, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '25-34', + 7, + 0.02380952381, + 0.15625, + 0.02053036784, + 0.7407407407, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '35-44', + 7, + 0.03383458647, + 0.1678321678, + 0.04232804233, + 0.5818181818, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '35-44', + 8, + 0.03333333333, + 0.1933701657, + 0.02053036784, + 0.7407407407, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '45-54', + 17, + 0.02819548872, + 0.3293413174, + 0.04232804233, + 1.6, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '45-54', + 6, + 0.0380952381, + 0.1297297297, + 0.02053036784, + 0.4444444444, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '55-64', + 19, + 0.03383458647, + 0.4090909091, + 0.04232804233, + 1.745454545, + 12, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '55-64', + 10, + 0.03333333333, + 0.2816091954, + 0.02053036784, + 1.037037037, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '65-74', + 17, + 0.03383458647, + 0.3815028902, + 0.04232804233, + 1.6, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '65-74', + 7, + 0.03333333333, + 0.2121212121, + 0.02053036784, + 0.7407407407, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '75+', + 11, + 0.03947368421, + 0.4610778443, + 0.04232804233, + 1.6, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Freedom', + '75+', + 2, + 0.02857142857, + 0.08333333333, + 0.02053036784, + 0.2962962963, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '15-24', + 1, + 0.02255639098, + 0, + 0.01058201058, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '15-24', + 6, + 0.02380952381, + 0.1953125, + 0.05132591959, + 0.7042253521, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '25-34', + 0, + 0.02255639098, + 0, + 0.01058201058, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '25-34', + 16, + 0.02380952381, + 0.4375, + 0.05132591959, + 1.971830986, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '35-44', + 5, + 0.03383458647, + 0.1258741259, + 0.01058201058, + 0.5, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '35-44', + 19, + 0.03333333333, + 0.5027624309, + 0.05132591959, + 1.830985915, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '45-54', + 0, + 0.02819548872, + 0, + 0.01058201058, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '45-54', + 13, + 0.0380952381, + 0.3891891892, + 0.05132591959, + 1.267605634, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '55-64', + 4, + 0.03383458647, + 0.1363636364, + 0.01058201058, + 0.6666666667, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '55-64', + 5, + 0.03333333333, + 0.1609195402, + 0.05132591959, + 0.5633802817, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '65-74', + 3, + 0.03383458647, + 0.06936416185, + 0.01058201058, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '65-74', + 13, + 0.03333333333, + 0.4666666667, + 0.05132591959, + 1.549295775, + 11, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '75+', + 3, + 0.03947368421, + 0.125748503, + 0.01058201058, + 0.5, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Freedom', + '75+', + 14, + 0.02857142857, + 0.625, + 0.05132591959, + 2.112676056, + 15, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '15-24', + 7, + 0.02255639098, + 0.1481481481, + 0.03703703704, + 0.7446808511, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '15-24', + 4, + 0.02380952381, + 0.1171875, + 0.01026518392, + 0.4615384615, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '25-34', + 13, + 0.02255639098, + 0.2222222222, + 0.03703703704, + 1.191489362, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '25-34', + 2, + 0.02380952381, + 0.03125, + 0.01026518392, + 0.1538461538, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '35-44', + 14, + 0.03383458647, + 0.3776223776, + 0.03703703704, + 1.340425532, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '35-44', + 3, + 0.03333333333, + 0.0773480663, + 0.01026518392, + 0.3076923077, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '45-54', + 15, + 0.02819548872, + 0.2994011976, + 0.03703703704, + 1.489361702, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '45-54', + 6, + 0.0380952381, + 0.172972973, + 0.01026518392, + 0.6153846154, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '55-64', + 14, + 0.03383458647, + 0.2727272727, + 0.03703703704, + 1.191489362, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '55-64', + 5, + 0.03333333333, + 0.1206896552, + 0.01026518392, + 0.4615384615, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '65-74', + 12, + 0.03383458647, + 0.2427745665, + 0.03703703704, + 1.042553191, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '65-74', + 0, + 0.03333333333, + 0, + 0.01026518392, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '75+', + 0, + 0.03947368421, + 0, + 0.03703703704, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Freedom', + '75+', + 0, + 0.02857142857, + 0, + 0.01026518392, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '15-24', + 9, + 0.02255639098, + 0.2074074074, + 0.03703703704, + 1.139534884, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '15-24', + 6, + 0.02380952381, + 0.1953125, + 0.02566295979, + 0.6578947368, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '25-34', + 4, + 0.02255639098, + 0.08333333333, + 0.03703703704, + 0.488372093, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '25-34', + 9, + 0.02380952381, + 0.25, + 0.02566295979, + 1.052631579, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '35-44', + 13, + 0.03383458647, + 0.2937062937, + 0.03703703704, + 1.139534884, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '35-44', + 10, + 0.03333333333, + 0.2320441989, + 0.02566295979, + 0.7894736842, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '45-54', + 9, + 0.02819548872, + 0.2095808383, + 0.03703703704, + 1.139534884, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '45-54', + 7, + 0.0380952381, + 0.2162162162, + 0.02566295979, + 0.6578947368, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '55-64', + 12, + 0.03383458647, + 0.2727272727, + 0.03703703704, + 1.302325581, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '55-64', + 5, + 0.03333333333, + 0.1206896552, + 0.02566295979, + 0.3947368421, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '65-74', + 12, + 0.03383458647, + 0.2774566474, + 0.03703703704, + 1.302325581, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '65-74', + 9, + 0.03333333333, + 0.296969697, + 0.02566295979, + 0.9210526316, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '75+', + 2, + 0.03947368421, + 0.125748503, + 0.03703703704, + 0.488372093, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Freedom', + '75+', + 3, + 0.02857142857, + 0.1666666667, + 0.02566295979, + 0.5263157895, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '15-24', + 13, + 0.02255639098, + 0.2666666667, + 0.04761904762, + 1.372881356, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '15-24', + 9, + 0.02380952381, + 0.2734375, + 0.04106073567, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '25-34', + 15, + 0.02255639098, + 0.2777777778, + 0.04761904762, + 1.525423729, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '25-34', + 8, + 0.02380952381, + 0.1875, + 0.04106073567, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '35-44', + 20, + 0.03383458647, + 0.3776223776, + 0.04761904762, + 1.372881356, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '35-44', + 12, + 0.03333333333, + 0.1933701657, + 0.04106073567, + 0.7142857143, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '45-54', + 11, + 0.02819548872, + 0.2095808383, + 0.04761904762, + 1.06779661, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '45-54', + 16, + 0.0380952381, + 0.4324324324, + 0.04106073567, + 1.428571429, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '55-64', + 11, + 0.03383458647, + 0.3068181818, + 0.04761904762, + 1.372881356, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '55-64', + 15, + 0.03333333333, + 0.4827586207, + 0.04106073567, + 1.714285714, + 12, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '65-74', + 9, + 0.03383458647, + 0.2427745665, + 0.04761904762, + 1.06779661, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '65-74', + 9, + 0.03333333333, + 0.296969697, + 0.04106073567, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '75+', + 5, + 0.03947368421, + 0.3353293413, + 0.04761904762, + 1.220338983, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Freedom', + '75+', + 5, + 0.02857142857, + 0.375, + 0.04106073567, + 1.285714286, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '15-24', + 9, + 0.02255639098, + 0.2666666667, + 0.03174603175, + 1.08, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '15-24', + 1, + 0.02380952381, + 0.0390625, + 0.01539777588, + 0.15, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '25-34', + 8, + 0.02255639098, + 0.1666666667, + 0.03174603175, + 0.72, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '25-34', + 4, + 0.02380952381, + 0.09375, + 0.01539777588, + 0.45, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '35-44', + 9, + 0.03383458647, + 0.2937062937, + 0.03174603175, + 0.84, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '35-44', + 4, + 0.03333333333, + 0.1160220994, + 0.01539777588, + 0.45, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '45-54', + 10, + 0.02819548872, + 0.1796407186, + 0.03174603175, + 0.72, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '45-54', + 8, + 0.0380952381, + 0.2162162162, + 0.01539777588, + 0.75, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '55-64', + 5, + 0.03383458647, + 0.1363636364, + 0.03174603175, + 0.48, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '55-64', + 5, + 0.03333333333, + 0.1609195402, + 0.01539777588, + 0.6, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '65-74', + 7, + 0.03383458647, + 0.1387283237, + 0.03174603175, + 0.48, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '65-74', + 6, + 0.03333333333, + 0.1696969697, + 0.01539777588, + 0.6, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '75+', + 12, + 0.03947368421, + 0.5868263473, + 0.03174603175, + 1.68, + 14, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Freedom', + '75+', + 0, + 0.02857142857, + 0, + 0.01539777588, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '15-24', + 15, + 0.02255639098, + 0.3259259259, + 0.02645502646, + 1.486486486, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '15-24', + 2, + 0.02380952381, + 0.078125, + 0.01539777588, + 0.3333333333, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '25-34', + 3, + 0.02255639098, + 0.05555555556, + 0.02645502646, + 0.2702702703, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '25-34', + 6, + 0.02380952381, + 0.15625, + 0.01539777588, + 0.8333333333, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '35-44', + 4, + 0.03383458647, + 0.1258741259, + 0.02645502646, + 0.4054054054, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '35-44', + 5, + 0.03333333333, + 0.1546961326, + 0.01539777588, + 0.6666666667, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '45-54', + 12, + 0.02819548872, + 0.1796407186, + 0.02645502646, + 0.8108108108, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '45-54', + 7, + 0.0380952381, + 0.172972973, + 0.01539777588, + 0.6666666667, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '55-64', + 4, + 0.03383458647, + 0.1022727273, + 0.02645502646, + 0.4054054054, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '55-64', + 2, + 0.03333333333, + 0.08045977011, + 0.01539777588, + 0.3333333333, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '65-74', + 6, + 0.03383458647, + 0.1734104046, + 0.02645502646, + 0.6756756757, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '65-74', + 1, + 0.03333333333, + 0.04242424242, + 0.01539777588, + 0.1666666667, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '75+', + 9, + 0.03947368421, + 0.2934131737, + 0.02645502646, + 0.9459459459, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Freedom', + '75+', + 0, + 0.02857142857, + 0, + 0.01539777588, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '15-24', + 2, + 0.02255639098, + 0.08888888889, + 0.01058201058, + 0.375, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '15-24', + 1, + 0.02380952381, + 0.078125, + 0.03079555175, + 0.3076923077, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '25-34', + 1, + 0.02255639098, + 0.05555555556, + 0.01058201058, + 0.25, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '25-34', + 5, + 0.02380952381, + 0.1875, + 0.03079555175, + 0.9230769231, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '35-44', + 1, + 0.03383458647, + 0.04195804196, + 0.01058201058, + 0.125, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '35-44', + 2, + 0.03333333333, + 0.1160220994, + 0.03079555175, + 0.4615384615, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '45-54', + 1, + 0.02819548872, + 0.05988023952, + 0.01058201058, + 0.25, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '45-54', + 8, + 0.0380952381, + 0.3891891892, + 0.03079555175, + 1.384615385, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '55-64', + 1, + 0.03383458647, + 0.03409090909, + 0.01058201058, + 0.125, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '55-64', + 6, + 0.03333333333, + 0.3620689655, + 0.03079555175, + 1.384615385, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '65-74', + 2, + 0.03383458647, + 0.1387283237, + 0.01058201058, + 0.5, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '65-74', + 4, + 0.03333333333, + 0.2545454545, + 0.03079555175, + 0.9230769231, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '75+', + 1, + 0.03947368421, + 0.125748503, + 0.01058201058, + 0.375, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Freedom', + '75+', + 1, + 0.02857142857, + 0.1666666667, + 0.03079555175, + 0.6153846154, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '15-24', + 3, + 0.02255639098, + 0.08888888889, + 0.02645502646, + 0.5172413793, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '15-24', + 7, + 0.02380952381, + 0.234375, + 0.01539777588, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '25-34', + 7, + 0.02255639098, + 0.1388888889, + 0.02645502646, + 0.8620689655, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '25-34', + 4, + 0.02380952381, + 0.09375, + 0.01539777588, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '35-44', + 2, + 0.03383458647, + 0.04195804196, + 0.02645502646, + 0.1724137931, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '35-44', + 6, + 0.03333333333, + 0.1546961326, + 0.01539777588, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '45-54', + 10, + 0.02819548872, + 0.2395209581, + 0.02645502646, + 1.379310345, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '45-54', + 4, + 0.0380952381, + 0.1297297297, + 0.01539777588, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '55-64', + 8, + 0.03383458647, + 0.2045454545, + 0.02645502646, + 1.034482759, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '55-64', + 4, + 0.03333333333, + 0.1206896552, + 0.01539777588, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '65-74', + 14, + 0.03383458647, + 0.2080924855, + 0.02645502646, + 1.034482759, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '65-74', + 4, + 0.03333333333, + 0.08484848485, + 0.01539777588, + 0.2857142857, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '75+', + 0, + 0.03947368421, + 0, + 0.02645502646, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Freedom', + '75+', + 0, + 0.02857142857, + 0, + 0.01539777588, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '15-24', + 0, + 0.02255639098, + 0, + 0.02116402116, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '15-24', + 8, + 0.02380952381, + 0.5078125, + 0.03079555175, + 2.108108108, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '25-34', + 5, + 0.02255639098, + 0.25, + 0.02116402116, + 1.161290323, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '25-34', + 3, + 0.02380952381, + 0.125, + 0.03079555175, + 0.6486486486, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '35-44', + 1, + 0.03383458647, + 0.08391608392, + 0.02116402116, + 0.2580645161, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '35-44', + 6, + 0.03333333333, + 0.3480662983, + 0.03079555175, + 1.459459459, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '45-54', + 4, + 0.02819548872, + 0.1796407186, + 0.02116402116, + 0.7741935484, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '45-54', + 4, + 0.0380952381, + 0.2594594595, + 0.03079555175, + 0.972972973, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '55-64', + 2, + 0.03383458647, + 0.1022727273, + 0.02116402116, + 0.3870967742, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '55-64', + 2, + 0.03333333333, + 0.08045977011, + 0.03079555175, + 0.3243243243, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '65-74', + 2, + 0.03383458647, + 0.1040462428, + 0.02116402116, + 0.3870967742, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '65-74', + 1, + 0.03333333333, + 0.04242424242, + 0.03079555175, + 0.1621621622, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '75+', + 3, + 0.03947368421, + 0.3353293413, + 0.02116402116, + 1.032258065, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Freedom', + '75+', + 1, + 0.02857142857, + 0.08333333333, + 0.03079555175, + 0.3243243243, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '15-24', + 0, + 0.02255639098, + 0, + 0.03174603175, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '15-24', + 6, + 0.02380952381, + 0.1953125, + 0.06672369547, + 0.7222222222, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '25-34', + 3, + 0.02255639098, + 0.08333333333, + 0.03174603175, + 0.5294117647, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '25-34', + 9, + 0.02380952381, + 0.25, + 0.06672369547, + 1.155555556, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '35-44', + 12, + 0.03383458647, + 0.2517482517, + 0.03174603175, + 1.058823529, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '35-44', + 26, + 0.03333333333, + 0.5414364641, + 0.06672369547, + 2.022222222, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '45-54', + 10, + 0.02819548872, + 0.1497005988, + 0.03174603175, + 0.8823529412, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '45-54', + 31, + 0.0380952381, + 0.6918918919, + 0.06672369547, + 2.311111111, + 16, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '55-64', + 9, + 0.03383458647, + 0.2045454545, + 0.03174603175, + 1.058823529, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '55-64', + 22, + 0.03333333333, + 0.5632183908, + 0.06672369547, + 2.022222222, + 14, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '65-74', + 32, + 0.03383458647, + 0.4855491329, + 0.03174603175, + 2.470588235, + 14, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '65-74', + 37, + 0.03333333333, + 0.6363636364, + 0.06672369547, + 2.166666667, + 15, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '75+', + 0, + 0.03947368421, + 0, + 0.03174603175, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Freedom', + '75+', + 2, + 0.02857142857, + 0.75, + 0.06672369547, + 2.6, + 18, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '15-24', + 1, + 0.02255639098, + 0.02962962963, + 0.02645502646, + 0.1351351351, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '15-24', + 7, + 0.02380952381, + 0.234375, + 0.03592814371, + 0.8936170213, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '25-34', + 10, + 0.02255639098, + 0.1944444444, + 0.02645502646, + 0.9459459459, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '25-34', + 11, + 0.02380952381, + 0.21875, + 0.03592814371, + 1.042553191, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '35-44', + 11, + 0.03383458647, + 0.2517482517, + 0.02645502646, + 0.8108108108, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '35-44', + 19, + 0.03333333333, + 0.3867403315, + 0.03592814371, + 1.489361702, + 10, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '45-54', + 6, + 0.02819548872, + 0.119760479, + 0.02645502646, + 0.5405405405, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '45-54', + 11, + 0.0380952381, + 0.3891891892, + 0.03592814371, + 1.340425532, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '55-64', + 9, + 0.03383458647, + 0.2045454545, + 0.02645502646, + 0.8108108108, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '55-64', + 6, + 0.03333333333, + 0.1609195402, + 0.03592814371, + 0.5957446809, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '65-74', + 11, + 0.03383458647, + 0.3121387283, + 0.02645502646, + 1.216216216, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '65-74', + 8, + 0.03333333333, + 0.2545454545, + 0.03592814371, + 0.8936170213, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '75+', + 2, + 0.03947368421, + 0.1676646707, + 0.02645502646, + 0.5405405405, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Freedom', + '75+', + 3, + 0.02857142857, + 0.2083333333, + 0.03592814371, + 0.7446808511, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '15-24', + 9, + 0.02255639098, + 0.2666666667, + 0.02116402116, + 1.161290323, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '15-24', + 5, + 0.02380952381, + 0.1953125, + 0.01539777588, + 0.7142857143, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '25-34', + 1, + 0.02255639098, + 0.02777777778, + 0.02116402116, + 0.1290322581, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '25-34', + 2, + 0.02380952381, + 0.0625, + 0.01539777588, + 0.2857142857, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '35-44', + 5, + 0.03383458647, + 0.1258741259, + 0.02116402116, + 0.3870967742, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '35-44', + 6, + 0.03333333333, + 0.1546961326, + 0.01539777588, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '45-54', + 3, + 0.02819548872, + 0.05988023952, + 0.02116402116, + 0.2580645161, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '45-54', + 4, + 0.0380952381, + 0.1297297297, + 0.01539777588, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '55-64', + 6, + 0.03383458647, + 0.1363636364, + 0.02116402116, + 0.5161290323, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '55-64', + 0, + 0.03333333333, + 0, + 0.01539777588, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '65-74', + 4, + 0.03383458647, + 0.1040462428, + 0.02116402116, + 0.3870967742, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '65-74', + 6, + 0.03333333333, + 0.1696969697, + 0.01539777588, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '75+', + 7, + 0.03947368421, + 0.377245509, + 0.02116402116, + 1.161290323, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Freedom', + '75+', + 2, + 0.02857142857, + 0.125, + 0.01539777588, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '15-24', + 10, + 0.02255639098, + 0.237037037, + 0.03174603175, + 1.170731707, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '15-24', + 3, + 0.02380952381, + 0.078125, + 0.01539777588, + 0.3, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '25-34', + 6, + 0.02255639098, + 0.1111111111, + 0.03174603175, + 0.5853658537, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '25-34', + 4, + 0.02380952381, + 0.09375, + 0.01539777588, + 0.45, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '35-44', + 15, + 0.03383458647, + 0.3356643357, + 0.03174603175, + 1.170731707, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '35-44', + 7, + 0.03333333333, + 0.1546961326, + 0.01539777588, + 0.6, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '45-54', + 5, + 0.02819548872, + 0.119760479, + 0.03174603175, + 0.5853658537, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '45-54', + 5, + 0.0380952381, + 0.172972973, + 0.01539777588, + 0.6, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '55-64', + 8, + 0.03383458647, + 0.1704545455, + 0.03174603175, + 0.7317073171, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '55-64', + 4, + 0.03333333333, + 0.1206896552, + 0.01539777588, + 0.45, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '65-74', + 6, + 0.03383458647, + 0.1387283237, + 0.03174603175, + 0.5853658537, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '65-74', + 5, + 0.03333333333, + 0.1696969697, + 0.01539777588, + 0.6, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '75+', + 3, + 0.03947368421, + 0.3353293413, + 0.03174603175, + 1.170731707, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Freedom', + '75+', + 0, + 0.02857142857, + 0, + 0.01539777588, + 0, + 0, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '15-24', + 3, + 0.02255639098, + 0.08888888889, + 0.04761904762, + 0.45, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '15-24', + 9, + 0.02380952381, + 0.2734375, + 0.04619332763, + 1.06779661, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '25-34', + 15, + 0.02255639098, + 0.25, + 0.04761904762, + 1.35, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '25-34', + 12, + 0.02380952381, + 0.21875, + 0.04619332763, + 1.06779661, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '35-44', + 13, + 0.03383458647, + 0.3776223776, + 0.04761904762, + 1.35, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '35-44', + 13, + 0.03333333333, + 0.3480662983, + 0.04619332763, + 1.372881356, + 9, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '45-54', + 17, + 0.02819548872, + 0.3293413174, + 0.04761904762, + 1.65, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '45-54', + 12, + 0.0380952381, + 0.3027027027, + 0.04619332763, + 1.06779661, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '55-64', + 8, + 0.03383458647, + 0.2045454545, + 0.04761904762, + 0.9, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '55-64', + 12, + 0.03333333333, + 0.3218390805, + 0.04619332763, + 1.220338983, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '65-74', + 16, + 0.03383458647, + 0.3815028902, + 0.04761904762, + 1.65, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '65-74', + 20, + 0.03333333333, + 0.5515151515, + 0.04619332763, + 1.983050847, + 13, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '75+', + 13, + 0.03947368421, + 0.4610778443, + 0.04761904762, + 1.65, + 11, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Freedom', + '75+', + 9, + 0.02857142857, + 0.3333333333, + 0.04619332763, + 1.220338983, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '15-24', + 6, + 0.02255639098, + 0.1481481481, + 0.04232804233, + 0.7407407407, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '15-24', + 6, + 0.02380952381, + 0.1953125, + 0.03079555175, + 0.6976744186, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '25-34', + 13, + 0.02255639098, + 0.2222222222, + 0.04232804233, + 1.185185185, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '25-34', + 10, + 0.02380952381, + 0.1875, + 0.03079555175, + 0.8372093023, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '35-44', + 11, + 0.03383458647, + 0.2937062937, + 0.04232804233, + 1.037037037, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '35-44', + 13, + 0.03333333333, + 0.3093922652, + 0.03079555175, + 1.11627907, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '45-54', + 11, + 0.02819548872, + 0.2694610778, + 0.04232804233, + 1.333333333, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '45-54', + 5, + 0.0380952381, + 0.1297297297, + 0.03079555175, + 0.4186046512, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '55-64', + 13, + 0.03383458647, + 0.3068181818, + 0.04232804233, + 1.333333333, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '55-64', + 9, + 0.03333333333, + 0.2413793103, + 0.03079555175, + 0.8372093023, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '65-74', + 10, + 0.03383458647, + 0.2427745665, + 0.04232804233, + 1.037037037, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '65-74', + 10, + 0.03333333333, + 0.296969697, + 0.03079555175, + 0.976744186, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '75+', + 6, + 0.03947368421, + 0.377245509, + 0.04232804233, + 1.333333333, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Freedom', + '75+', + 5, + 0.02857142857, + 0.3333333333, + 0.03079555175, + 1.11627907, + 8, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '15-24', + 8, + 0.02255639098, + 0.1481481481, + 0.03703703704, + 0.8333333333, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '15-24', + 2, + 0.02380952381, + 0.078125, + 0.02566295979, + 0.2857142857, + 2, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '25-34', + 11, + 0.02255639098, + 0.1666666667, + 0.03703703704, + 1, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '25-34', + 12, + 0.02380952381, + 0.21875, + 0.02566295979, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '35-44', + 7, + 0.03383458647, + 0.1678321678, + 0.03703703704, + 0.6666666667, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '35-44', + 11, + 0.03333333333, + 0.2320441989, + 0.02566295979, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '45-54', + 15, + 0.02819548872, + 0.2994011976, + 0.03703703704, + 1.666666667, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '45-54', + 7, + 0.0380952381, + 0.172972973, + 0.02566295979, + 0.5714285714, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '55-64', + 13, + 0.03383458647, + 0.2727272727, + 0.03703703704, + 1.333333333, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '55-64', + 10, + 0.03333333333, + 0.2816091954, + 0.02566295979, + 1, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '65-74', + 9, + 0.03383458647, + 0.2427745665, + 0.03703703704, + 1.166666667, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '65-74', + 8, + 0.03333333333, + 0.2545454545, + 0.02566295979, + 0.8571428571, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '75+', + 1, + 0.03947368421, + 0.08383233533, + 0.03703703704, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Freedom', + '75+', + 1, + 0.02857142857, + 0.125, + 0.02566295979, + 0.4285714286, + 3, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '15-24', + 5, + 0.02255639098, + 0.1185185185, + 0.02645502646, + 0.6060606061, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '15-24', + 7, + 0.02380952381, + 0.1953125, + 0.02566295979, + 0.7575757576, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '25-34', + 5, + 0.02255639098, + 0.08333333333, + 0.02645502646, + 0.4545454545, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '25-34', + 2, + 0.02380952381, + 0.03125, + 0.02566295979, + 0.1515151515, + 1, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '35-44', + 10, + 0.03383458647, + 0.2937062937, + 0.02645502646, + 1.060606061, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '35-44', + 10, + 0.03333333333, + 0.270718232, + 0.02566295979, + 1.060606061, + 7, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '45-54', + 2, + 0.02819548872, + 0.02994011976, + 0.02645502646, + 0.1515151515, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '45-54', + 9, + 0.0380952381, + 0.2162162162, + 0.02566295979, + 0.7575757576, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '55-64', + 10, + 0.03383458647, + 0.2386363636, + 0.02645502646, + 1.060606061, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '55-64', + 7, + 0.03333333333, + 0.2413793103, + 0.02566295979, + 0.9090909091, + 6, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '65-74', + 4, + 0.03383458647, + 0.1387283237, + 0.02645502646, + 0.6060606061, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '65-74', + 5, + 0.03333333333, + 0.2121212121, + 0.02566295979, + 0.7575757576, + 5, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '75+', + 7, + 0.03947368421, + 0.2934131737, + 0.02645502646, + 1.060606061, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Freedom', + '75+', + 4, + 0.02857142857, + 0.1666666667, + 0.02566295979, + 0.6060606061, + 4, + 0.729591836734694, + 0.447278911564626, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Peace', + '15-24', + 5, + 0.01890756303, + 0.1212121212, + 0.01530612245, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Peace', + '25-34', + 5, + 0.02521008403, + 0.1403508772, + 0.01530612245, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Peace', + '35-44', + 12, + 0.01890756303, + 0.2424242424, + 0.01530612245, + 1.142857143, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Peace', + '45-54', + 4, + 0.01260504202, + 0.05, + 0.01530612245, + 0.2857142857, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Peace', + '55-64', + 1, + 0.01260504202, + 0.02469135802, + 0.01530612245, + 0.1428571429, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Peace', + '65-74', + 0, + 0.01260504202, + 0, + 0.01530612245, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Peace', + '75+', + 2, + 0.006302521008, + 0.03773584906, + 0.01530612245, + 0.2857142857, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Peace', + '15-24', + 4, + 0.01890756303, + 0.09090909091, + 0.01020408163, + 0.375, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Peace', + '25-34', + 4, + 0.02521008403, + 0.1052631579, + 0.01020408163, + 0.375, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Peace', + '35-44', + 4, + 0.01890756303, + 0.09090909091, + 0.01020408163, + 0.375, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Peace', + '45-54', + 0, + 0.01260504202, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Peace', + '55-64', + 7, + 0.01260504202, + 0.1234567901, + 0.01020408163, + 0.625, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Peace', + '65-74', + 3, + 0.01260504202, + 0.05479452055, + 0.01020408163, + 0.25, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'BE', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Peace', + '15-24', + 4, + 0.01890756303, + 0.09090909091, + 0.01020408163, + 0.4615384615, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Peace', + '25-34', + 4, + 0.02521008403, + 0.1052631579, + 0.01020408163, + 0.4615384615, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Peace', + '35-44', + 3, + 0.01890756303, + 0.06060606061, + 0.01020408163, + 0.3076923077, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Peace', + '45-54', + 7, + 0.01260504202, + 0.1, + 0.01020408163, + 0.6153846154, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Peace', + '55-64', + 1, + 0.01260504202, + 0.02469135802, + 0.01020408163, + 0.1538461538, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Peace', + '65-74', + 0, + 0.01260504202, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'BG', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Peace', + '15-24', + 3, + 0.01890756303, + 0.1515151515, + 0.02040816327, + 0.8695652174, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Peace', + '25-34', + 6, + 0.02521008403, + 0.3157894737, + 0.02040816327, + 1.565217391, + 9, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Peace', + '35-44', + 0, + 0.01890756303, + 0, + 0.02040816327, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Peace', + '45-54', + 4, + 0.01260504202, + 0.125, + 0.02040816327, + 0.8695652174, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Peace', + '55-64', + 2, + 0.01260504202, + 0.07407407407, + 0.02040816327, + 0.5217391304, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Peace', + '65-74', + 0, + 0.01260504202, + 0.02739726027, + 0.02040816327, + 0.1739130435, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CY', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.02040816327, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Peace', + '15-24', + 4, + 0.01890756303, + 0.09090909091, + 0.01020408163, + 0.375, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Peace', + '25-34', + 6, + 0.02521008403, + 0.1403508772, + 0.01020408163, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Peace', + '35-44', + 1, + 0.01890756303, + 0.0303030303, + 0.01020408163, + 0.125, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Peace', + '45-54', + 4, + 0.01260504202, + 0.075, + 0.01020408163, + 0.375, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Peace', + '55-64', + 5, + 0.01260504202, + 0.0987654321, + 0.01020408163, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Peace', + '65-74', + 1, + 0.01260504202, + 0.02739726027, + 0.01020408163, + 0.125, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'CZ', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Peace', + '15-24', + 14, + 0.01890756303, + 0.1212121212, + 0.01020408163, + 0.4705882353, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Peace', + '25-34', + 11, + 0.02521008403, + 0.0701754386, + 0.01020408163, + 0.2352941176, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Peace', + '35-44', + 3, + 0.01890756303, + 0.06060606061, + 0.01020408163, + 0.2352941176, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Peace', + '45-54', + 3, + 0.01260504202, + 0.05, + 0.01020408163, + 0.2352941176, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Peace', + '55-64', + 9, + 0.01260504202, + 0.0987654321, + 0.01020408163, + 0.4705882353, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Peace', + '65-74', + 6, + 0.01260504202, + 0.05479452055, + 0.01020408163, + 0.2352941176, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'DE', + 'Peace', + '75+', + 3, + 0.006302521008, + 0.01886792453, + 0.01020408163, + 0.1176470588, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Peace', + '15-24', + 1, + 0.01890756303, + 0.0303030303, + 0.01530612245, + 0.125, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Peace', + '25-34', + 7, + 0.02521008403, + 0.2105263158, + 0.01530612245, + 0.75, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Peace', + '35-44', + 6, + 0.01890756303, + 0.1212121212, + 0.01530612245, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Peace', + '45-54', + 6, + 0.01260504202, + 0.1, + 0.01530612245, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Peace', + '55-64', + 7, + 0.01260504202, + 0.1234567901, + 0.01530612245, + 0.625, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Peace', + '65-74', + 4, + 0.01260504202, + 0.08219178082, + 0.01530612245, + 0.375, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'DK', + 'Peace', + '75+', + 2, + 0.006302521008, + 0.01886792453, + 0.01530612245, + 0.125, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Peace', + '15-24', + 7, + 0.01890756303, + 0.1818181818, + 0.02551020408, + 0.9090909091, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Peace', + '25-34', + 8, + 0.02521008403, + 0.2105263158, + 0.02551020408, + 0.9090909091, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Peace', + '35-44', + 11, + 0.01890756303, + 0.2121212121, + 0.02551020408, + 1.060606061, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Peace', + '45-54', + 2, + 0.01260504202, + 0.05, + 0.02551020408, + 0.303030303, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Peace', + '55-64', + 3, + 0.01260504202, + 0.04938271605, + 0.02551020408, + 0.303030303, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Peace', + '65-74', + 7, + 0.01260504202, + 0.1643835616, + 0.02551020408, + 0.9090909091, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'EE', + 'Peace', + '75+', + 3, + 0.006302521008, + 0.07547169811, + 0.02551020408, + 0.6060606061, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Peace', + '15-24', + 7, + 0.01890756303, + 0.2121212121, + 0.01020408163, + 1.166666667, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Peace', + '25-34', + 0, + 0.02521008403, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Peace', + '35-44', + 2, + 0.01890756303, + 0.0303030303, + 0.01020408163, + 0.1666666667, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Peace', + '45-54', + 6, + 0.01260504202, + 0.1, + 0.01020408163, + 0.6666666667, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Peace', + '55-64', + 0, + 0.01260504202, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Peace', + '65-74', + 0, + 0.01260504202, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'EL', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Peace', + '15-24', + 4, + 0.01890756303, + 0.1515151515, + 0.01020408163, + 0.625, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Peace', + '25-34', + 3, + 0.02521008403, + 0.0701754386, + 0.01020408163, + 0.25, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Peace', + '35-44', + 2, + 0.01890756303, + 0.0303030303, + 0.01020408163, + 0.125, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Peace', + '45-54', + 0, + 0.01260504202, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Peace', + '55-64', + 4, + 0.01260504202, + 0.0987654321, + 0.01020408163, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Peace', + '65-74', + 3, + 0.01260504202, + 0.1095890411, + 0.01020408163, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'ES', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Peace', + '15-24', + 0, + 0.01890756303, + 0, + 0.005102040816, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Peace', + '25-34', + 0, + 0.02521008403, + 0, + 0.005102040816, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Peace', + '35-44', + 5, + 0.01890756303, + 0.09090909091, + 0.005102040816, + 0.3333333333, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Peace', + '45-54', + 3, + 0.01260504202, + 0.05, + 0.005102040816, + 0.2222222222, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Peace', + '55-64', + 2, + 0.01260504202, + 0.02469135802, + 0.005102040816, + 0.1111111111, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Peace', + '65-74', + 5, + 0.01260504202, + 0.08219178082, + 0.005102040816, + 0.3333333333, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'FI', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.005102040816, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Peace', + '15-24', + 5, + 0.01890756303, + 0.1212121212, + 0.01530612245, + 0.6315789474, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Peace', + '25-34', + 5, + 0.02521008403, + 0.1403508772, + 0.01530612245, + 0.6315789474, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Peace', + '35-44', + 6, + 0.01890756303, + 0.1212121212, + 0.01530612245, + 0.6315789474, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Peace', + '45-54', + 4, + 0.01260504202, + 0.075, + 0.01530612245, + 0.4736842105, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Peace', + '55-64', + 3, + 0.01260504202, + 0.04938271605, + 0.01530612245, + 0.3157894737, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Peace', + '65-74', + 1, + 0.01260504202, + 0.02739726027, + 0.01530612245, + 0.1578947368, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'FR', + 'Peace', + '75+', + 1, + 0.006302521008, + 0.01886792453, + 0.01530612245, + 0.1578947368, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Peace', + '15-24', + 5, + 0.01890756303, + 0.1212121212, + 0.01020408163, + 0.5333333333, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Peace', + '25-34', + 4, + 0.02521008403, + 0.1052631579, + 0.01020408163, + 0.4, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Peace', + '35-44', + 3, + 0.01890756303, + 0.06060606061, + 0.01020408163, + 0.2666666667, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Peace', + '45-54', + 3, + 0.01260504202, + 0.05, + 0.01020408163, + 0.2666666667, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Peace', + '55-64', + 5, + 0.01260504202, + 0.07407407407, + 0.01020408163, + 0.4, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Peace', + '65-74', + 2, + 0.01260504202, + 0.02739726027, + 0.01020408163, + 0.1333333333, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'HR', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Peace', + '15-24', + 0, + 0.01890756303, + 0, + 0.01530612245, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Peace', + '25-34', + 7, + 0.02521008403, + 0.2105263158, + 0.01530612245, + 0.7826086957, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Peace', + '35-44', + 5, + 0.01890756303, + 0.09090909091, + 0.01530612245, + 0.3913043478, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Peace', + '45-54', + 6, + 0.01260504202, + 0.1, + 0.01530612245, + 0.5217391304, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Peace', + '55-64', + 7, + 0.01260504202, + 0.1234567901, + 0.01530612245, + 0.652173913, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Peace', + '65-74', + 2, + 0.01260504202, + 0.05479452055, + 0.01530612245, + 0.2608695652, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'HU', + 'Peace', + '75+', + 2, + 0.006302521008, + 0.05660377358, + 0.01530612245, + 0.3913043478, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Peace', + '15-24', + 9, + 0.01890756303, + 0.1818181818, + 0.02040816327, + 0.8275862069, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Peace', + '25-34', + 9, + 0.02521008403, + 0.2105263158, + 0.02040816327, + 0.8275862069, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Peace', + '35-44', + 7, + 0.01890756303, + 0.09090909091, + 0.02040816327, + 0.4137931034, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Peace', + '45-54', + 9, + 0.01260504202, + 0.15, + 0.02040816327, + 0.8275862069, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Peace', + '55-64', + 6, + 0.01260504202, + 0.0987654321, + 0.02040816327, + 0.5517241379, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Peace', + '65-74', + 1, + 0.01260504202, + 0.02739726027, + 0.02040816327, + 0.1379310345, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'IE', + 'Peace', + '75+', + 2, + 0.006302521008, + 0.05660377358, + 0.02040816327, + 0.4137931034, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Peace', + '15-24', + 1, + 0.01890756303, + 0.0303030303, + 0.005102040816, + 0.1111111111, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Peace', + '25-34', + 5, + 0.02521008403, + 0.1403508772, + 0.005102040816, + 0.4444444444, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Peace', + '35-44', + 2, + 0.01890756303, + 0.0303030303, + 0.005102040816, + 0.1111111111, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Peace', + '45-54', + 3, + 0.01260504202, + 0.05, + 0.005102040816, + 0.2222222222, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Peace', + '55-64', + 1, + 0.01260504202, + 0.02469135802, + 0.005102040816, + 0.1111111111, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Peace', + '65-74', + 0, + 0.01260504202, + 0, + 0.005102040816, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'IT', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.005102040816, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Peace', + '15-24', + 2, + 0.01890756303, + 0.0303030303, + 0.01530612245, + 0.1428571429, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Peace', + '25-34', + 11, + 0.02521008403, + 0.2807017544, + 0.01530612245, + 1.142857143, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Peace', + '35-44', + 4, + 0.01890756303, + 0.09090909091, + 0.01530612245, + 0.4285714286, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Peace', + '45-54', + 1, + 0.01260504202, + 0.025, + 0.01530612245, + 0.1428571429, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Peace', + '55-64', + 1, + 0.01260504202, + 0.02469135802, + 0.01530612245, + 0.1428571429, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Peace', + '65-74', + 4, + 0.01260504202, + 0.1095890411, + 0.01530612245, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LT', + 'Peace', + '75+', + 4, + 0.006302521008, + 0.05660377358, + 0.01530612245, + 0.4285714286, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Peace', + '15-24', + 2, + 0.01890756303, + 0.09090909091, + 0.01020408163, + 0.3333333333, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Peace', + '25-34', + 2, + 0.02521008403, + 0.1052631579, + 0.01020408163, + 0.3333333333, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Peace', + '35-44', + 1, + 0.01890756303, + 0.0303030303, + 0.01020408163, + 0.1111111111, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Peace', + '45-54', + 1, + 0.01260504202, + 0.05, + 0.01020408163, + 0.2222222222, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Peace', + '55-64', + 1, + 0.01260504202, + 0.04938271605, + 0.01020408163, + 0.2222222222, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Peace', + '65-74', + 2, + 0.01260504202, + 0.1095890411, + 0.01020408163, + 0.4444444444, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'LU', + 'Peace', + '75+', + 1, + 0.006302521008, + 0.05660377358, + 0.01020408163, + 0.3333333333, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Peace', + '15-24', + 5, + 0.01890756303, + 0.1212121212, + 0.03571428571, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Peace', + '25-34', + 16, + 0.02521008403, + 0.3859649123, + 0.03571428571, + 1.375, + 11, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Peace', + '35-44', + 9, + 0.01890756303, + 0.2121212121, + 0.03571428571, + 0.875, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Peace', + '45-54', + 6, + 0.01260504202, + 0.1, + 0.03571428571, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Peace', + '55-64', + 9, + 0.01260504202, + 0.1728395062, + 0.03571428571, + 0.875, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Peace', + '65-74', + 15, + 0.01260504202, + 0.1917808219, + 0.03571428571, + 0.875, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'LV', + 'Peace', + '75+', + 2, + 0.006302521008, + 0.3018867925, + 0.03571428571, + 2, + 16, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Peace', + '15-24', + 0, + 0.01890756303, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Peace', + '25-34', + 0, + 0.02521008403, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Peace', + '35-44', + 3, + 0.01890756303, + 0.1515151515, + 0.01020408163, + 0.9090909091, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Peace', + '45-54', + 4, + 0.01260504202, + 0.125, + 0.01020408163, + 0.9090909091, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Peace', + '55-64', + 0, + 0.01260504202, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Peace', + '65-74', + 0, + 0.01260504202, + 0, + 0.01020408163, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'MT', + 'Peace', + '75+', + 0, + 0.006302521008, + 0.01886792453, + 0.01020408163, + 0.1818181818, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Peace', + '15-24', + 3, + 0.01890756303, + 0.06060606061, + 0.01530612245, + 0.3529411765, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Peace', + '25-34', + 4, + 0.02521008403, + 0.1052631579, + 0.01530612245, + 0.5294117647, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Peace', + '35-44', + 9, + 0.01890756303, + 0.1515151515, + 0.01530612245, + 0.8823529412, + 5, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Peace', + '45-54', + 3, + 0.01260504202, + 0.025, + 0.01530612245, + 0.1764705882, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Peace', + '55-64', + 7, + 0.01260504202, + 0.0987654321, + 0.01530612245, + 0.7058823529, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Peace', + '65-74', + 5, + 0.01260504202, + 0.05479452055, + 0.01530612245, + 0.3529411765, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'NL', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.01530612245, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Peace', + '15-24', + 3, + 0.01890756303, + 0.06060606061, + 0.01020408163, + 0.3076923077, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Peace', + '25-34', + 2, + 0.02521008403, + 0.0701754386, + 0.01020408163, + 0.3076923077, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Peace', + '35-44', + 5, + 0.01890756303, + 0.09090909091, + 0.01020408163, + 0.4615384615, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Peace', + '45-54', + 2, + 0.01260504202, + 0.025, + 0.01020408163, + 0.1538461538, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Peace', + '55-64', + 2, + 0.01260504202, + 0.02469135802, + 0.01020408163, + 0.1538461538, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Peace', + '65-74', + 4, + 0.01260504202, + 0.08219178082, + 0.01020408163, + 0.4615384615, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'PL', + 'Peace', + '75+', + 1, + 0.006302521008, + 0.01886792453, + 0.01020408163, + 0.1538461538, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Peace', + '15-24', + 3, + 0.01890756303, + 0.06060606061, + 0.005102040816, + 0.2, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Peace', + '25-34', + 2, + 0.02521008403, + 0.0701754386, + 0.005102040816, + 0.2, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Peace', + '35-44', + 3, + 0.01890756303, + 0.06060606061, + 0.005102040816, + 0.2, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Peace', + '45-54', + 1, + 0.01260504202, + 0, + 0.005102040816, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Peace', + '55-64', + 1, + 0.01260504202, + 0.02469135802, + 0.005102040816, + 0.1, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Peace', + '65-74', + 2, + 0.01260504202, + 0.05479452055, + 0.005102040816, + 0.2, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'PT', + 'Peace', + '75+', + 1, + 0.006302521008, + 0.01886792453, + 0.005102040816, + 0.1, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Peace', + '15-24', + 14, + 0.01890756303, + 0.3636363636, + 0.04591836735, + 1.830508475, + 12, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Peace', + '25-34', + 13, + 0.02521008403, + 0.3157894737, + 0.04591836735, + 1.372881356, + 9, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Peace', + '35-44', + 12, + 0.01890756303, + 0.2121212121, + 0.04591836735, + 1.06779661, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Peace', + '45-54', + 9, + 0.01260504202, + 0.175, + 0.04591836735, + 1.06779661, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Peace', + '55-64', + 15, + 0.01260504202, + 0.2469135802, + 0.04591836735, + 1.525423729, + 10, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Peace', + '65-74', + 15, + 0.01260504202, + 0.2739726027, + 0.04591836735, + 1.525423729, + 10, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'RO', + 'Peace', + '75+', + 2, + 0.006302521008, + 0.07547169811, + 0.04591836735, + 0.6101694915, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Peace', + '15-24', + 9, + 0.01890756303, + 0.2121212121, + 0.02551020408, + 1.029411765, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Peace', + '25-34', + 4, + 0.02521008403, + 0.0701754386, + 0.02551020408, + 0.2941176471, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Peace', + '35-44', + 8, + 0.01890756303, + 0.1818181818, + 0.02551020408, + 0.8823529412, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Peace', + '45-54', + 6, + 0.01260504202, + 0.1, + 0.02551020408, + 0.5882352941, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Peace', + '55-64', + 3, + 0.01260504202, + 0.04938271605, + 0.02551020408, + 0.2941176471, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Peace', + '65-74', + 9, + 0.01260504202, + 0.1643835616, + 0.02551020408, + 0.8823529412, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'SE', + 'Peace', + '75+', + 8, + 0.006302521008, + 0.1320754717, + 0.02551020408, + 1.029411765, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Peace', + '15-24', + 8, + 0.01890756303, + 0.2121212121, + 0.01530612245, + 0.875, + 7, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Peace', + '25-34', + 5, + 0.02521008403, + 0.1052631579, + 0.01530612245, + 0.375, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Peace', + '35-44', + 6, + 0.01890756303, + 0.1212121212, + 0.01530612245, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Peace', + '45-54', + 4, + 0.01260504202, + 0.075, + 0.01530612245, + 0.375, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Peace', + '55-64', + 5, + 0.01260504202, + 0.0987654321, + 0.01530612245, + 0.5, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Peace', + '65-74', + 2, + 0.01260504202, + 0.05479452055, + 0.01530612245, + 0.25, + 2, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'South', + 'SI', + 'Peace', + '75+', + 1, + 0.006302521008, + 0.01886792453, + 0.01530612245, + 0.125, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Peace', + '15-24', + 0, + 0.01890756303, + 0, + 0.01530612245, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Peace', + '25-34', + 5, + 0.02521008403, + 0.1052631579, + 0.01530612245, + 0.4285714286, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Peace', + '35-44', + 15, + 0.01890756303, + 0.2424242424, + 0.01530612245, + 1.142857143, + 8, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Peace', + '45-54', + 4, + 0.01260504202, + 0.075, + 0.01530612245, + 0.4285714286, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Peace', + '55-64', + 6, + 0.01260504202, + 0.0987654321, + 0.01530612245, + 0.5714285714, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Peace', + '65-74', + 4, + 0.01260504202, + 0.08219178082, + 0.01530612245, + 0.4285714286, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'East', + 'SK', + 'Peace', + '75+', + 0, + 0.006302521008, + 0, + 0.01530612245, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Peace', + '15-24', + 5, + 0.01890756303, + 0.09090909091, + 0.01530612245, + 0.45, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Peace', + '25-34', + 9, + 0.02521008403, + 0.2105263158, + 0.01530612245, + 0.9, + 6, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Peace', + '35-44', + 4, + 0.01890756303, + 0.09090909091, + 0.01530612245, + 0.45, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Peace', + '45-54', + 7, + 0.01260504202, + 0.1, + 0.01530612245, + 0.6, + 4, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Peace', + '55-64', + 0, + 0.01260504202, + 0, + 0.01530612245, + 0, + 0, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Peace', + '65-74', + 3, + 0.01260504202, + 0.08219178082, + 0.01530612245, + 0.45, + 3, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'North', + 'UK', + 'Peace', + '75+', + 1, + 0.006302521008, + 0.01886792453, + 0.01530612245, + 0.15, + 1, + 1.38520408163265, + 0.24234693877551, + 0.255102040816327 + ], + [ + 'West', + 'AT', + 'Happiness', + '15-24', + 7, + 0.01428571429, + 0.1730769231, + 0.01544401544, + 0.7741935484, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '25-34', + 8, + 0.01428571429, + 0.25, + 0.01544401544, + 0.9032258065, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '35-44', + 7, + 0.009523809524, + 0.1369863014, + 0.01544401544, + 0.6451612903, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '45-54', + 3, + 0.009523809524, + 0.05970149254, + 0.01544401544, + 0.2580645161, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '55-64', + 4, + 0.009523809524, + 0.08219178082, + 0.01544401544, + 0.3870967742, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '65-74', + 4, + 0.009523809524, + 0.09230769231, + 0.01544401544, + 0.3870967742, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'AT', + 'Happiness', + '75+', + 4, + 0.004761904762, + 0.1086956522, + 0.01544401544, + 0.6451612903, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '15-24', + 1, + 0.01428571429, + 0.02884615385, + 0.007722007722, + 0.1666666667, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '25-34', + 2, + 0.01428571429, + 0.03571428571, + 0.007722007722, + 0.1666666667, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '35-44', + 7, + 0.009523809524, + 0.1369863014, + 0.007722007722, + 0.8333333333, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '45-54', + 0, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '55-64', + 2, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '65-74', + 2, + 0.009523809524, + 0.06153846154, + 0.007722007722, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'BE', + 'Happiness', + '75+', + 1, + 0.004761904762, + 0.02173913043, + 0.007722007722, + 0.1666666667, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '15-24', + 9, + 0.01428571429, + 0.2307692308, + 0.007722007722, + 0.8888888889, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '25-34', + 0, + 0.01428571429, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '35-44', + 5, + 0.009523809524, + 0.1095890411, + 0.007722007722, + 0.4444444444, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '45-54', + 4, + 0.009523809524, + 0.08955223881, + 0.007722007722, + 0.3333333333, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '55-64', + 2, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.2222222222, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '65-74', + 2, + 0.009523809524, + 0.03076923077, + 0.007722007722, + 0.1111111111, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'BG', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '15-24', + 2, + 0.01428571429, + 0.1153846154, + 0.007722007722, + 0.8, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '25-34', + 2, + 0.01428571429, + 0.1071428571, + 0.007722007722, + 0.6, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '35-44', + 2, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.4, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '45-54', + 0, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '55-64', + 0, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '65-74', + 0, + 0.009523809524, + 0.03076923077, + 0.007722007722, + 0.2, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CY', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '15-24', + 6, + 0.01428571429, + 0.1730769231, + 0.007722007722, + 1.090909091, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '25-34', + 3, + 0.01428571429, + 0.07142857143, + 0.007722007722, + 0.3636363636, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '35-44', + 0, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '45-54', + 4, + 0.009523809524, + 0.05970149254, + 0.007722007722, + 0.3636363636, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '55-64', + 1, + 0.009523809524, + 0.02739726027, + 0.007722007722, + 0.1818181818, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '65-74', + 0, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'CZ', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '15-24', + 9, + 0.01428571429, + 0.05769230769, + 0.007722007722, + 0.2352941176, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '25-34', + 13, + 0.01428571429, + 0.07142857143, + 0.007722007722, + 0.2352941176, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '35-44', + 4, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.2352941176, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '45-54', + 6, + 0.009523809524, + 0.08955223881, + 0.007722007722, + 0.3529411765, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '55-64', + 9, + 0.009523809524, + 0.1095890411, + 0.007722007722, + 0.4705882353, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '65-74', + 4, + 0.009523809524, + 0.03076923077, + 0.007722007722, + 0.1176470588, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'DE', + 'Happiness', + '75+', + 7, + 0.004761904762, + 0.0652173913, + 0.007722007722, + 0.3529411765, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '15-24', + 5, + 0.01428571429, + 0.1153846154, + 0.02702702703, + 0.5833333333, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '25-34', + 10, + 0.01428571429, + 0.3214285714, + 0.02702702703, + 1.3125, + 9, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '35-44', + 6, + 0.009523809524, + 0.1095890411, + 0.02702702703, + 0.5833333333, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '45-54', + 14, + 0.009523809524, + 0.2388059701, + 0.02702702703, + 1.166666667, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '55-64', + 9, + 0.009523809524, + 0.1917808219, + 0.02702702703, + 1.020833333, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '65-74', + 10, + 0.009523809524, + 0.2461538462, + 0.02702702703, + 1.166666667, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'DK', + 'Happiness', + '75+', + 9, + 0.004761904762, + 0.1739130435, + 0.02702702703, + 1.166666667, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '15-24', + 8, + 0.01428571429, + 0.2019230769, + 0.01544401544, + 1.037037037, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '25-34', + 5, + 0.01428571429, + 0.1428571429, + 0.01544401544, + 0.5925925926, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '35-44', + 6, + 0.009523809524, + 0.08219178082, + 0.01544401544, + 0.4444444444, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '45-54', + 4, + 0.009523809524, + 0.08955223881, + 0.01544401544, + 0.4444444444, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '55-64', + 6, + 0.009523809524, + 0.1369863014, + 0.01544401544, + 0.7407407407, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '65-74', + 1, + 0.009523809524, + 0.03076923077, + 0.01544401544, + 0.1481481481, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'EE', + 'Happiness', + '75+', + 3, + 0.004761904762, + 0.08695652174, + 0.01544401544, + 0.5925925926, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '15-24', + 1, + 0.01428571429, + 0.02884615385, + 0, + 0, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '25-34', + 0, + 0.01428571429, + 0, + 0, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '35-44', + 2, + 0.009523809524, + 0.02739726027, + 0, + 0, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '45-54', + 2, + 0.009523809524, + 0.02985074627, + 0, + 0, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '55-64', + 0, + 0.009523809524, + 0, + 0, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '65-74', + 1, + 0.009523809524, + 0.03076923077, + 0, + 0, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'EL', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '15-24', + 1, + 0.01428571429, + 0.02884615385, + 0.003861003861, + 0.2, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '25-34', + 1, + 0.01428571429, + 0.03571428571, + 0.003861003861, + 0.2, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '35-44', + 1, + 0.009523809524, + 0.02739726027, + 0.003861003861, + 0.2, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '45-54', + 2, + 0.009523809524, + 0.02985074627, + 0.003861003861, + 0.2, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '55-64', + 1, + 0.009523809524, + 0.02739726027, + 0.003861003861, + 0.2, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '65-74', + 0, + 0.009523809524, + 0, + 0.003861003861, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'ES', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.003861003861, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '15-24', + 2, + 0.01428571429, + 0.02884615385, + 0.01544401544, + 0.16, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '25-34', + 7, + 0.01428571429, + 0.2142857143, + 0.01544401544, + 0.96, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '35-44', + 3, + 0.009523809524, + 0.05479452055, + 0.01544401544, + 0.32, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '45-54', + 6, + 0.009523809524, + 0.1194029851, + 0.01544401544, + 0.64, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '55-64', + 7, + 0.009523809524, + 0.1369863014, + 0.01544401544, + 0.8, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '65-74', + 7, + 0.009523809524, + 0.1538461538, + 0.01544401544, + 0.8, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'FI', + 'Happiness', + '75+', + 2, + 0.004761904762, + 0.04347826087, + 0.01544401544, + 0.32, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '15-24', + 2, + 0.01428571429, + 0.05769230769, + 0.007722007722, + 0.2857142857, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '25-34', + 3, + 0.01428571429, + 0.1071428571, + 0.007722007722, + 0.4285714286, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '35-44', + 1, + 0.009523809524, + 0.02739726027, + 0.007722007722, + 0.1428571429, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '45-54', + 5, + 0.009523809524, + 0.08955223881, + 0.007722007722, + 0.4285714286, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '55-64', + 1, + 0.009523809524, + 0.02739726027, + 0.007722007722, + 0.1428571429, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '65-74', + 4, + 0.009523809524, + 0.09230769231, + 0.007722007722, + 0.4285714286, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'FR', + 'Happiness', + '75+', + 1, + 0.004761904762, + 0.02173913043, + 0.007722007722, + 0.1428571429, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '15-24', + 4, + 0.01428571429, + 0.08653846154, + 0.007722007722, + 0.4615384615, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '25-34', + 3, + 0.01428571429, + 0.07142857143, + 0.007722007722, + 0.3076923077, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '35-44', + 4, + 0.009523809524, + 0.08219178082, + 0.007722007722, + 0.4615384615, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '45-54', + 5, + 0.009523809524, + 0.08955223881, + 0.007722007722, + 0.4615384615, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '55-64', + 3, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.3076923077, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '65-74', + 0, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'HR', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '15-24', + 2, + 0.01428571429, + 0.02884615385, + 0.007722007722, + 0.2, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '25-34', + 0, + 0.01428571429, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '35-44', + 3, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.4, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '45-54', + 2, + 0.009523809524, + 0.05970149254, + 0.007722007722, + 0.4, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '55-64', + 4, + 0.009523809524, + 0.08219178082, + 0.007722007722, + 0.6, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '65-74', + 1, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'HU', + 'Happiness', + '75+', + 2, + 0.004761904762, + 0.04347826087, + 0.007722007722, + 0.4, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '15-24', + 0, + 0.01428571429, + 0, + 0.01930501931, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '25-34', + 8, + 0.01428571429, + 0.2142857143, + 0.01930501931, + 0.8108108108, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '35-44', + 18, + 0.009523809524, + 0.2191780822, + 0.01930501931, + 1.081081081, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '45-54', + 6, + 0.009523809524, + 0.08955223881, + 0.01930501931, + 0.4054054054, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '55-64', + 7, + 0.009523809524, + 0.1643835616, + 0.01930501931, + 0.8108108108, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '65-74', + 7, + 0.009523809524, + 0.1846153846, + 0.01930501931, + 0.8108108108, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'IE', + 'Happiness', + '75+', + 5, + 0.004761904762, + 0.1739130435, + 0.01930501931, + 1.081081081, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '15-24', + 3, + 0.01428571429, + 0.08653846154, + 0.007722007722, + 0.5454545455, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '25-34', + 3, + 0.01428571429, + 0.07142857143, + 0.007722007722, + 0.3636363636, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '35-44', + 4, + 0.009523809524, + 0.08219178082, + 0.007722007722, + 0.5454545455, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '45-54', + 6, + 0.009523809524, + 0.08955223881, + 0.007722007722, + 0.5454545455, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '55-64', + 0, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '65-74', + 1, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'IT', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '15-24', + 3, + 0.01428571429, + 0.05769230769, + 0.007722007722, + 0.2222222222, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '25-34', + 9, + 0.01428571429, + 0.25, + 0.007722007722, + 0.7777777778, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '35-44', + 3, + 0.009523809524, + 0.08219178082, + 0.007722007722, + 0.3333333333, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '45-54', + 5, + 0.009523809524, + 0.08955223881, + 0.007722007722, + 0.3333333333, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '55-64', + 1, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '65-74', + 1, + 0.009523809524, + 0.03076923077, + 0.007722007722, + 0.1111111111, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LT', + 'Happiness', + '75+', + 2, + 0.004761904762, + 0.04347826087, + 0.007722007722, + 0.2222222222, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '15-24', + 0, + 0.01428571429, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '25-34', + 3, + 0.01428571429, + 0.1428571429, + 0.007722007722, + 0.6666666667, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '35-44', + 2, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '45-54', + 2, + 0.009523809524, + 0.05970149254, + 0.007722007722, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '55-64', + 1, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '65-74', + 1, + 0.009523809524, + 0.06153846154, + 0.007722007722, + 0.3333333333, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'LU', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '15-24', + 8, + 0.01428571429, + 0.2019230769, + 0.01544401544, + 1.12, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '25-34', + 4, + 0.01428571429, + 0.1071428571, + 0.01544401544, + 0.48, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '35-44', + 3, + 0.009523809524, + 0.05479452055, + 0.01544401544, + 0.32, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '45-54', + 4, + 0.009523809524, + 0.08955223881, + 0.01544401544, + 0.48, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '55-64', + 5, + 0.009523809524, + 0.1095890411, + 0.01544401544, + 0.64, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '65-74', + 13, + 0.009523809524, + 0.1846153846, + 0.01544401544, + 0.96, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'LV', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.01544401544, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '15-24', + 2, + 0.01428571429, + 0.08653846154, + 0.01158301158, + 0.36, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '25-34', + 2, + 0.01428571429, + 0.1071428571, + 0.01158301158, + 0.36, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '35-44', + 0, + 0.009523809524, + 0, + 0.01158301158, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '45-54', + 3, + 0.009523809524, + 0.1492537313, + 0.01158301158, + 0.6, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '55-64', + 4, + 0.009523809524, + 0.1917808219, + 0.01158301158, + 0.84, + 7, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '65-74', + 0, + 0.009523809524, + 0.03076923077, + 0.01158301158, + 0.12, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'MT', + 'Happiness', + '75+', + 2, + 0.004761904762, + 0.1304347826, + 0.01158301158, + 0.72, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '15-24', + 6, + 0.01428571429, + 0.1442307692, + 0.01158301158, + 0.9375, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '25-34', + 3, + 0.01428571429, + 0.07142857143, + 0.01158301158, + 0.375, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '35-44', + 1, + 0.009523809524, + 0.02739726027, + 0.01158301158, + 0.1875, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '45-54', + 4, + 0.009523809524, + 0.05970149254, + 0.01158301158, + 0.375, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '55-64', + 5, + 0.009523809524, + 0.08219178082, + 0.01158301158, + 0.5625, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '65-74', + 7, + 0.009523809524, + 0.09230769231, + 0.01158301158, + 0.5625, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'West', + 'NL', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.01158301158, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '15-24', + 7, + 0.01428571429, + 0.1730769231, + 0.01158301158, + 0.8571428571, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '25-34', + 5, + 0.01428571429, + 0.1071428571, + 0.01158301158, + 0.4285714286, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '35-44', + 6, + 0.009523809524, + 0.08219178082, + 0.01158301158, + 0.4285714286, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '45-54', + 2, + 0.009523809524, + 0.05970149254, + 0.01158301158, + 0.2857142857, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '55-64', + 5, + 0.009523809524, + 0.1095890411, + 0.01158301158, + 0.5714285714, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '65-74', + 3, + 0.009523809524, + 0.06153846154, + 0.01158301158, + 0.2857142857, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'PL', + 'Happiness', + '75+', + 1, + 0.004761904762, + 0.02173913043, + 0.01158301158, + 0.1428571429, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '15-24', + 4, + 0.01428571429, + 0.1153846154, + 0.003861003861, + 0.4444444444, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '25-34', + 1, + 0.01428571429, + 0.03571428571, + 0.003861003861, + 0.1111111111, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '35-44', + 4, + 0.009523809524, + 0.08219178082, + 0.003861003861, + 0.3333333333, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '45-54', + 0, + 0.009523809524, + 0, + 0.003861003861, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '55-64', + 0, + 0.009523809524, + 0, + 0.003861003861, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '65-74', + 1, + 0.009523809524, + 0.03076923077, + 0.003861003861, + 0.1111111111, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'PT', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.003861003861, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '15-24', + 10, + 0.01428571429, + 0.2307692308, + 0.01544401544, + 1.230769231, + 8, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '25-34', + 7, + 0.01428571429, + 0.1428571429, + 0.01544401544, + 0.6153846154, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '35-44', + 9, + 0.009523809524, + 0.1369863014, + 0.01544401544, + 0.7692307692, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '45-54', + 3, + 0.009523809524, + 0.05970149254, + 0.01544401544, + 0.3076923077, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '55-64', + 3, + 0.009523809524, + 0.05479452055, + 0.01544401544, + 0.3076923077, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '65-74', + 7, + 0.009523809524, + 0.1538461538, + 0.01544401544, + 0.7692307692, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'RO', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.01544401544, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '15-24', + 3, + 0.01428571429, + 0.08653846154, + 0.003861003861, + 0.3, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '25-34', + 0, + 0.01428571429, + 0, + 0.003861003861, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '35-44', + 2, + 0.009523809524, + 0.05479452055, + 0.003861003861, + 0.2, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '45-54', + 2, + 0.009523809524, + 0.02985074627, + 0.003861003861, + 0.1, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '55-64', + 2, + 0.009523809524, + 0.05479452055, + 0.003861003861, + 0.2, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '65-74', + 2, + 0.009523809524, + 0.03076923077, + 0.003861003861, + 0.1, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'SE', + 'Happiness', + '75+', + 1, + 0.004761904762, + 0.02173913043, + 0.003861003861, + 0.1, + 1, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '15-24', + 11, + 0.01428571429, + 0.2884615385, + 0.01158301158, + 1.363636364, + 10, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '25-34', + 2, + 0.01428571429, + 0.07142857143, + 0.01158301158, + 0.2727272727, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '35-44', + 3, + 0.009523809524, + 0.05479452055, + 0.01158301158, + 0.2727272727, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '45-54', + 4, + 0.009523809524, + 0.08955223881, + 0.01158301158, + 0.4090909091, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '55-64', + 3, + 0.009523809524, + 0.05479452055, + 0.01158301158, + 0.2727272727, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '65-74', + 5, + 0.009523809524, + 0.09230769231, + 0.01158301158, + 0.4090909091, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'South', + 'SI', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.01158301158, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '15-24', + 2, + 0.01428571429, + 0.05769230769, + 0.007722007722, + 0.4, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '25-34', + 4, + 0.01428571429, + 0.07142857143, + 0.007722007722, + 0.4, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '35-44', + 4, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.4, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '45-54', + 0, + 0.009523809524, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '55-64', + 2, + 0.009523809524, + 0.05479452055, + 0.007722007722, + 0.4, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '65-74', + 2, + 0.009523809524, + 0.06153846154, + 0.007722007722, + 0.4, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'East', + 'SK', + 'Happiness', + '75+', + 0, + 0.004761904762, + 0, + 0.007722007722, + 0, + 0, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '15-24', + 7, + 0.01428571429, + 0.1153846154, + 0.01158301158, + 0.48, + 4, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '25-34', + 7, + 0.01428571429, + 0.1785714286, + 0.01158301158, + 0.6, + 5, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '35-44', + 3, + 0.009523809524, + 0.05479452055, + 0.01158301158, + 0.24, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '45-54', + 4, + 0.009523809524, + 0.08955223881, + 0.01158301158, + 0.36, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '55-64', + 4, + 0.009523809524, + 0.08219178082, + 0.01158301158, + 0.36, + 3, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '65-74', + 5, + 0.009523809524, + 0.1846153846, + 0.01158301158, + 0.72, + 6, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ], + [ + 'North', + 'UK', + 'Happiness', + '75+', + 2, + 0.004761904762, + 0.04347826087, + 0.01158301158, + 0.24, + 2, + 0.578231292517007, + 0.16156462585034, + 0.170068027210884 + ] + ] } diff --git a/test/integration/test_data/music_data.mjs b/test/integration/test_data/music_data.mjs index 7eaa5bccf..2e7facc1a 100644 --- a/test/integration/test_data/music_data.mjs +++ b/test/integration/test_data/music_data.mjs @@ -1,47 +1,47 @@ const data = { - series: [ - { - name: 'Genres', - type: 'dimension', - values: [ - 'Pop', - 'Rock', - 'Jazz', - 'Metal', - 'Pop', - 'Rock', - 'Jazz', - 'Metal', - 'Pop', - 'Rock', - 'Jazz', - 'Metal' - ] - }, - { - name: 'Kinds', - type: 'dimension', - values: [ - 'Hard', - 'Hard', - 'Hard', - 'Hard', - 'Smooth', - 'Experimental', - 'Smooth', - 'Smooth', - 'Experimental', - 'Experimental', - 'Experimental', - 'Experimental' - ] - }, - { - name: 'Popularity', - type: 'measure', - values: [114, 96, 78, 52, 56, 36, 174, 121, 127, 83, 94, 58] - } - ] + series: [ + { + name: 'Genres', + type: 'dimension', + values: [ + 'Pop', + 'Rock', + 'Jazz', + 'Metal', + 'Pop', + 'Rock', + 'Jazz', + 'Metal', + 'Pop', + 'Rock', + 'Jazz', + 'Metal' + ] + }, + { + name: 'Kinds', + type: 'dimension', + values: [ + 'Hard', + 'Hard', + 'Hard', + 'Hard', + 'Smooth', + 'Experimental', + 'Smooth', + 'Smooth', + 'Experimental', + 'Experimental', + 'Experimental', + 'Experimental' + ] + }, + { + name: 'Popularity', + type: 'measure', + values: [114, 96, 78, 52, 56, 36, 174, 121, 127, 83, 94, 58] + } + ] } export default data diff --git a/test/integration/test_data/music_industry_history_1.mjs b/test/integration/test_data/music_industry_history_1.mjs index 517f56db4..542238bbb 100644 --- a/test/integration/test_data/music_industry_history_1.mjs +++ b/test/integration/test_data/music_industry_history_1.mjs @@ -1,237 +1,237 @@ export const data = { - series: [ - { name: 'Year', type: 'dimension' }, - { name: 'Format', type: 'dimension' }, - { name: 'Revenue', unit: '$', type: 'measure' } - ], - records: [ - ['1972', 'Tapes', '0000000'], - ['1972', 'Vinyl', '0000000'], - ['1972', 'Cassette', '0000000'], - ['1972', 'CD', '0000000'], - ['1972', 'DVD', '0000000'], - ['1972', 'Other', '0000000'], - ['1972', 'Download', '0000000'], - ['1972', 'Streaming', '0000000'], - ['1973', 'Cassette', '443000000'], - ['1973', 'Tapes', '2941000000'], - ['1973', 'Vinyl', '8371000000'], - ['1974', 'Cassette', '458000000'], - ['1974', 'Tapes', '2953000000'], - ['1974', 'Vinyl', '8137000000'], - ['1975', 'Cassette', '475000000'], - ['1975', 'Tapes', '2854000000'], - ['1975', 'Vinyl', '8161000000'], - ['1976', 'Cassette', '663000000'], - ['1976', 'Tapes', '3108000000'], - ['1976', 'Vinyl', '8679000000'], - ['1977', 'Cassette', '1066000000'], - ['1977', 'Tapes', '3464000000'], - ['1977', 'Vinyl', '10422000000'], - ['1978', 'Cassette', '1785000000'], - ['1978', 'Tapes', '3763000000'], - ['1978', 'Vinyl', '10851000000'], - ['1979', 'Cassette', '2070000000'], - ['1979', 'Tapes', '2439000000'], - ['1979', 'Vinyl', '8594000000'], - ['1980', 'Cassette', '2214000000'], - ['1980', 'Tapes', '1655000000'], - ['1980', 'Vinyl', '7695000000'], - ['1981', 'Cassette', '3026000000'], - ['1981', 'Tapes', '891000000'], - ['1981', 'Vinyl', '7397000000'], - ['1982', 'Cassette', '3713000000'], - ['1982', 'Tapes', '97000000'], - ['1982', 'Vinyl', '5922000000'], - ['1983', 'Cassette', '4706000000'], - ['1983', 'CD', '45000000'], - ['1983', 'Vinyl', '5089000000'], - ['1984', 'Cassette', '5938000000'], - ['1984', 'CD', '257000000'], - ['1984', 'Vinyl', '4602000000'], - ['1985', 'Cassette', '5800000000'], - ['1985', 'CD', '937000000'], - ['1985', 'Vinyl', '3756000000'], - ['1986', 'Cassette', '5902000000'], - ['1986', 'CD', '2196000000'], - ['1986', 'Vinyl', '2860000000'], - ['1987', 'Cassette', '6776000000'], - ['1987', 'CD', '3631000000'], - ['1987', 'Vinyl', '2270000000'], - ['1988', 'Cassette', '7531000000'], - ['1988', 'CD', '4594000000'], - ['1988', 'Vinyl', '1559000000'], - ['1989', 'Cassette', '7389000000'], - ['1989', 'CD', '5401000000'], - ['1989', 'Other', '241000000'], - ['1989', 'Vinyl', '703000000'], - ['1990', 'Cassette', '7387000000'], - ['1990', 'CD', '6847000000'], - ['1990', 'Other', '341000000'], - ['1990', 'Vinyl', '358000000'], - ['1991', 'Cassette', '6176000000'], - ['1991', 'CD', '8309000000'], - ['1991', 'Other', '224000000'], - ['1991', 'Vinyl', '177000000'], - ['1992', 'Cassette', '6300000000'], - ['1992', 'CD', '9909000000'], - ['1992', 'Other', '290000000'], - ['1992', 'Vinyl', '147000000'], - ['1993', 'Cassette', '5757000000'], - ['1993', 'CD', '11744000000'], - ['1993', 'Other', '382000000'], - ['1993', 'Vinyl', '111000000'], - ['1994', 'Cassette', '5678000000'], - ['1994', 'CD', '14880000000'], - ['1994', 'Other', '404000000'], - ['1994', 'Vinyl', '114000000'], - ['1995', 'Cassette', '4313000000'], - ['1995', 'CD', '16113000000'], - ['1995', 'Other', '374000000'], - ['1995', 'Vinyl', '122000000'], - ['1996', 'Cassette', '3455000000'], - ['1996', 'CD', '16691000000'], - ['1996', 'Other', '389000000'], - ['1996', 'Vinyl', '139000000'], - ['1997', 'Cassette', '2671000000'], - ['1997', 'CD', '16428000000'], - ['1997', 'Other', '522000000'], - ['1997', 'Vinyl', '111000000'], - ['1998', 'Cassette', '2404000000'], - ['1998', 'CD', '18465000000'], - ['1998', 'Other', '807000000'], - ['1998', 'Vinyl', '95000000'], - ['1999', 'Cassette', '1724000000'], - ['1999', 'CD', '20255000000'], - ['1999', 'Other', '585000000'], - ['1999', 'Vinyl', '93000000'], - ['2000', 'Cassette', '948000000'], - ['2000', 'CD', '20075000000'], - ['2000', 'Other', '424000000'], - ['2000', 'Vinyl', '81000000'], - ['2001', 'Cassette', '531000000'], - ['2001', 'CD', '18982000000'], - ['2001', 'DVD', '9000000'], - ['2001', 'Other', '481000000'], - ['2001', 'Vinyl', '86000000'], - ['2002', 'Cassette', '302000000'], - ['2002', 'CD', '17355000000'], - ['2002', 'DVD', '12000000'], - ['2002', 'Other', '415000000'], - ['2002', 'Vinyl', '65000000'], - ['2003', 'Cassette', '152000000'], - ['2003', 'CD', '15888000000'], - ['2003', 'DVD', '11000000'], - ['2003', 'Other', '562000000'], - ['2003', 'Vinyl', '61000000'], - ['2004', 'Cassette', '32000000'], - ['2004', 'CD', '15726000000'], - ['2004', 'Download', '251000000'], - ['2004', 'DVD', '9000000'], - ['2004', 'Other', '832000000'], - ['2004', 'Streaming', '9000000'], - ['2004', 'Vinyl', '54000000'], - ['2005', 'Cassette', '17000000'], - ['2005', 'CD', '13969000000'], - ['2005', 'Download', '666000000'], - ['2005', 'DVD', '15000000'], - ['2005', 'Other', '1358000000'], - ['2005', 'Streaming', '225000000'], - ['2005', 'Vinyl', '36000000'], - ['2006', 'Cassette', '5000000'], - ['2006', 'CD', '12049000000'], - ['2006', 'Download', '1125000000'], - ['2006', 'DVD', '3000000'], - ['2006', 'Other', '1575000000'], - ['2006', 'Streaming', '307000000'], - ['2006', 'Vinyl', '33000000'], - ['2007', 'Cassette', '4000000'], - ['2007', 'CD', '9324000000'], - ['2007', 'Download', '1669000000'], - ['2007', 'DVD', '3000000'], - ['2007', 'Other', '1927000000'], - ['2007', 'Streaming', '337000000'], - ['2007', 'Vinyl', '34000000'], - ['2008', 'Cassette', '1000000'], - ['2008', 'CD', '6585000000'], - ['2008', 'Download', '2054000000'], - ['2008', 'DVD', '1000000'], - ['2008', 'Other', '1451000000'], - ['2008', 'Streaming', '386000000'], - ['2008', 'Vinyl', '72000000'], - ['2009', 'CD', '5217000000'], - ['2009', 'Download', '2361000000'], - ['2009', 'DVD', '2000000'], - ['2009', 'Other', '1351000000'], - ['2009', 'Streaming', '436000000'], - ['2009', 'Vinyl', '80000000'], - ['2010', 'CD', '4028000000'], - ['2010', 'Download', '2665000000'], - ['2010', 'DVD', '1000000'], - ['2010', 'Other', '974000000'], - ['2010', 'Streaming', '548000000'], - ['2010', 'Vinyl', '108000000'], - ['2011', 'CD', '3573000000'], - ['2011', 'Download', '3021000000'], - ['2011', 'Other', '721000000'], - ['2011', 'Streaming', '752000000'], - ['2011', 'Vinyl', '143000000'], - ['2012', 'CD', '2807000000'], - ['2012', 'Download', '3235000000'], - ['2012', 'Other', '515000000'], - ['2012', 'Streaming', '1164000000'], - ['2012', 'Vinyl', '187000000'], - ['2013', 'CD', '2382000000'], - ['2013', 'Download', '3136000000'], - ['2013', 'Other', '445000000'], - ['2013', 'Streaming', '1616000000'], - ['2013', 'Vinyl', '237000000'], - ['2014', 'CD', '1947000000'], - ['2014', 'Download', '2719000000'], - ['2014', 'DVD', '2000000'], - ['2014', 'Other', '381000000'], - ['2014', 'Streaming', '1998000000'], - ['2014', 'Vinyl', '273000000'], - ['2015', 'CD', '1580000000'], - ['2015', 'Download', '2464000000'], - ['2015', 'DVD', '6000000'], - ['2015', 'Other', '362000000'], - ['2015', 'Streaming', '2546000000'], - ['2015', 'Vinyl', '370000000'], - ['2016', 'CD', '1221000000'], - ['2016', 'Download', '1930000000'], - ['2016', 'DVD', '3000000'], - ['2016', 'Other', '357000000'], - ['2016', 'Streaming', '4179000000'], - ['2016', 'Vinyl', '389000000'], - ['2017', 'CD', '1103000000'], - ['2017', 'Download', '1412000000'], - ['2017', 'Other', '325000000'], - ['2017', 'Streaming', '5721000000'], - ['2017', 'Vinyl', '417000000'], - ['2018', 'CD', '718000000'], - ['2018', 'Download', '1038000000'], - ['2018', 'Other', '351000000'], - ['2018', 'Streaming', '7491000000'], - ['2018', 'Vinyl', '438000000'], - ['2019', 'CD', '639000000'], - ['2019', 'Download', '810000000'], - ['2019', 'DVD', '1000000'], - ['2019', 'Other', '333000000'], - ['2019', 'Streaming', '8992000000'], - ['2019', 'Vinyl', '492000000'], - ['2020', 'CD', '484000000'], - ['2020', 'Download', '653000000'], - ['2020', 'DVD', '2000000'], - ['2020', 'Other', '314000000'], - ['2020', 'Streaming', '10075000000'], - ['2020', 'Vinyl', '626000000'] - ] + series: [ + { name: 'Year', type: 'dimension' }, + { name: 'Format', type: 'dimension' }, + { name: 'Revenue', unit: '$', type: 'measure' } + ], + records: [ + ['1972', 'Tapes', '0000000'], + ['1972', 'Vinyl', '0000000'], + ['1972', 'Cassette', '0000000'], + ['1972', 'CD', '0000000'], + ['1972', 'DVD', '0000000'], + ['1972', 'Other', '0000000'], + ['1972', 'Download', '0000000'], + ['1972', 'Streaming', '0000000'], + ['1973', 'Cassette', '443000000'], + ['1973', 'Tapes', '2941000000'], + ['1973', 'Vinyl', '8371000000'], + ['1974', 'Cassette', '458000000'], + ['1974', 'Tapes', '2953000000'], + ['1974', 'Vinyl', '8137000000'], + ['1975', 'Cassette', '475000000'], + ['1975', 'Tapes', '2854000000'], + ['1975', 'Vinyl', '8161000000'], + ['1976', 'Cassette', '663000000'], + ['1976', 'Tapes', '3108000000'], + ['1976', 'Vinyl', '8679000000'], + ['1977', 'Cassette', '1066000000'], + ['1977', 'Tapes', '3464000000'], + ['1977', 'Vinyl', '10422000000'], + ['1978', 'Cassette', '1785000000'], + ['1978', 'Tapes', '3763000000'], + ['1978', 'Vinyl', '10851000000'], + ['1979', 'Cassette', '2070000000'], + ['1979', 'Tapes', '2439000000'], + ['1979', 'Vinyl', '8594000000'], + ['1980', 'Cassette', '2214000000'], + ['1980', 'Tapes', '1655000000'], + ['1980', 'Vinyl', '7695000000'], + ['1981', 'Cassette', '3026000000'], + ['1981', 'Tapes', '891000000'], + ['1981', 'Vinyl', '7397000000'], + ['1982', 'Cassette', '3713000000'], + ['1982', 'Tapes', '97000000'], + ['1982', 'Vinyl', '5922000000'], + ['1983', 'Cassette', '4706000000'], + ['1983', 'CD', '45000000'], + ['1983', 'Vinyl', '5089000000'], + ['1984', 'Cassette', '5938000000'], + ['1984', 'CD', '257000000'], + ['1984', 'Vinyl', '4602000000'], + ['1985', 'Cassette', '5800000000'], + ['1985', 'CD', '937000000'], + ['1985', 'Vinyl', '3756000000'], + ['1986', 'Cassette', '5902000000'], + ['1986', 'CD', '2196000000'], + ['1986', 'Vinyl', '2860000000'], + ['1987', 'Cassette', '6776000000'], + ['1987', 'CD', '3631000000'], + ['1987', 'Vinyl', '2270000000'], + ['1988', 'Cassette', '7531000000'], + ['1988', 'CD', '4594000000'], + ['1988', 'Vinyl', '1559000000'], + ['1989', 'Cassette', '7389000000'], + ['1989', 'CD', '5401000000'], + ['1989', 'Other', '241000000'], + ['1989', 'Vinyl', '703000000'], + ['1990', 'Cassette', '7387000000'], + ['1990', 'CD', '6847000000'], + ['1990', 'Other', '341000000'], + ['1990', 'Vinyl', '358000000'], + ['1991', 'Cassette', '6176000000'], + ['1991', 'CD', '8309000000'], + ['1991', 'Other', '224000000'], + ['1991', 'Vinyl', '177000000'], + ['1992', 'Cassette', '6300000000'], + ['1992', 'CD', '9909000000'], + ['1992', 'Other', '290000000'], + ['1992', 'Vinyl', '147000000'], + ['1993', 'Cassette', '5757000000'], + ['1993', 'CD', '11744000000'], + ['1993', 'Other', '382000000'], + ['1993', 'Vinyl', '111000000'], + ['1994', 'Cassette', '5678000000'], + ['1994', 'CD', '14880000000'], + ['1994', 'Other', '404000000'], + ['1994', 'Vinyl', '114000000'], + ['1995', 'Cassette', '4313000000'], + ['1995', 'CD', '16113000000'], + ['1995', 'Other', '374000000'], + ['1995', 'Vinyl', '122000000'], + ['1996', 'Cassette', '3455000000'], + ['1996', 'CD', '16691000000'], + ['1996', 'Other', '389000000'], + ['1996', 'Vinyl', '139000000'], + ['1997', 'Cassette', '2671000000'], + ['1997', 'CD', '16428000000'], + ['1997', 'Other', '522000000'], + ['1997', 'Vinyl', '111000000'], + ['1998', 'Cassette', '2404000000'], + ['1998', 'CD', '18465000000'], + ['1998', 'Other', '807000000'], + ['1998', 'Vinyl', '95000000'], + ['1999', 'Cassette', '1724000000'], + ['1999', 'CD', '20255000000'], + ['1999', 'Other', '585000000'], + ['1999', 'Vinyl', '93000000'], + ['2000', 'Cassette', '948000000'], + ['2000', 'CD', '20075000000'], + ['2000', 'Other', '424000000'], + ['2000', 'Vinyl', '81000000'], + ['2001', 'Cassette', '531000000'], + ['2001', 'CD', '18982000000'], + ['2001', 'DVD', '9000000'], + ['2001', 'Other', '481000000'], + ['2001', 'Vinyl', '86000000'], + ['2002', 'Cassette', '302000000'], + ['2002', 'CD', '17355000000'], + ['2002', 'DVD', '12000000'], + ['2002', 'Other', '415000000'], + ['2002', 'Vinyl', '65000000'], + ['2003', 'Cassette', '152000000'], + ['2003', 'CD', '15888000000'], + ['2003', 'DVD', '11000000'], + ['2003', 'Other', '562000000'], + ['2003', 'Vinyl', '61000000'], + ['2004', 'Cassette', '32000000'], + ['2004', 'CD', '15726000000'], + ['2004', 'Download', '251000000'], + ['2004', 'DVD', '9000000'], + ['2004', 'Other', '832000000'], + ['2004', 'Streaming', '9000000'], + ['2004', 'Vinyl', '54000000'], + ['2005', 'Cassette', '17000000'], + ['2005', 'CD', '13969000000'], + ['2005', 'Download', '666000000'], + ['2005', 'DVD', '15000000'], + ['2005', 'Other', '1358000000'], + ['2005', 'Streaming', '225000000'], + ['2005', 'Vinyl', '36000000'], + ['2006', 'Cassette', '5000000'], + ['2006', 'CD', '12049000000'], + ['2006', 'Download', '1125000000'], + ['2006', 'DVD', '3000000'], + ['2006', 'Other', '1575000000'], + ['2006', 'Streaming', '307000000'], + ['2006', 'Vinyl', '33000000'], + ['2007', 'Cassette', '4000000'], + ['2007', 'CD', '9324000000'], + ['2007', 'Download', '1669000000'], + ['2007', 'DVD', '3000000'], + ['2007', 'Other', '1927000000'], + ['2007', 'Streaming', '337000000'], + ['2007', 'Vinyl', '34000000'], + ['2008', 'Cassette', '1000000'], + ['2008', 'CD', '6585000000'], + ['2008', 'Download', '2054000000'], + ['2008', 'DVD', '1000000'], + ['2008', 'Other', '1451000000'], + ['2008', 'Streaming', '386000000'], + ['2008', 'Vinyl', '72000000'], + ['2009', 'CD', '5217000000'], + ['2009', 'Download', '2361000000'], + ['2009', 'DVD', '2000000'], + ['2009', 'Other', '1351000000'], + ['2009', 'Streaming', '436000000'], + ['2009', 'Vinyl', '80000000'], + ['2010', 'CD', '4028000000'], + ['2010', 'Download', '2665000000'], + ['2010', 'DVD', '1000000'], + ['2010', 'Other', '974000000'], + ['2010', 'Streaming', '548000000'], + ['2010', 'Vinyl', '108000000'], + ['2011', 'CD', '3573000000'], + ['2011', 'Download', '3021000000'], + ['2011', 'Other', '721000000'], + ['2011', 'Streaming', '752000000'], + ['2011', 'Vinyl', '143000000'], + ['2012', 'CD', '2807000000'], + ['2012', 'Download', '3235000000'], + ['2012', 'Other', '515000000'], + ['2012', 'Streaming', '1164000000'], + ['2012', 'Vinyl', '187000000'], + ['2013', 'CD', '2382000000'], + ['2013', 'Download', '3136000000'], + ['2013', 'Other', '445000000'], + ['2013', 'Streaming', '1616000000'], + ['2013', 'Vinyl', '237000000'], + ['2014', 'CD', '1947000000'], + ['2014', 'Download', '2719000000'], + ['2014', 'DVD', '2000000'], + ['2014', 'Other', '381000000'], + ['2014', 'Streaming', '1998000000'], + ['2014', 'Vinyl', '273000000'], + ['2015', 'CD', '1580000000'], + ['2015', 'Download', '2464000000'], + ['2015', 'DVD', '6000000'], + ['2015', 'Other', '362000000'], + ['2015', 'Streaming', '2546000000'], + ['2015', 'Vinyl', '370000000'], + ['2016', 'CD', '1221000000'], + ['2016', 'Download', '1930000000'], + ['2016', 'DVD', '3000000'], + ['2016', 'Other', '357000000'], + ['2016', 'Streaming', '4179000000'], + ['2016', 'Vinyl', '389000000'], + ['2017', 'CD', '1103000000'], + ['2017', 'Download', '1412000000'], + ['2017', 'Other', '325000000'], + ['2017', 'Streaming', '5721000000'], + ['2017', 'Vinyl', '417000000'], + ['2018', 'CD', '718000000'], + ['2018', 'Download', '1038000000'], + ['2018', 'Other', '351000000'], + ['2018', 'Streaming', '7491000000'], + ['2018', 'Vinyl', '438000000'], + ['2019', 'CD', '639000000'], + ['2019', 'Download', '810000000'], + ['2019', 'DVD', '1000000'], + ['2019', 'Other', '333000000'], + ['2019', 'Streaming', '8992000000'], + ['2019', 'Vinyl', '492000000'], + ['2020', 'CD', '484000000'], + ['2020', 'Download', '653000000'], + ['2020', 'DVD', '2000000'], + ['2020', 'Other', '314000000'], + ['2020', 'Streaming', '10075000000'], + ['2020', 'Vinyl', '626000000'] + ] } export const data_3 = { - series: data.series, - records: data.records, - filter: (record) => - record.Format === 'Streaming' || record.Format === 'Cassette' || record.Format === 'Vinyl' + series: data.series, + records: data.records, + filter: (record) => + record.Format === 'Streaming' || record.Format === 'Cassette' || record.Format === 'Vinyl' } diff --git a/test/integration/test_data/sunburst.mjs b/test/integration/test_data/sunburst.mjs index dbbaf3f10..68deedafa 100755 --- a/test/integration/test_data/sunburst.mjs +++ b/test/integration/test_data/sunburst.mjs @@ -1,164 +1,164 @@ export const data = { - series: [ - { - name: 'Country_code', - type: 'dimension', - values: [ - 'AT', - 'BE', - 'BG', - 'CY', - 'CZ', - 'AT', - 'BE', - 'BG', - 'CY', - 'AT', - 'BE', - 'BG', - 'CY', - 'AT', - 'AT', - 'BE', - 'BG', - 'CY', - 'CZ', - 'DE', - 'DK', - 'EE', - 'EL', - 'ES', - 'FI', - 'FR', - 'HR', - 'HU' - ] - }, - { - name: 'Type', - type: 'dimension', - values: [ - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Joy factors', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country', - 'Country' - ] - }, - { - name: 'Joy factors/Country', - type: 'dimension', - values: [ - 'Terrorism', - 'Terrorism', - 'Terrorism', - 'Terrorism', - 'Terrorism', - 'Poverty', - 'Poverty', - 'Poverty', - 'Poverty', - 'Climate change', - 'Climate change', - 'Climate change', - 'Climate change', - 'Political extremism', - 'Austria', - 'Belgium', - 'Bulgaria', - 'Cyprus', - 'Czechia', - 'Germany', - 'Denmark', - 'Estonia', - 'Greece', - 'Spain', - 'Finland', - 'France', - 'Croatia', - 'Hungary' - ] - }, - { - name: 'Year', - type: 'dimension', - values: [ - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020' - ] - }, - { - name: 'Value 2 (+)', - type: 'measure', - values: [ - 51, 47, 30, 20, 15, 14, 13, 12, 11, 11, 8, 8, 4, 2, 51, 47, 30, 20, 15, 14, 13, 12, 11, 11, - 8, 8, 4, 2 - ] - }, - { - name: 'Value 5 (+/-)', - type: 'measure', - values: [ - 51, 47, 30, -20, 15, 14, 13, 12, -11, -11, -8, -8, -4, 2, 51, 47, 30, -20, 15, 14, 13, 12, - -11, -11, -8, -8, -4, 2 - ] - }, - { - name: 'index', - type: 'measure', - values: [ - 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - ] - } - ] + series: [ + { + name: 'Country_code', + type: 'dimension', + values: [ + 'AT', + 'BE', + 'BG', + 'CY', + 'CZ', + 'AT', + 'BE', + 'BG', + 'CY', + 'AT', + 'BE', + 'BG', + 'CY', + 'AT', + 'AT', + 'BE', + 'BG', + 'CY', + 'CZ', + 'DE', + 'DK', + 'EE', + 'EL', + 'ES', + 'FI', + 'FR', + 'HR', + 'HU' + ] + }, + { + name: 'Type', + type: 'dimension', + values: [ + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Joy factors', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country', + 'Country' + ] + }, + { + name: 'Joy factors/Country', + type: 'dimension', + values: [ + 'Terrorism', + 'Terrorism', + 'Terrorism', + 'Terrorism', + 'Terrorism', + 'Poverty', + 'Poverty', + 'Poverty', + 'Poverty', + 'Climate change', + 'Climate change', + 'Climate change', + 'Climate change', + 'Political extremism', + 'Austria', + 'Belgium', + 'Bulgaria', + 'Cyprus', + 'Czechia', + 'Germany', + 'Denmark', + 'Estonia', + 'Greece', + 'Spain', + 'Finland', + 'France', + 'Croatia', + 'Hungary' + ] + }, + { + name: 'Year', + type: 'dimension', + values: [ + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020' + ] + }, + { + name: 'Value 2 (+)', + type: 'measure', + values: [ + 51, 47, 30, 20, 15, 14, 13, 12, 11, 11, 8, 8, 4, 2, 51, 47, 30, 20, 15, 14, 13, 12, + 11, 11, 8, 8, 4, 2 + ] + }, + { + name: 'Value 5 (+/-)', + type: 'measure', + values: [ + 51, 47, 30, -20, 15, 14, 13, 12, -11, -11, -8, -8, -4, 2, 51, 47, 30, -20, 15, 14, + 13, 12, -11, -11, -8, -8, -4, 2 + ] + }, + { + name: 'index', + type: 'measure', + values: [ + 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + ] + } + ] } diff --git a/test/integration/test_data/sunburst2.mjs b/test/integration/test_data/sunburst2.mjs index 1dcc31bf6..b4cfd5d67 100644 --- a/test/integration/test_data/sunburst2.mjs +++ b/test/integration/test_data/sunburst2.mjs @@ -1,91 +1,91 @@ export const data = { - series: [ - { name: 'Levels', type: 'dimension' }, - { name: 'Level names', type: 'dimension' }, - { name: 'Value', type: 'measure' }, - { name: 'Index', type: 'measure' } - ], - records: [ - ['First', 'Group4', '2', '1'], - ['First', 'Group3', '4', '2'], - ['First', 'Group3', '8', '3'], - ['First', 'Group3', '8', '4'], - ['First', 'Group3', '8', '5'], - ['First', 'Group3', '18', '6'], - ['First', 'Group2', '12', '7'], - ['First', 'Group2', '12', '8'], - ['First', 'Group2', '5', '9'], - ['First', 'Group2', '9', '10'], - ['First', 'Group2', '11', '11'], - ['First', 'Group2', '11', '12'], - ['First', 'Group2', '15', '13'], - ['First', 'Group2', '12', '14'], - ['First', 'Group2', '15', '15'], - ['First', 'Group1', '9', '16'], - ['First', 'Group1', '19', '17'], - ['First', 'Group1', '9', '18'], - ['First', 'Group1', '20', '19'], - ['First', 'Group1', '5', '20'], - ['First', 'Group1', '7', '21'], - ['First', 'Group1', '22', '22'], - ['First', 'Group1', '7', '23'], - ['First', 'Group1', '11', '24'], - ['First', 'Group1', '21', '25'], - ['First', 'Group1', '18', '26'], - ['First', 'Group1', '23', '27'], - ['Second', 'Subgroup 41', '2', '28'], - ['Second', 'Subgroup 34', '4', '29'], - ['Second', 'Subgroup 33', '8', '30'], - ['Second', 'Subgroup 32', '8', '31'], - ['Second', 'Subgroup 32', '8', '32'], - ['Second', 'Subgroup 31', '18', '33'], - ['Second', 'Subgroup 24', '12', '34'], - ['Second', 'Subgroup 24', '12', '35'], - ['Second', 'Subgroup 23', '5', '36'], - ['Second', 'Subgroup 23', '9', '37'], - ['Second', 'Subgroup 23', '11', '38'], - ['Second', 'Subgroup 22', '11', '39'], - ['Second', 'Subgroup 22', '15', '40'], - ['Second', 'Subgroup 21', '12', '41'], - ['Second', 'Subgroup 21', '15', '42'], - ['Second', 'Subgroup 15', '9', '43'], - ['Second', 'Subgroup 15', '19', '44'], - ['Second', 'Subgroup 14', '9', '45'], - ['Second', 'Subgroup 14', '20', '46'], - ['Second', 'Subgroup 13', '5', '47'], - ['Second', 'Subgroup 13', '7', '48'], - ['Second', 'Subgroup 13', '22', '49'], - ['Second', 'Subgroup 12', '7', '50'], - ['Second', 'Subgroup 12', '11', '51'], - ['Second', 'Subgroup 12', '21', '52'], - ['Second', 'Subgroup 11', '18', '53'], - ['Second', 'Subgroup 11', '23', '54'], - ['Third', 'Subgroup 411', '2', '55'], - ['Third', 'Subgroup 341', '4', '56'], - ['Third', 'Subgroup 331', '8', '57'], - ['Third', 'Subgroup 322', '8', '58'], - ['Third', 'Subgroup 321', '8', '59'], - ['Third', 'Subgroup 311', '18', '60'], - ['Third', 'Subgroup 242', '12', '61'], - ['Third', 'Subgroup 241', '12', '62'], - ['Third', 'Subgroup 233', '5', '63'], - ['Third', 'Subgroup 232', '9', '64'], - ['Third', 'Subgroup 231', '11', '65'], - ['Third', 'Subgroup 222', '11', '66'], - ['Third', 'Subgroup 221', '15', '67'], - ['Third', 'Subgroup 212', '12', '68'], - ['Third', 'Subgroup 211', '15', '69'], - ['Third', 'Subgroup 152', '9', '70'], - ['Third', 'Subgroup 151', '19', '71'], - ['Third', 'Subgroup 142', '9', '72'], - ['Third', 'Subgroup 141', '20', '73'], - ['Third', 'Subgroup 133', '5', '74'], - ['Third', 'Subgroup 132', '7', '75'], - ['Third', 'Subgroup 131', '22', '76'], - ['Third', 'Subgroup 123', '7', '77'], - ['Third', 'Subgroup 122', '11', '78'], - ['Third', 'Subgroup 121', '21', '79'], - ['Third', 'Subgroup 112', '18', '80'], - ['Third', 'Subgroup 111', '23', '81'] - ] + series: [ + { name: 'Levels', type: 'dimension' }, + { name: 'Level names', type: 'dimension' }, + { name: 'Value', type: 'measure' }, + { name: 'Index', type: 'measure' } + ], + records: [ + ['First', 'Group4', '2', '1'], + ['First', 'Group3', '4', '2'], + ['First', 'Group3', '8', '3'], + ['First', 'Group3', '8', '4'], + ['First', 'Group3', '8', '5'], + ['First', 'Group3', '18', '6'], + ['First', 'Group2', '12', '7'], + ['First', 'Group2', '12', '8'], + ['First', 'Group2', '5', '9'], + ['First', 'Group2', '9', '10'], + ['First', 'Group2', '11', '11'], + ['First', 'Group2', '11', '12'], + ['First', 'Group2', '15', '13'], + ['First', 'Group2', '12', '14'], + ['First', 'Group2', '15', '15'], + ['First', 'Group1', '9', '16'], + ['First', 'Group1', '19', '17'], + ['First', 'Group1', '9', '18'], + ['First', 'Group1', '20', '19'], + ['First', 'Group1', '5', '20'], + ['First', 'Group1', '7', '21'], + ['First', 'Group1', '22', '22'], + ['First', 'Group1', '7', '23'], + ['First', 'Group1', '11', '24'], + ['First', 'Group1', '21', '25'], + ['First', 'Group1', '18', '26'], + ['First', 'Group1', '23', '27'], + ['Second', 'Subgroup 41', '2', '28'], + ['Second', 'Subgroup 34', '4', '29'], + ['Second', 'Subgroup 33', '8', '30'], + ['Second', 'Subgroup 32', '8', '31'], + ['Second', 'Subgroup 32', '8', '32'], + ['Second', 'Subgroup 31', '18', '33'], + ['Second', 'Subgroup 24', '12', '34'], + ['Second', 'Subgroup 24', '12', '35'], + ['Second', 'Subgroup 23', '5', '36'], + ['Second', 'Subgroup 23', '9', '37'], + ['Second', 'Subgroup 23', '11', '38'], + ['Second', 'Subgroup 22', '11', '39'], + ['Second', 'Subgroup 22', '15', '40'], + ['Second', 'Subgroup 21', '12', '41'], + ['Second', 'Subgroup 21', '15', '42'], + ['Second', 'Subgroup 15', '9', '43'], + ['Second', 'Subgroup 15', '19', '44'], + ['Second', 'Subgroup 14', '9', '45'], + ['Second', 'Subgroup 14', '20', '46'], + ['Second', 'Subgroup 13', '5', '47'], + ['Second', 'Subgroup 13', '7', '48'], + ['Second', 'Subgroup 13', '22', '49'], + ['Second', 'Subgroup 12', '7', '50'], + ['Second', 'Subgroup 12', '11', '51'], + ['Second', 'Subgroup 12', '21', '52'], + ['Second', 'Subgroup 11', '18', '53'], + ['Second', 'Subgroup 11', '23', '54'], + ['Third', 'Subgroup 411', '2', '55'], + ['Third', 'Subgroup 341', '4', '56'], + ['Third', 'Subgroup 331', '8', '57'], + ['Third', 'Subgroup 322', '8', '58'], + ['Third', 'Subgroup 321', '8', '59'], + ['Third', 'Subgroup 311', '18', '60'], + ['Third', 'Subgroup 242', '12', '61'], + ['Third', 'Subgroup 241', '12', '62'], + ['Third', 'Subgroup 233', '5', '63'], + ['Third', 'Subgroup 232', '9', '64'], + ['Third', 'Subgroup 231', '11', '65'], + ['Third', 'Subgroup 222', '11', '66'], + ['Third', 'Subgroup 221', '15', '67'], + ['Third', 'Subgroup 212', '12', '68'], + ['Third', 'Subgroup 211', '15', '69'], + ['Third', 'Subgroup 152', '9', '70'], + ['Third', 'Subgroup 151', '19', '71'], + ['Third', 'Subgroup 142', '9', '72'], + ['Third', 'Subgroup 141', '20', '73'], + ['Third', 'Subgroup 133', '5', '74'], + ['Third', 'Subgroup 132', '7', '75'], + ['Third', 'Subgroup 131', '22', '76'], + ['Third', 'Subgroup 123', '7', '77'], + ['Third', 'Subgroup 122', '11', '78'], + ['Third', 'Subgroup 121', '21', '79'], + ['Third', 'Subgroup 112', '18', '80'], + ['Third', 'Subgroup 111', '23', '81'] + ] } diff --git a/test/integration/test_data/tutorial.mjs b/test/integration/test_data/tutorial.mjs index 1823e7c80..0619c731a 100755 --- a/test/integration/test_data/tutorial.mjs +++ b/test/integration/test_data/tutorial.mjs @@ -1,247 +1,247 @@ export const data = { - series: [ - { - name: 'Timeseries', - type: 'dimension', - values: [ - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2018', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2019', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2020', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021', - '2021' - ] - }, - { - name: 'Categ. Parent', - type: 'dimension', - values: [ - 'A', - 'A', - 'A', - 'A', - 'B', - 'B', - 'B', - 'B', - 'C', - 'C', - 'C', - 'C', - 'A', - 'A', - 'A', - 'A', - 'B', - 'B', - 'B', - 'B', - 'C', - 'C', - 'C', - 'C', - 'A', - 'A', - 'A', - 'A', - 'B', - 'B', - 'B', - 'B', - 'C', - 'C', - 'C', - 'C', - 'A', - 'A', - 'A', - 'A', - 'B', - 'B', - 'B', - 'B', - 'C', - 'C', - 'C', - 'C' - ] - }, - { - name: 'Categ. Child', - type: 'dimension', - values: [ - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l', - 'a', - 'b', - 'c', - 'd', - 'e', - 'f', - 'g', - 'h', - 'i', - 'j', - 'k', - 'l' - ] - }, - { - name: 'Categories 3', - type: 'dimension', - values: [ - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100', - '0-25', - '26-50', - '51-75', - '76-100' - ] - }, - { - name: 'Values 1', - type: 'measure', - values: [ - 15, 32, 14, 12, 28, 36, 23, 21, 12, 13, 27, 8, 16, 42, 21, 11, 27, 39, 21, 27, 14, 15, 31, - 12, 29, 45, 28, 13, 30, 41, 27, 35, 16, 15, 34, 15, 35, 48, 29, 15, 35, 46, 32, 39, 16, 18, - 36, 18 - ] - }, - { - name: 'Values 2', - type: 'measure', - values: [ - 213, 621, 189, 210, 476, 542, 124, 87, 342, 276, 234, 204, 245, 672, 213, 234, 482, 567, - 165, 132, 365, 281, 285, 218, 264, 734, 265, 276, 521, 602, 187, 152, 323, 262, 312, 232, - 287, 811, 312, 287, 562, 651, 215, 198, 352, 306, 372, 268 - ] - }, - { - name: 'Values 3', - type: 'measure', - values: [ - 639, 354, 278, 312, 1241, 1512, 863, 789, 765, 653, 542, 497, 673, 412, 308, 345, 1329, - 1671, 962, 821, 798, 681, 584, 518, 706, 432, 326, 358, 1382, 1715, 1073, 912, 821, 721, - 618, 542, 721, 462, 372, 367, 1404, 1729, 1142, 941, 834, 778, 651, 598 - ] - } - ] + series: [ + { + name: 'Timeseries', + type: 'dimension', + values: [ + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2018', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2019', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2020', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021', + '2021' + ] + }, + { + name: 'Categ. Parent', + type: 'dimension', + values: [ + 'A', + 'A', + 'A', + 'A', + 'B', + 'B', + 'B', + 'B', + 'C', + 'C', + 'C', + 'C', + 'A', + 'A', + 'A', + 'A', + 'B', + 'B', + 'B', + 'B', + 'C', + 'C', + 'C', + 'C', + 'A', + 'A', + 'A', + 'A', + 'B', + 'B', + 'B', + 'B', + 'C', + 'C', + 'C', + 'C', + 'A', + 'A', + 'A', + 'A', + 'B', + 'B', + 'B', + 'B', + 'C', + 'C', + 'C', + 'C' + ] + }, + { + name: 'Categ. Child', + type: 'dimension', + values: [ + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l' + ] + }, + { + name: 'Categories 3', + type: 'dimension', + values: [ + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100', + '0-25', + '26-50', + '51-75', + '76-100' + ] + }, + { + name: 'Values 1', + type: 'measure', + values: [ + 15, 32, 14, 12, 28, 36, 23, 21, 12, 13, 27, 8, 16, 42, 21, 11, 27, 39, 21, 27, 14, + 15, 31, 12, 29, 45, 28, 13, 30, 41, 27, 35, 16, 15, 34, 15, 35, 48, 29, 15, 35, 46, + 32, 39, 16, 18, 36, 18 + ] + }, + { + name: 'Values 2', + type: 'measure', + values: [ + 213, 621, 189, 210, 476, 542, 124, 87, 342, 276, 234, 204, 245, 672, 213, 234, 482, + 567, 165, 132, 365, 281, 285, 218, 264, 734, 265, 276, 521, 602, 187, 152, 323, 262, + 312, 232, 287, 811, 312, 287, 562, 651, 215, 198, 352, 306, 372, 268 + ] + }, + { + name: 'Values 3', + type: 'measure', + values: [ + 639, 354, 278, 312, 1241, 1512, 863, 789, 765, 653, 542, 497, 673, 412, 308, 345, + 1329, 1671, 962, 821, 798, 681, 584, 518, 706, 432, 326, 358, 1382, 1715, 1073, 912, + 821, 721, 618, 542, 721, 462, 372, 367, 1404, 1729, 1142, 941, 834, 778, 651, 598 + ] + } + ] } diff --git a/test/integration/tests/chart.mjs b/test/integration/tests/chart.mjs index 8738738f0..5d21e571d 100644 --- a/test/integration/tests/chart.mjs +++ b/test/integration/tests/chart.mjs @@ -2,32 +2,32 @@ import DataCollection from './data.mjs' import ConfigCollection from './config.mjs' export default class Chart { - static animate(params) { - return (chart) => { - const animate = {} + static animate(params) { + return (chart) => { + const animate = {} - let data = params.data - if (data) { - if (typeof data === 'string') { - data = DataCollection[data] - } - animate.data = data - } + let data = params.data + if (data) { + if (typeof data === 'string') { + data = DataCollection[data] + } + animate.data = data + } - let config = params.config - if (config) { - if (typeof config === 'string') { - config = ConfigCollection[config] - } - animate.config = config - } + let config = params.config + if (config) { + if (typeof config === 'string') { + config = ConfigCollection[config] + } + animate.config = config + } - const style = params.style - if (style) { - animate.style = style - } + const style = params.style + if (style) { + animate.style = style + } - return chart.animate(animate) - } - } + return chart.animate(animate) + } + } } diff --git a/test/integration/tests/config.mjs b/test/integration/tests/config.mjs index 4f4a2b822..55a23dcf0 100644 --- a/test/integration/tests/config.mjs +++ b/test/integration/tests/config.mjs @@ -1,39 +1,39 @@ const ConfigCollection = { - simpleData: { - channels: { - x: { attach: ['Foo'] }, - y: { attach: ['Bar'] } - }, - title: null, - legend: null - }, - simpleDataCircleGeometry: { - geometry: 'circle', - channels: { - x: { attach: ['Foo'] }, - y: { attach: ['Bar'] } - }, - title: null, - legend: null - }, - simpleDataCircleGeometryVerticalOrientation: { - geometry: 'circle', - orientation: 'vertical', - channels: { - x: { attach: ['Foo'] }, - y: { attach: ['Bar'] } - }, - title: null, - legend: null - }, - simpleDataWithInvertAxis: { - channels: { - x: { attach: ['Bar'] }, - y: { attach: ['Foo'] } - }, - title: null, - legend: null - } + simpleData: { + channels: { + x: { attach: ['Foo'] }, + y: { attach: ['Bar'] } + }, + title: null, + legend: null + }, + simpleDataCircleGeometry: { + geometry: 'circle', + channels: { + x: { attach: ['Foo'] }, + y: { attach: ['Bar'] } + }, + title: null, + legend: null + }, + simpleDataCircleGeometryVerticalOrientation: { + geometry: 'circle', + orientation: 'vertical', + channels: { + x: { attach: ['Foo'] }, + y: { attach: ['Bar'] } + }, + title: null, + legend: null + }, + simpleDataWithInvertAxis: { + channels: { + x: { attach: ['Bar'] }, + y: { attach: ['Foo'] } + }, + title: null, + legend: null + } } export default ConfigCollection diff --git a/test/integration/tests/config_tests.json b/test/integration/tests/config_tests.json index 60c812a3e..8cae408d9 100644 --- a/test/integration/tests/config_tests.json +++ b/test/integration/tests/config_tests.json @@ -1,47 +1,47 @@ { - "suite": "/test/integration/tests/config_tests", - "test": { - "geometry/static_area": { - "refs": ["809bba0"] - }, - "geometry/static_circle": { - "refs": ["8d44ab6"] - }, - "geometry/static_default": { - "refs": ["a491c17"] - }, - "geometry/static_line": { - "refs": ["758acea"] - }, - "geometry/static_rectangle": { - "refs": ["a491c17"] - }, - "geometry/animated_area-line": { - "refs": ["a6f2b5c"] - }, - "geometry/animated_area-rectangle": { - "refs": ["82a57d0"] - }, - "geometry/animated_line-area": { - "refs": ["049a517"] - }, - "geometry/animated_line-circle": { - "refs": ["ad7cb9b"] - }, - "geometry/animated_line-rectangle": { - "refs": ["a4e4f01"] - }, - "geometry/animated_rectangle-area": { - "refs": ["6577fd3"] - }, - "geometry/animated_rectangle-circle": { - "refs": ["12d82f2"] - }, - "geometry/animated_rectangle-line": { - "refs": ["3e1ffaf"] - }, - "dimension_axis_title": { - "refs": ["d9bab94"] - } - } + "suite": "/test/integration/tests/config_tests", + "test": { + "geometry/static_area": { + "refs": ["809bba0"] + }, + "geometry/static_circle": { + "refs": ["8d44ab6"] + }, + "geometry/static_default": { + "refs": ["a491c17"] + }, + "geometry/static_line": { + "refs": ["758acea"] + }, + "geometry/static_rectangle": { + "refs": ["a491c17"] + }, + "geometry/animated_area-line": { + "refs": ["a6f2b5c"] + }, + "geometry/animated_area-rectangle": { + "refs": ["82a57d0"] + }, + "geometry/animated_line-area": { + "refs": ["049a517"] + }, + "geometry/animated_line-circle": { + "refs": ["ad7cb9b"] + }, + "geometry/animated_line-rectangle": { + "refs": ["a4e4f01"] + }, + "geometry/animated_rectangle-area": { + "refs": ["6577fd3"] + }, + "geometry/animated_rectangle-circle": { + "refs": ["12d82f2"] + }, + "geometry/animated_rectangle-line": { + "refs": ["3e1ffaf"] + }, + "dimension_axis_title": { + "refs": ["d9bab94"] + } + } } diff --git a/test/integration/tests/config_tests/dimension_axis_title.mjs b/test/integration/tests/config_tests/dimension_axis_title.mjs index b99530cbd..854438e75 100644 --- a/test/integration/tests/config_tests/dimension_axis_title.mjs +++ b/test/integration/tests/config_tests/dimension_axis_title.mjs @@ -1,33 +1,33 @@ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: ['Happy', 'Happy', 'Sad'] }, - { name: 'Baz', values: [1, 2, 3] } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: ['Happy', 'Happy', 'Sad'] }, + { name: 'Baz', values: [1, 2, 3] } + ] + } - return chart.animate({ data }) - }, - (chart) => - chart.animate({ - x: { set: 'Foo' }, - y: { set: 'Bar', title: 'Feeling' }, - size: { set: 'Foo' }, - legend: 'size' - }), - (chart) => - chart.animate({ - x: { title: 'Who' }, - y: { title: null }, - size: { title: 'Bigness' } - }), - (chart) => - chart.animate({ - x: { set: 'Baz' }, - size: { set: 'Baz' } - }) + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + x: { set: 'Foo' }, + y: { set: 'Bar', title: 'Feeling' }, + size: { set: 'Foo' }, + legend: 'size' + }), + (chart) => + chart.animate({ + x: { title: 'Who' }, + y: { title: null }, + size: { title: 'Bigness' } + }), + (chart) => + chart.animate({ + x: { set: 'Baz' }, + size: { set: 'Baz' } + }) ] export default testSteps diff --git a/test/integration/tests/config_tests/geometry.mjs b/test/integration/tests/config_tests/geometry.mjs index 41f08c215..2f984daa4 100644 --- a/test/integration/tests/config_tests/geometry.mjs +++ b/test/integration/tests/config_tests/geometry.mjs @@ -1,232 +1,232 @@ import Chart from '../chart.mjs' const testCases = [ - { - testName: 'static_default', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar' - } - }) - ] - }, - { - testName: 'static_rectangle', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'rectangle' - } - }) - ] - }, - { - testName: 'static_area', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'area' - } - }) - ] - }, - { - testName: 'static_circle', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'circle' - } - }) - ] - }, - { - testName: 'static_line', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'line' - } - }) - ] - }, - { - testName: 'animated_area-circle', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'area' - } - }), - Chart.animate({ - config: { - geometry: 'circle' - } - }) - ] - }, - { - testName: 'animated_area-line', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'area' - } - }), - Chart.animate({ - config: { - geometry: 'line' - } - }) - ] - }, - { - testName: 'animated_area-rectangle', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'area' - } - }), - Chart.animate({ - config: { - geometry: 'rectangle' - } - }) - ] - }, - { - testName: 'animated_line-area', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'line' - } - }), - Chart.animate({ - config: { - geometry: 'area' - } - }) - ] - }, - { - testName: 'animated_line-circle', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'line' - } - }), - Chart.animate({ - config: { - geometry: 'circle' - } - }) - ] - }, - { - testName: 'animated_line-rectangle', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'line' - } - }), - Chart.animate({ - config: { - geometry: 'rectangle' - } - }) - ] - }, - { - testName: 'animated_rectangle-area', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'rectangle' - } - }), - Chart.animate({ - config: { - geometry: 'area' - } - }) - ] - }, - { - testName: 'animated_rectangle-circle', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'rectangle' - } - }), - Chart.animate({ - config: { - geometry: 'circle' - } - }) - ] - }, - { - testName: 'animated_rectangle-line', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithTwoValue', - config: { - x: 'Foo', - y: 'Bar', - geometry: 'rectangle' - } - }), - Chart.animate({ - config: { - geometry: 'line' - } - }) - ] - } + { + testName: 'static_default', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar' + } + }) + ] + }, + { + testName: 'static_rectangle', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'rectangle' + } + }) + ] + }, + { + testName: 'static_area', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'area' + } + }) + ] + }, + { + testName: 'static_circle', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'circle' + } + }) + ] + }, + { + testName: 'static_line', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'line' + } + }) + ] + }, + { + testName: 'animated_area-circle', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'area' + } + }), + Chart.animate({ + config: { + geometry: 'circle' + } + }) + ] + }, + { + testName: 'animated_area-line', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'area' + } + }), + Chart.animate({ + config: { + geometry: 'line' + } + }) + ] + }, + { + testName: 'animated_area-rectangle', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'area' + } + }), + Chart.animate({ + config: { + geometry: 'rectangle' + } + }) + ] + }, + { + testName: 'animated_line-area', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'line' + } + }), + Chart.animate({ + config: { + geometry: 'area' + } + }) + ] + }, + { + testName: 'animated_line-circle', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'line' + } + }), + Chart.animate({ + config: { + geometry: 'circle' + } + }) + ] + }, + { + testName: 'animated_line-rectangle', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'line' + } + }), + Chart.animate({ + config: { + geometry: 'rectangle' + } + }) + ] + }, + { + testName: 'animated_rectangle-area', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'rectangle' + } + }), + Chart.animate({ + config: { + geometry: 'area' + } + }) + ] + }, + { + testName: 'animated_rectangle-circle', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'rectangle' + } + }), + Chart.animate({ + config: { + geometry: 'circle' + } + }) + ] + }, + { + testName: 'animated_rectangle-line', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithTwoValue', + config: { + x: 'Foo', + y: 'Bar', + geometry: 'rectangle' + } + }), + Chart.animate({ + config: { + geometry: 'line' + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/data.mjs b/test/integration/tests/data.mjs index 9c1609113..a04dc5cfb 100644 --- a/test/integration/tests/data.mjs +++ b/test/integration/tests/data.mjs @@ -1,44 +1,44 @@ const DataCollection = { - simpleDataWithOneValue: { - series: [ - { - name: 'Foo', - type: 'dimension', - values: ['Baz'] - }, - { - name: 'Bar', - type: 'measure', - values: [42] - } - ] - }, - simpleDataWithTwoValue: { - series: [ - { - name: 'Foo', - type: 'dimension', - values: ['Baz1', 'Baz2'] - }, - { - name: 'Bar', - type: 'measure', - values: [42, 43] - } - ] - }, - simpleDataWithThreeValue: { - series: [ - { - name: 'Foo', - values: [42, 43, 44] - }, - { - name: 'Bar', - values: [2, 3, 4] - } - ] - } + simpleDataWithOneValue: { + series: [ + { + name: 'Foo', + type: 'dimension', + values: ['Baz'] + }, + { + name: 'Bar', + type: 'measure', + values: [42] + } + ] + }, + simpleDataWithTwoValue: { + series: [ + { + name: 'Foo', + type: 'dimension', + values: ['Baz1', 'Baz2'] + }, + { + name: 'Bar', + type: 'measure', + values: [42, 43] + } + ] + }, + simpleDataWithThreeValue: { + series: [ + { + name: 'Foo', + values: [42, 43, 44] + }, + { + name: 'Bar', + values: [2, 3, 4] + } + ] + } } export default DataCollection diff --git a/test/integration/tests/features.json b/test/integration/tests/features.json index 51f3e16f5..b68d89684 100644 --- a/test/integration/tests/features.json +++ b/test/integration/tests/features.json @@ -1,32 +1,32 @@ { - "suite": "/test/integration/tests/features", - "test": { - "aggregators/aggregators": { - "refs": ["bd61770"] - }, - "aggregators/aggregators_together": { - "refs": ["0e6a340"] - }, - "axis_title_positioning": { - "refs": ["9fc11e0"] - }, - "data_input/object_records": { - "refs": ["9d5443f"] - }, - "events/drawing_events": { - "refs": ["c34d5dd"] - }, - "subtitle_caption": { - "refs": ["5c04f20"] - }, - "cssproperties": { - "refs": ["f3212ba"] - }, - "anim/speed": { - "refs": ["7b07504"] - }, - "presets": { - "refs": ["55a7fb8"] - } - } + "suite": "/test/integration/tests/features", + "test": { + "aggregators/aggregators": { + "refs": ["bd61770"] + }, + "aggregators/aggregators_together": { + "refs": ["0e6a340"] + }, + "axis_title_positioning": { + "refs": ["9fc11e0"] + }, + "data_input/object_records": { + "refs": ["9d5443f"] + }, + "events/drawing_events": { + "refs": ["c34d5dd"] + }, + "subtitle_caption": { + "refs": ["5c04f20"] + }, + "cssproperties": { + "refs": ["f3212ba"] + }, + "anim/speed": { + "refs": ["7b07504"] + }, + "presets": { + "refs": ["55a7fb8"] + } + } } diff --git a/test/integration/tests/features/aggregators/aggregators.mjs b/test/integration/tests/features/aggregators/aggregators.mjs index 3976edeab..84b32235d 100644 --- a/test/integration/tests/features/aggregators/aggregators.mjs +++ b/test/integration/tests/features/aggregators/aggregators.mjs @@ -1,75 +1,75 @@ const data = { - series: [ - { - name: 'Dim0', - type: 'dimension', - values: ['a', 'a', 'a', 'a', 'b', 'b', 'b'] - }, - { - name: 'Dim1', - type: 'dimension', - values: ['A', 'B', 'C', 'B', 'A', 'A', 'B'] - }, - { - name: 'Meas', - type: 'measure', - values: [1, 2, 3, 4, 5, 6, 7] - } - ] + series: [ + { + name: 'Dim0', + type: 'dimension', + values: ['a', 'a', 'a', 'a', 'b', 'b', 'b'] + }, + { + name: 'Dim1', + type: 'dimension', + values: ['A', 'B', 'C', 'B', 'A', 'A', 'B'] + }, + { + name: 'Meas', + type: 'measure', + values: [1, 2, 3, 4, 5, 6, 7] + } + ] } const testSteps = [ - (chart) => chart.animate({ data }), - (chart) => - chart.animate({ - x: 'Dim0', - y: 'Meas', - label: 'Meas', - title: 'default: 10, 18' - }), - (chart) => - chart.animate({ - x: 'Dim0', - y: 'min(Meas)', - label: 'min(Meas)', - title: 'min(): 1, 5' - }), - (chart) => - chart.animate({ - x: 'Dim0', - y: 'max(Meas)', - label: 'max(Meas)', - title: 'max(): 4, 7' - }), - (chart) => - chart.animate({ - x: 'Dim0', - y: 'mean(Meas)', - label: 'mean(Meas)', - title: 'mean(): 2.5, 6' - }), - (chart) => - chart.animate({ - x: 'Dim0', - y: 'sum(Meas)', - label: 'sum(Meas)', - title: 'sum(): 10, 18' - }), - (chart) => - chart.animate({ - x: 'Dim0', - y: 'count()', - label: 'count()', - title: 'count(): 4, 3' - }), - (chart) => - chart.animate({ - x: 'Dim0', - y: 'distinct(Dim1)', - label: 'distinct(Dim1)', - title: 'distinct(): 3, 2' - }), - (chart) => chart.animate({ x: 'Dim0', y: 'Meas', label: 'Meas', title: 'default' }) + (chart) => chart.animate({ data }), + (chart) => + chart.animate({ + x: 'Dim0', + y: 'Meas', + label: 'Meas', + title: 'default: 10, 18' + }), + (chart) => + chart.animate({ + x: 'Dim0', + y: 'min(Meas)', + label: 'min(Meas)', + title: 'min(): 1, 5' + }), + (chart) => + chart.animate({ + x: 'Dim0', + y: 'max(Meas)', + label: 'max(Meas)', + title: 'max(): 4, 7' + }), + (chart) => + chart.animate({ + x: 'Dim0', + y: 'mean(Meas)', + label: 'mean(Meas)', + title: 'mean(): 2.5, 6' + }), + (chart) => + chart.animate({ + x: 'Dim0', + y: 'sum(Meas)', + label: 'sum(Meas)', + title: 'sum(): 10, 18' + }), + (chart) => + chart.animate({ + x: 'Dim0', + y: 'count()', + label: 'count()', + title: 'count(): 4, 3' + }), + (chart) => + chart.animate({ + x: 'Dim0', + y: 'distinct(Dim1)', + label: 'distinct(Dim1)', + title: 'distinct(): 3, 2' + }), + (chart) => chart.animate({ x: 'Dim0', y: 'Meas', label: 'Meas', title: 'default' }) ] export default testSteps diff --git a/test/integration/tests/features/aggregators/aggregators_together.mjs b/test/integration/tests/features/aggregators/aggregators_together.mjs index 300415268..f7e2c7334 100644 --- a/test/integration/tests/features/aggregators/aggregators_together.mjs +++ b/test/integration/tests/features/aggregators/aggregators_together.mjs @@ -1,37 +1,37 @@ const data = { - series: [ - { - name: 'Dim0', - type: 'dimension', - values: ['a', 'a', 'a', 'a', 'b', 'b', 'b'] - }, - { - name: 'Dim1', - type: 'dimension', - values: ['A', 'B', 'C', 'B', 'A', 'A', 'B'] - }, - { - name: 'Meas', - type: 'measure', - values: [1, 2, 3, 4, 5, 6, 7] - } - ] + series: [ + { + name: 'Dim0', + type: 'dimension', + values: ['a', 'a', 'a', 'a', 'b', 'b', 'b'] + }, + { + name: 'Dim1', + type: 'dimension', + values: ['A', 'B', 'C', 'B', 'A', 'A', 'B'] + }, + { + name: 'Meas', + type: 'measure', + values: [1, 2, 3, 4, 5, 6, 7] + } + ] } const testSteps = [ - (chart) => - chart.animate({ - data, - config: { - x: 'min(Meas)', - y: 'max(Meas)', - label: 'mean(Meas)', - size: 'sum(Meas)', - color: 'Dim0', - geometry: 'circle', - legend: 'size' - } - }) + (chart) => + chart.animate({ + data, + config: { + x: 'min(Meas)', + y: 'max(Meas)', + label: 'mean(Meas)', + size: 'sum(Meas)', + color: 'Dim0', + geometry: 'circle', + legend: 'size' + } + }) ] export default testSteps diff --git a/test/integration/tests/features/anim/speed.mjs b/test/integration/tests/features/anim/speed.mjs index 81edc9e0b..9074387d8 100644 --- a/test/integration/tests/features/anim/speed.mjs +++ b/test/integration/tests/features/anim/speed.mjs @@ -1,37 +1,37 @@ const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] }, - { name: 'Baz', values: [500, 300, 200] } - ] + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] }, + { name: 'Baz', values: [500, 300, 200] } + ] } const testSteps = [ - (chart) => - chart.animate( - { - data, - config: { - x: 'Foo', - y: 'Bar' - } - }, - { speed: 5 } - ), - async (chart) => { - const anim = chart.animate({ - data, - config: { - color: 'Foo', - x: 'Bar', - y: 'Baz', - geometry: 'circle' - } - }) - const ctrl = await anim.activated - ctrl.speed = 3 - return anim - } + (chart) => + chart.animate( + { + data, + config: { + x: 'Foo', + y: 'Bar' + } + }, + { speed: 5 } + ), + async (chart) => { + const anim = chart.animate({ + data, + config: { + color: 'Foo', + x: 'Bar', + y: 'Baz', + geometry: 'circle' + } + }) + const ctrl = await anim.activated + ctrl.speed = 3 + return anim + } ] export default testSteps diff --git a/test/integration/tests/features/axis_title_positioning.mjs b/test/integration/tests/features/axis_title_positioning.mjs index 4ca158c1d..6c9bd6a6c 100644 --- a/test/integration/tests/features/axis_title_positioning.mjs +++ b/test/integration/tests/features/axis_title_positioning.mjs @@ -1,69 +1,69 @@ const data = { - series: [ - { name: 'Dim0', type: 'dimension', values: ['a', 'b'] }, - { name: 'Meas0', type: 'measure', values: [-0.5, 1] }, - { name: 'Meas1', type: 'measure', values: [-0.3, 1] } - ] + series: [ + { name: 'Dim0', type: 'dimension', values: ['a', 'b'] }, + { name: 'Meas0', type: 'measure', values: [-0.5, 1] }, + { name: 'Meas1', type: 'measure', values: [-0.3, 1] } + ] } const testSteps = [ - (chart) => chart.animate({ data }), - (chart) => - chart.animate({ - x: 'Meas0', - y: 'Meas1', - label: 'Dim0', - geometry: 'circle' - }), - (chart) => chart.animate({ coordSystem: 'polar' }) + (chart) => chart.animate({ data }), + (chart) => + chart.animate({ + x: 'Meas0', + y: 'Meas1', + label: 'Dim0', + geometry: 'circle' + }), + (chart) => chart.animate({ coordSystem: 'polar' }) ] function titleStyle(pos, vpos, vside, side) { - return { - vposition: vpos, - position: pos, - vside, - side - } + return { + vposition: vpos, + position: pos, + vside, + side + } } function style(pos, vpos, vside, side) { - return { - plot: { - xAxis: { title: titleStyle(pos, vpos, vside, side) }, - yAxis: { title: titleStyle(pos, vpos, vside, side) } - } - } + return { + plot: { + xAxis: { title: titleStyle(pos, vpos, vside, side) }, + yAxis: { title: titleStyle(pos, vpos, vside, side) } + } + } } for (const vside of ['positive', 'upon', 'negative']) - for (const side of ['positive', 'upon', 'negative']) - for (const coordSystem of ['cartesian', 'polar']) { - testSteps.push((chart) => - chart.animate({ - config: { - x: { title: `x:${side}-${vside}` }, - y: { title: `y:${side}-${vside}` }, - coordSystem - }, - style: style('axis', 'end', vside, side) - }) - ) - } + for (const side of ['positive', 'upon', 'negative']) + for (const coordSystem of ['cartesian', 'polar']) { + testSteps.push((chart) => + chart.animate({ + config: { + x: { title: `x:${side}-${vside}` }, + y: { title: `y:${side}-${vside}` }, + coordSystem + }, + style: style('axis', 'end', vside, side) + }) + ) + } for (const pos of ['min-edge', 'axis', 'max-edge']) - for (const vpos of ['begin', 'middle', 'end']) - for (const coordSystem of ['cartesian', 'polar']) { - testSteps.push((chart) => - chart.animate({ - config: { - x: { title: `x:${pos}-${vpos}` }, - y: { title: `y:${pos}-${vpos}` }, - coordSystem - }, - style: style(pos, vpos, 'upon', 'upon') - }) - ) - } + for (const vpos of ['begin', 'middle', 'end']) + for (const coordSystem of ['cartesian', 'polar']) { + testSteps.push((chart) => + chart.animate({ + config: { + x: { title: `x:${pos}-${vpos}` }, + y: { title: `y:${pos}-${vpos}` }, + coordSystem + }, + style: style(pos, vpos, 'upon', 'upon') + }) + ) + } export default testSteps diff --git a/test/integration/tests/features/cssproperties.mjs b/test/integration/tests/features/cssproperties.mjs index 998312239..0cfd0187b 100644 --- a/test/integration/tests/features/cssproperties.mjs +++ b/test/integration/tests/features/cssproperties.mjs @@ -1,46 +1,46 @@ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] }, - { name: 'Baz', values: [5, 3, 2] } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] }, + { name: 'Baz', values: [5, 3, 2] } + ] + } - const style = document.createElement('style') - style.innerHTML = ` + const style = document.createElement('style') + style.innerHTML = ` body { --vizzu-plot-yAxis-label-color: #ff0000; } ` - document.head.appendChild(style) + document.head.appendChild(style) - chart.feature('cssProperties', true) + chart.feature('cssProperties', true) - // const body = document.querySelector('body') - // body.style.setProperty('--vizzu-plot-yAxis-label-color', '#ff0000') + // const body = document.querySelector('body') + // body.style.setProperty('--vizzu-plot-yAxis-label-color', '#ff0000') - return chart.animate({ data }) - }, - (chart) => { - return chart.animate({ - x: 'Foo', - y: 'Bar' - }) - }, - (chart) => { - return chart.animate({ - config: { title: 'override' }, - style: { plot: { yAxis: { label: { color: '#00ff00' } } } } - }) - }, - (chart) => { - return chart.animate({ - config: { title: 'back' }, - style: null - }) - } + return chart.animate({ data }) + }, + (chart) => { + return chart.animate({ + x: 'Foo', + y: 'Bar' + }) + }, + (chart) => { + return chart.animate({ + config: { title: 'override' }, + style: { plot: { yAxis: { label: { color: '#00ff00' } } } } + }) + }, + (chart) => { + return chart.animate({ + config: { title: 'back' }, + style: null + }) + } ] export default testSteps diff --git a/test/integration/tests/features/data_input/object_records.mjs b/test/integration/tests/features/data_input/object_records.mjs index 7fd7fc73b..18dc18a8a 100644 --- a/test/integration/tests/features/data_input/object_records.mjs +++ b/test/integration/tests/features/data_input/object_records.mjs @@ -6,43 +6,43 @@ const outOfOrderRecord1 = { Dim1: 'E', Dim0: 'e', Meas: 5 } const outOfOrderRecord2 = { Dim0: 'f', Meas: 6, Dim1: 'F' } const data = { - series: [ - { - name: 'Dim0', - type: 'dimension' - }, - { - name: 'Dim1', - type: 'dimension' - }, - { - name: 'Meas', - type: 'measure' - } - ], - records: [ - normalRecord, - missingMeasureRecord, - missingDimensionRecord, - extraDimensionRecord, - outOfOrderRecord1, - outOfOrderRecord2 - ] + series: [ + { + name: 'Dim0', + type: 'dimension' + }, + { + name: 'Dim1', + type: 'dimension' + }, + { + name: 'Meas', + type: 'measure' + } + ], + records: [ + normalRecord, + missingMeasureRecord, + missingDimensionRecord, + extraDimensionRecord, + outOfOrderRecord1, + outOfOrderRecord2 + ] } const addedMissingMeasureRecord = { Dim0: 'b', Dim1: 'B', Meas: 2 } const addedOutOfOrderRecord1 = { Dim1: 'G', Meas: 7, Dim0: 'g' } const testSteps = [ - (chart) => chart.animate({ data }), - (chart) => - chart.animate({ - x: ['Dim0', 'Dim1'], - y: 'Meas', - label: ['Meas', 'Dim1'] - }), - (chart) => chart.animate({ data: { records: [addedMissingMeasureRecord] } }), - (chart) => chart.animate({ data: { records: [addedOutOfOrderRecord1] } }) + (chart) => chart.animate({ data }), + (chart) => + chart.animate({ + x: ['Dim0', 'Dim1'], + y: 'Meas', + label: ['Meas', 'Dim1'] + }), + (chart) => chart.animate({ data: { records: [addedMissingMeasureRecord] } }), + (chart) => chart.animate({ data: { records: [addedOutOfOrderRecord1] } }) ] export default testSteps diff --git a/test/integration/tests/features/events/drawing_events.mjs b/test/integration/tests/features/events/drawing_events.mjs index 21636de9d..a26f8ced4 100644 --- a/test/integration/tests/features/events/drawing_events.mjs +++ b/test/integration/tests/features/events/drawing_events.mjs @@ -1,134 +1,134 @@ const events = [ - 'background-draw', - 'title-draw', - 'logo-draw', - 'legend-background-draw', - 'legend-title-draw', - 'legend-label-draw', - 'legend-marker-draw', - 'legend-bar-draw', - 'plot-background-draw', - 'plot-area-draw', - 'plot-marker-draw', - 'plot-marker-label-draw', - 'plot-marker-guide-draw', - 'plot-axis-draw', - 'plot-axis-title-draw', - 'plot-axis-label-draw', - 'plot-axis-tick-draw', - 'plot-axis-guide-draw', - 'plot-axis-interlacing-draw' + 'background-draw', + 'title-draw', + 'logo-draw', + 'legend-background-draw', + 'legend-title-draw', + 'legend-label-draw', + 'legend-marker-draw', + 'legend-bar-draw', + 'plot-background-draw', + 'plot-area-draw', + 'plot-marker-draw', + 'plot-marker-label-draw', + 'plot-marker-guide-draw', + 'plot-axis-draw', + 'plot-axis-title-draw', + 'plot-axis-label-draw', + 'plot-axis-tick-draw', + 'plot-axis-guide-draw', + 'plot-axis-interlacing-draw' ] let receivedEvents = [] let isErrorLogged = false function overlay(e, chart) { - const coordSystem = chart.feature.coordSystem - const ctx = e.renderingContext - ctx.save() - ctx.fillStyle = '#FF00000F' - ctx.strokeStyle = '#FF0000A0' - if (!e.detail.relative) { - if (e.detail.rect && e.detail.rect.size && e.detail.rect.transform) { - const size = e.detail.rect.size - const t = e.detail.rect.transform - ctx.transform(t[0][0], t[1][0], t[0][1], t[1][1], t[0][2], t[1][2]) - ctx.fillRect(0, 0, size.x, size.y) - ctx.fillStyle = '#FF0000A0' - if (e.detail.text) ctx.fillText(e.detail.text, 0, size.y) - } else if (e.detail.rect && e.detail.rect.pos && e.detail.rect.size) { - const r = e.detail.rect - ctx.fillRect(r.pos.x, r.pos.y, r.size.x, r.size.y) - ctx.fillStyle = '#FF0000A0' - if (e.detail.text) ctx.fillText(e.detail.text, r.pos.x, r.pos.y, r.pos.y + r.size.y) - } else if (e.detail.line) { - const l = e.detail.line - ctx.beginPath() - ctx.moveTo(l.begin.x, l.begin.y) - ctx.lineTo(l.end.x, l.end.y) - ctx.stroke() - } else console.log(e.type) - } else { - if (e.detail.rect && e.detail.rect.pos && e.detail.rect.size) { - const r = e.detail.rect - const pos = coordSystem.toCanvas(r.pos) - const bottomRight = { x: r.pos.x + r.size.x, y: r.pos.y + r.size.y } - const br = coordSystem.toCanvas(bottomRight) - const size = { x: br.x - pos.x, y: br.y - pos.y } - ctx.fillRect(pos.x, pos.y, size.x, size.y) - ctx.fillStyle = '#FF0000A0' - if (e.detail.text) ctx.fillText(e.detail.text, pos.x, pos.y, pos.y + size.y) - } else if (e.detail.line) { - const l = e.detail.line - ctx.beginPath() - const beg = coordSystem.toCanvas(l.begin) - const end = coordSystem.toCanvas(l.end) - ctx.moveTo(beg.x, beg.y) - ctx.lineTo(end.x, end.y) - ctx.stroke() - } else console.log(e.type) - } - ctx.restore() + const coordSystem = chart.feature.coordSystem + const ctx = e.renderingContext + ctx.save() + ctx.fillStyle = '#FF00000F' + ctx.strokeStyle = '#FF0000A0' + if (!e.detail.relative) { + if (e.detail.rect && e.detail.rect.size && e.detail.rect.transform) { + const size = e.detail.rect.size + const t = e.detail.rect.transform + ctx.transform(t[0][0], t[1][0], t[0][1], t[1][1], t[0][2], t[1][2]) + ctx.fillRect(0, 0, size.x, size.y) + ctx.fillStyle = '#FF0000A0' + if (e.detail.text) ctx.fillText(e.detail.text, 0, size.y) + } else if (e.detail.rect && e.detail.rect.pos && e.detail.rect.size) { + const r = e.detail.rect + ctx.fillRect(r.pos.x, r.pos.y, r.size.x, r.size.y) + ctx.fillStyle = '#FF0000A0' + if (e.detail.text) ctx.fillText(e.detail.text, r.pos.x, r.pos.y, r.pos.y + r.size.y) + } else if (e.detail.line) { + const l = e.detail.line + ctx.beginPath() + ctx.moveTo(l.begin.x, l.begin.y) + ctx.lineTo(l.end.x, l.end.y) + ctx.stroke() + } else console.log(e.type) + } else { + if (e.detail.rect && e.detail.rect.pos && e.detail.rect.size) { + const r = e.detail.rect + const pos = coordSystem.toCanvas(r.pos) + const bottomRight = { x: r.pos.x + r.size.x, y: r.pos.y + r.size.y } + const br = coordSystem.toCanvas(bottomRight) + const size = { x: br.x - pos.x, y: br.y - pos.y } + ctx.fillRect(pos.x, pos.y, size.x, size.y) + ctx.fillStyle = '#FF0000A0' + if (e.detail.text) ctx.fillText(e.detail.text, pos.x, pos.y, pos.y + size.y) + } else if (e.detail.line) { + const l = e.detail.line + ctx.beginPath() + const beg = coordSystem.toCanvas(l.begin) + const end = coordSystem.toCanvas(l.end) + ctx.moveTo(beg.x, beg.y) + ctx.lineTo(end.x, end.y) + ctx.stroke() + } else console.log(e.type) + } + ctx.restore() } function setupEvents(chart) { - chart.on('draw-begin', (e) => { - receivedEvents = [] - }) - events.forEach((event) => { - chart.on(event, (e) => { - if (e.type === 'title-draw' && e.detail.text === '') return - overlay(e, chart) - receivedEvents.push(e) - // e.renderingContext.globalAlpha = 0.5; - e.preventDefault() - }) - }) - chart.on('draw-complete', (e) => { - const reference = -912155869 - receivedEvents.push(e) - const result = JSON.stringify(receivedEvents, null, 2) - const hash = (str) => - str.split('').reduce((prev, curr) => (Math.imul(31, prev) + curr.charCodeAt(0)) | 0, 0) - if (hash(result) !== reference) { - if (!isErrorLogged) { - console.log('Expected hash: ' + reference) - console.log('Actual hash: ' + hash(result)) - isErrorLogged = true - } - e.renderingContext.fillText('FAILED', 10, 20) - } else { - e.renderingContext.fillText('PASSED', 10, 20) - } - }) + chart.on('draw-begin', (e) => { + receivedEvents = [] + }) + events.forEach((event) => { + chart.on(event, (e) => { + if (e.type === 'title-draw' && e.detail.text === '') return + overlay(e, chart) + receivedEvents.push(e) + // e.renderingContext.globalAlpha = 0.5; + e.preventDefault() + }) + }) + chart.on('draw-complete', (e) => { + const reference = -912155869 + receivedEvents.push(e) + const result = JSON.stringify(receivedEvents, null, 2) + const hash = (str) => + str.split('').reduce((prev, curr) => (Math.imul(31, prev) + curr.charCodeAt(0)) | 0, 0) + if (hash(result) !== reference) { + if (!isErrorLogged) { + console.log('Expected hash: ' + reference) + console.log('Actual hash: ' + hash(result)) + isErrorLogged = true + } + e.renderingContext.fillText('FAILED', 10, 20) + } else { + e.renderingContext.fillText('PASSED', 10, 20) + } + }) } const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] }, - { name: 'Baz', values: [500, 300, 200] } - ] + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] }, + { name: 'Baz', values: [500, 300, 200] } + ] } const testSteps = [ - (chart) => { - setupEvents(chart) - return chart.animate({ - data, - config: { - color: 'Foo', - x: { set: 'Foo', guides: true, ticks: true }, - y: { set: 'Bar', guides: true, ticks: true }, - size: 'Baz', - label: 'Baz', - title: 'My Chart', - legend: 'size', - geometry: 'circle' - } - }) - } + (chart) => { + setupEvents(chart) + return chart.animate({ + data, + config: { + color: 'Foo', + x: { set: 'Foo', guides: true, ticks: true }, + y: { set: 'Bar', guides: true, ticks: true }, + size: 'Baz', + label: 'Baz', + title: 'My Chart', + legend: 'size', + geometry: 'circle' + } + }) + } ] export default testSteps diff --git a/test/integration/tests/features/presets.mjs b/test/integration/tests/features/presets.mjs index e59fd491b..467a2b968 100644 --- a/test/integration/tests/features/presets.mjs +++ b/test/integration/tests/features/presets.mjs @@ -1,43 +1,43 @@ import data from '../../test_data/music_data.mjs' const testSteps = [ - (chart) => - chart.animate({ - data - }), + (chart) => + chart.animate({ + data + }), - (chart) => - chart.animate( - chart.constructor.presets.stackedBubble({ - size: 'Popularity', - color: 'Kinds', - stackedBy: 'Genres', - title: 'Using a preset' - }) - ), + (chart) => + chart.animate( + chart.constructor.presets.stackedBubble({ + size: 'Popularity', + color: 'Kinds', + stackedBy: 'Genres', + title: 'Using a preset' + }) + ), - (chart) => - chart.animate( - chart.constructor.presets.radialStackedBar({ - angle: 'Popularity', - radius: 'Genres', - stackedBy: 'Kinds', - sort: 'byValue', - title: 'Set sorting for a chart preset' - }) - ), + (chart) => + chart.animate( + chart.constructor.presets.radialStackedBar({ + angle: 'Popularity', + radius: 'Genres', + stackedBy: 'Kinds', + sort: 'byValue', + title: 'Set sorting for a chart preset' + }) + ), - (chart) => - chart.animate({ - config: chart.constructor.presets.radialBar({ - angle: 'Popularity', - radius: 'Genres', - title: 'Setting style for a preset' - }), - style: { - 'plot.xAxis.interlacing.color': '#ffffff00' - } - }) + (chart) => + chart.animate({ + config: chart.constructor.presets.radialBar({ + angle: 'Popularity', + radius: 'Genres', + title: 'Setting style for a preset' + }), + style: { + 'plot.xAxis.interlacing.color': '#ffffff00' + } + }) ] export default testSteps diff --git a/test/integration/tests/features/subtitle_caption.mjs b/test/integration/tests/features/subtitle_caption.mjs index 1ecea4e87..967734f34 100644 --- a/test/integration/tests/features/subtitle_caption.mjs +++ b/test/integration/tests/features/subtitle_caption.mjs @@ -1,33 +1,33 @@ const data = { - series: [ - { name: 'Dim0', type: 'dimension', values: ['a', 'b'] }, - { name: 'Meas0', type: 'measure', values: [-0.5, 1] }, - { name: 'Meas1', type: 'measure', values: [-0.3, 1] } - ] + series: [ + { name: 'Dim0', type: 'dimension', values: ['a', 'b'] }, + { name: 'Meas0', type: 'measure', values: [-0.5, 1] }, + { name: 'Meas1', type: 'measure', values: [-0.3, 1] } + ] } const testSteps = [ - (chart) => chart.animate({ data }), - (chart) => - chart.animate({ - x: 'Meas0', - y: 'Meas1', - label: 'Dim0', - title: 'Hello World', - subtitle: 'As a starting point', - caption: 'Source: Vizzu tutorial' - }), - (chart) => - chart.animate({ - title: null, - subtitle: null, - caption: 'Vizzu tutorial' - }), - (chart) => - chart.animate({ - subtitle: "I'm back", - caption: null - }) + (chart) => chart.animate({ data }), + (chart) => + chart.animate({ + x: 'Meas0', + y: 'Meas1', + label: 'Dim0', + title: 'Hello World', + subtitle: 'As a starting point', + caption: 'Source: Vizzu tutorial' + }), + (chart) => + chart.animate({ + title: null, + subtitle: null, + caption: 'Vizzu tutorial' + }), + (chart) => + chart.animate({ + subtitle: "I'm back", + caption: null + }) ] export default testSteps diff --git a/test/integration/tests/fixes.json b/test/integration/tests/fixes.json index 49d695ebe..8a6a403d9 100644 --- a/test/integration/tests/fixes.json +++ b/test/integration/tests/fixes.json @@ -1,38 +1,38 @@ { - "suite": "/test/integration/tests/fixes", - "test": { - "75": { - "refs": ["e97e29b"] - }, - "91": { - "refs": ["f48ff6d"] - }, - "144": { - "refs": ["259b701"] - }, - "146": { - "refs": ["f266a73"] - }, - "163": { - "refs": ["241592d"] - }, - "333": { - "refs": ["22c1f69"] - }, - "450": { - "refs": ["761380e"] - }, - "32303048": { - "refs": ["b5d95ea"] - }, - "38072036": { - "refs": ["2ad1738"] - }, - "41932946": { - "refs": ["bf6b3a9"] - }, - "42836788": { - "refs": ["b0eeac3"] - } - } + "suite": "/test/integration/tests/fixes", + "test": { + "75": { + "refs": ["e97e29b"] + }, + "91": { + "refs": ["f48ff6d"] + }, + "144": { + "refs": ["259b701"] + }, + "146": { + "refs": ["f266a73"] + }, + "163": { + "refs": ["241592d"] + }, + "333": { + "refs": ["22c1f69"] + }, + "450": { + "refs": ["761380e"] + }, + "32303048": { + "refs": ["b5d95ea"] + }, + "38072036": { + "refs": ["2ad1738"] + }, + "41932946": { + "refs": ["bf6b3a9"] + }, + "42836788": { + "refs": ["b0eeac3"] + } + } } diff --git a/test/integration/tests/fixes/144.mjs b/test/integration/tests/fixes/144.mjs index a88d342e8..f0dbbe9f6 100644 --- a/test/integration/tests/fixes/144.mjs +++ b/test/integration/tests/fixes/144.mjs @@ -1,47 +1,47 @@ /** Marker label color should be transformed. */ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] } + ] + } - return chart.animate({ data }) - }, - (chart) => - chart.animate({ - x: 'Foo', - y: 'Bar', - color: 'Foo', - label: 'Bar' - }), - (chart) => - chart.animate({ - style: { - plot: { - marker: { - label: { - color: '#00FF00' - } - } - } - } - }), - (chart) => - chart.animate({ - style: { - plot: { - marker: { - label: { - color: '#FF000030' - } - } - } - } - }) + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + x: 'Foo', + y: 'Bar', + color: 'Foo', + label: 'Bar' + }), + (chart) => + chart.animate({ + style: { + plot: { + marker: { + label: { + color: '#00FF00' + } + } + } + } + }), + (chart) => + chart.animate({ + style: { + plot: { + marker: { + label: { + color: '#FF000030' + } + } + } + } + }) ] export default testSteps diff --git a/test/integration/tests/fixes/146.mjs b/test/integration/tests/fixes/146.mjs index 498b89cd1..8de121f42 100644 --- a/test/integration/tests/fixes/146.mjs +++ b/test/integration/tests/fixes/146.mjs @@ -1,23 +1,23 @@ /** Title should not disapear from empty chart. */ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] }, - { name: 'Baz', values: [5, 3, 2] } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] }, + { name: 'Baz', values: [5, 3, 2] } + ] + } - return chart.animate({ data }) - }, - (chart) => chart.animate({ title: 'Test' }), - (chart) => - chart.animate({ - x: 'Foo', - y: 'Bar' - }) + return chart.animate({ data }) + }, + (chart) => chart.animate({ title: 'Test' }), + (chart) => + chart.animate({ + x: 'Foo', + y: 'Bar' + }) ] export default testSteps diff --git a/test/integration/tests/fixes/163.mjs b/test/integration/tests/fixes/163.mjs index 46712a7c3..549f5c2c7 100644 --- a/test/integration/tests/fixes/163.mjs +++ b/test/integration/tests/fixes/163.mjs @@ -1,23 +1,23 @@ /** Title should fade in beside the chart, not after. */ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] }, - { name: 'Baz', values: [5, 3, 2] } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] }, + { name: 'Baz', values: [5, 3, 2] } + ] + } - return chart.animate({ data }) - }, - (chart) => - chart.animate({ - x: 'Foo', - y: 'Bar', - title: 'Test' - }) + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + x: 'Foo', + y: 'Bar', + title: 'Test' + }) ] export default testSteps diff --git a/test/integration/tests/fixes/32303048.mjs b/test/integration/tests/fixes/32303048.mjs index 255966793..450faae67 100644 --- a/test/integration/tests/fixes/32303048.mjs +++ b/test/integration/tests/fixes/32303048.mjs @@ -1,25 +1,25 @@ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] } - ] - } - return chart.animate({ data }, 0) - }, - (chart) => { - return chart.animate( - { - data: { filter: (record) => record.Foo === 'Alice' }, - config: { - x: 'Foo', - y: ['Foo', 'Bar'] - } - }, - 0 - ) - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] } + ] + } + return chart.animate({ data }, 0) + }, + (chart) => { + return chart.animate( + { + data: { filter: (record) => record.Foo === 'Alice' }, + config: { + x: 'Foo', + y: ['Foo', 'Bar'] + } + }, + 0 + ) + } ] export default testSteps diff --git a/test/integration/tests/fixes/333.mjs b/test/integration/tests/fixes/333.mjs index 0f677a91f..701b42f92 100644 --- a/test/integration/tests/fixes/333.mjs +++ b/test/integration/tests/fixes/333.mjs @@ -1,23 +1,23 @@ /** Title should fade in beside the chart, not after. */ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['a', 'b', 'c', 'a', 'b', 'c'] }, - { name: 'Foo2', values: ['A', 'A', 'A', 'B', 'B', 'B'] }, - { name: 'Bar', values: [15, 32, 12, 3, 2] } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['a', 'b', 'c', 'a', 'b', 'c'] }, + { name: 'Foo2', values: ['A', 'A', 'A', 'B', 'B', 'B'] }, + { name: 'Bar', values: [15, 32, 12, 3, 2] } + ] + } - return chart.animate({ data }) - }, - (chart) => - chart.animate({ - color: 'Foo2', - x: { set: ['Foo2', 'Foo'], labelLevel: 1 }, - y: 'Bar' - }) + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + color: 'Foo2', + x: { set: ['Foo2', 'Foo'], labelLevel: 1 }, + y: 'Bar' + }) ] export default testSteps diff --git a/test/integration/tests/fixes/38072036.mjs b/test/integration/tests/fixes/38072036.mjs index 79aac2898..6920b1ab3 100644 --- a/test/integration/tests/fixes/38072036.mjs +++ b/test/integration/tests/fixes/38072036.mjs @@ -1,34 +1,34 @@ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] } - ] - } - return chart.animate({ data }, 0) - }, - (chart) => - chart.animate( - { - config: { - x: 'Foo', - y: ['Foo', 'Bar'] - } - }, - 1 - ), - (chart) => chart.animate({}, 2), - (chart) => - chart.animate( - { - config: { - x: ['Foo', 'Bar'], - y: 'Foo' - } - }, - 1 - ) + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] } + ] + } + return chart.animate({ data }, 0) + }, + (chart) => + chart.animate( + { + config: { + x: 'Foo', + y: ['Foo', 'Bar'] + } + }, + 1 + ), + (chart) => chart.animate({}, 2), + (chart) => + chart.animate( + { + config: { + x: ['Foo', 'Bar'], + y: 'Foo' + } + }, + 1 + ) ] export default testSteps diff --git a/test/integration/tests/fixes/41932946.mjs b/test/integration/tests/fixes/41932946.mjs index 6ab30d2d6..a34d7c8ad 100644 --- a/test/integration/tests/fixes/41932946.mjs +++ b/test/integration/tests/fixes/41932946.mjs @@ -1,25 +1,25 @@ const data = { - series: [ - { name: 'Year', type: 'dimension', values: [] }, - { name: 'Round2', type: 'dimension', values: [] }, - { name: 'Won', type: 'measure', values: [] } - ], - records: [ - [2005, 'First round', 1], - [2005, 'Second round', 1], - [2005, 'Third round', 1], - [2005, 'Fourth round', 0] - ] + series: [ + { name: 'Year', type: 'dimension', values: [] }, + { name: 'Round2', type: 'dimension', values: [] }, + { name: 'Won', type: 'measure', values: [] } + ], + records: [ + [2005, 'First round', 1], + [2005, 'Second round', 1], + [2005, 'Third round', 1], + [2005, 'Fourth round', 0] + ] } const testSteps = [ - (chart) => chart.animate({ data, config: { x: 'Year', y: 'Round2' } }), + (chart) => chart.animate({ data, config: { x: 'Year', y: 'Round2' } }), - (chart) => - chart.animate({ - config: { lightness: 'Won' }, - style: { plot: { marker: { maxLightness: 0, minLightness: 0.8 } } } - }) + (chart) => + chart.animate({ + config: { lightness: 'Won' }, + style: { plot: { marker: { maxLightness: 0, minLightness: 0.8 } } } + }) ] export default testSteps diff --git a/test/integration/tests/fixes/42836788.mjs b/test/integration/tests/fixes/42836788.mjs index a2d039f9c..3c9946ec6 100644 --- a/test/integration/tests/fixes/42836788.mjs +++ b/test/integration/tests/fixes/42836788.mjs @@ -1,41 +1,41 @@ const data = { - series: [ - { - name: 'Genres', - type: 'dimension', - values: ['Pop', 'Rock', 'Jazz', 'Metal', 'Pop', 'Rock', 'Metal', 'Rock', 'Jazz'] - }, - { - name: 'Kinds', - type: 'dimension', - values: [ - 'Hard', - 'Hard', - 'Hard', - 'Hard', - 'Smooth', - 'Smooth', - 'Smooth', - 'Experimental', - 'Experimental' - ] - } - ] + series: [ + { + name: 'Genres', + type: 'dimension', + values: ['Pop', 'Rock', 'Jazz', 'Metal', 'Pop', 'Rock', 'Metal', 'Rock', 'Jazz'] + }, + { + name: 'Kinds', + type: 'dimension', + values: [ + 'Hard', + 'Hard', + 'Hard', + 'Hard', + 'Smooth', + 'Smooth', + 'Smooth', + 'Experimental', + 'Experimental' + ] + } + ] } const testSteps = [ - (chart) => { - chart.feature('tooltip', true) - return chart.animate({ data }) - }, - (chart) => - chart.animate({ - x: 'Genres', - y: ['Kinds', 'Genres'], - color: 'Kinds', - lightness: 'Genres', - split: true - }) + (chart) => { + chart.feature('tooltip', true) + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + x: 'Genres', + y: ['Kinds', 'Genres'], + color: 'Kinds', + lightness: 'Genres', + split: true + }) ] export default testSteps diff --git a/test/integration/tests/fixes/450.mjs b/test/integration/tests/fixes/450.mjs index a5e770b60..3ceb75bfb 100644 --- a/test/integration/tests/fixes/450.mjs +++ b/test/integration/tests/fixes/450.mjs @@ -1,25 +1,25 @@ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['a', 'b', 'c', 'a', 'b', 'c'] }, - { name: 'Foo2', values: ['A', 'A', 'A', 'B', 'B', 'B'] }, - { name: 'Bar', values: [150000000, 32, 12, 3, 2, 10], unit: 'p' } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['a', 'b', 'c', 'a', 'b', 'c'] }, + { name: 'Foo2', values: ['A', 'A', 'A', 'B', 'B', 'B'] }, + { name: 'Bar', values: [150000000, 32, 12, 3, 2, 10], unit: 'p' } + ] + } - return chart.animate({ data }) - }, - (chart) => - chart.animate({ - config: { - x: { set: 'Foo2' }, - y: 'Bar', - color: 'Bar', - legend: 'color', - label: 'Bar' - } - }) + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + config: { + x: { set: 'Foo2' }, + y: 'Bar', + color: 'Bar', + legend: 'color', + label: 'Bar' + } + }) ] export default testSteps diff --git a/test/integration/tests/fixes/75.mjs b/test/integration/tests/fixes/75.mjs index 86d1691b9..5ec6b06d8 100644 --- a/test/integration/tests/fixes/75.mjs +++ b/test/integration/tests/fixes/75.mjs @@ -1,38 +1,38 @@ /** Events should be unregistered separately from each other. */ const eh = (e) => { - e.preventDefault() + e.preventDefault() } const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] }, - { name: 'Baz', values: [5, 3, 2] } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] }, + { name: 'Baz', values: [5, 3, 2] } + ] + } - return chart.animate({ data }) - }, - (chart) => { - chart.on('plot-axis-label-draw', eh) - chart.on('plot-marker-label-draw', eh) - return chart.animate({ - x: 'Foo', - y: 'Bar' - }) - }, - (chart) => { - chart.off('plot-axis-label-draw', eh) - chart.off('plot-marker-label-draw', eh) - return chart.animate({ - x: 'Foo', - y: 'Bar', - geometry: 'circle' - }) - } + return chart.animate({ data }) + }, + (chart) => { + chart.on('plot-axis-label-draw', eh) + chart.on('plot-marker-label-draw', eh) + return chart.animate({ + x: 'Foo', + y: 'Bar' + }) + }, + (chart) => { + chart.off('plot-axis-label-draw', eh) + chart.off('plot-marker-label-draw', eh) + return chart.animate({ + x: 'Foo', + y: 'Bar', + geometry: 'circle' + }) + } ] export default testSteps diff --git a/test/integration/tests/fixes/91.mjs b/test/integration/tests/fixes/91.mjs index 59d473a4b..f10266c27 100644 --- a/test/integration/tests/fixes/91.mjs +++ b/test/integration/tests/fixes/91.mjs @@ -1,24 +1,24 @@ const testSteps = [ - (chart) => - chart.animate({ - data: { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, - { name: 'Bar', values: [15, 32, 12] } - ] - } - }), - (chart) => - chart.animate({ - y: 'Foo', - x: 'Bar' - }), - (chart) => - chart.animate({ - color: 'Foo', - y: ['Bar', 'Foo'], - x: null - }) + (chart) => + chart.animate({ + data: { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', 'Ted'] }, + { name: 'Bar', values: [15, 32, 12] } + ] + } + }), + (chart) => + chart.animate({ + y: 'Foo', + x: 'Bar' + }), + (chart) => + chart.animate({ + color: 'Foo', + y: ['Bar', 'Foo'], + x: null + }) ] export default testSteps diff --git a/test/integration/tests/style_tests.json b/test/integration/tests/style_tests.json index 821a5454a..1139abd1f 100644 --- a/test/integration/tests/style_tests.json +++ b/test/integration/tests/style_tests.json @@ -1,1031 +1,1031 @@ { - "suite": "/test/integration/tests/style_tests", - "test": { - "plot/backgroundColor/hex/animated_black-white": { - "refs": ["d5034b9"] - }, - "plot/backgroundColor/hex/animated_blueCustom-yellowCustom": { - "refs": ["9a909d0"] - }, - "plot/backgroundColor/hex/animated_white-black": { - "refs": ["23ac860"] - }, - "plot/backgroundColor/hex/animated_yellowCustom-blueCustom": { - "refs": ["780535d"] - }, - "plot/backgroundColor/hex/static_black": { - "refs": ["034f6c7"] - }, - "plot/backgroundColor/hex/static_blue": { - "refs": ["57b2a83"] - }, - "plot/backgroundColor/hex/static_blueCustom": { - "refs": ["df6a3dc"] - }, - "plot/backgroundColor/hex/static_blueCustomLowerCase": { - "refs": ["df6a3dc"] - }, - "plot/backgroundColor/hex/static_cyan": { - "refs": ["3763c0a"] - }, - "plot/backgroundColor/hex/static_lime": { - "refs": ["3c80218"] - }, - "plot/backgroundColor/hex/static_magenta": { - "refs": ["75f8603"] - }, - "plot/backgroundColor/hex/static_red": { - "refs": ["22c108a"] - }, - "plot/backgroundColor/hex/static_white": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hex/static_yellow": { - "refs": ["57ecc48"] - }, - "plot/backgroundColor/hex/static_yellowCustom": { - "refs": ["d74a020"] - }, - "plot/backgroundColor/hex/static_yellowCustomLowerCase": { - "refs": ["d74a020"] - }, - "plot/backgroundColor/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["0b4b7d9"] - }, - "plot/backgroundColor/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["ec8049f"] - }, - "plot/backgroundColor/hexa/static_black_0.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hexa/static_black_0.25": { - "refs": ["ec0ad7d"] - }, - "plot/backgroundColor/hexa/static_black_0.50": { - "refs": ["8b44e98"] - }, - "plot/backgroundColor/hexa/static_black_0.75": { - "refs": ["c114016"] - }, - "plot/backgroundColor/hexa/static_black_1.00": { - "refs": ["034f6c7"] - }, - "plot/backgroundColor/hexa/static_blueCustomLowerCase_0.75": { - "refs": ["7b4e213"] - }, - "plot/backgroundColor/hexa/static_blueCustom_0.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hexa/static_blueCustom_0.25": { - "refs": ["03260dd"] - }, - "plot/backgroundColor/hexa/static_blueCustom_0.50": { - "refs": ["457879f"] - }, - "plot/backgroundColor/hexa/static_blueCustom_0.75": { - "refs": ["7b4e213"] - }, - "plot/backgroundColor/hexa/static_blueCustom_1.00": { - "refs": ["df6a3dc"] - }, - "plot/backgroundColor/hexa/static_white_0.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hexa/static_white_0.25": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hexa/static_white_0.50": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hexa/static_white_0.75": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hexa/static_white_1.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hexa/static_yellowCustomLowerCase_0.75": { - "refs": ["b5110f0"] - }, - "plot/backgroundColor/hexa/static_yellowCustom_0.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hexa/static_yellowCustom_0.25": { - "refs": ["c7a7a56"] - }, - "plot/backgroundColor/hexa/static_yellowCustom_0.50": { - "refs": ["2141418"] - }, - "plot/backgroundColor/hexa/static_yellowCustom_0.75": { - "refs": ["b5110f0"] - }, - "plot/backgroundColor/hexa/static_yellowCustom_1.00": { - "refs": ["d74a020"] - }, - "plot/backgroundColor/hexshort/animated_black-white": { - "refs": ["d5034b9"] - }, - "plot/backgroundColor/hexshort/animated_white-black": { - "refs": ["23ac860"] - }, - "plot/backgroundColor/hexshort/static_black": { - "refs": ["034f6c7"] - }, - "plot/backgroundColor/hexshort/static_blue": { - "refs": ["57b2a83"] - }, - "plot/backgroundColor/hexshort/static_cyan": { - "refs": ["3763c0a"] - }, - "plot/backgroundColor/hexshort/static_lime": { - "refs": ["3c80218"] - }, - "plot/backgroundColor/hexshort/static_magenta": { - "refs": ["75f8603"] - }, - "plot/backgroundColor/hexshort/static_red": { - "refs": ["22c108a"] - }, - "plot/backgroundColor/hexshort/static_white": { - "refs": ["4251172"] - }, - "plot/backgroundColor/hexshort/static_yellow": { - "refs": ["57ecc48"] - }, - "plot/backgroundColor/rgb/animated_black-white": { - "refs": ["d5034b9"] - }, - "plot/backgroundColor/rgb/animated_blueCustom-yellowCustom": { - "refs": ["9a909d0"] - }, - "plot/backgroundColor/rgb/animated_white-black": { - "refs": ["23ac860"] - }, - "plot/backgroundColor/rgb/animated_yellowCustom-blueCustom": { - "refs": ["780535d"] - }, - "plot/backgroundColor/rgb/static_black": { - "refs": ["034f6c7"] - }, - "plot/backgroundColor/rgb/static_blue": { - "refs": ["57b2a83"] - }, - "plot/backgroundColor/rgb/static_blueCustom": { - "refs": ["df6a3dc"] - }, - "plot/backgroundColor/rgb/static_blueCustomWithSpaces": { - "refs": ["df6a3dc"] - }, - "plot/backgroundColor/rgb/static_cyan": { - "refs": ["3763c0a"] - }, - "plot/backgroundColor/rgb/static_lime": { - "refs": ["3c80218"] - }, - "plot/backgroundColor/rgb/static_magenta": { - "refs": ["75f8603"] - }, - "plot/backgroundColor/rgb/static_red": { - "refs": ["22c108a"] - }, - "plot/backgroundColor/rgb/static_white": { - "refs": ["4251172"] - }, - "plot/backgroundColor/rgb/static_yellow": { - "refs": ["57ecc48"] - }, - "plot/backgroundColor/rgb/static_yellowCustom": { - "refs": ["d74a020"] - }, - "plot/backgroundColor/rgb/static_yellowCustomWithSpaces": { - "refs": ["d74a020"] - }, - "plot/backgroundColor/rgba/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["152f418"] - }, - "plot/backgroundColor/rgba/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["41a8581"] - }, - "plot/backgroundColor/rgba/static_black_0.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/rgba/static_black_0.25": { - "refs": ["d47642a"] - }, - "plot/backgroundColor/rgba/static_black_0.50": { - "refs": ["2211494"] - }, - "plot/backgroundColor/rgba/static_black_0.75": { - "refs": ["c114016"] - }, - "plot/backgroundColor/rgba/static_black_1.00": { - "refs": ["034f6c7"] - }, - "plot/backgroundColor/rgba/static_blueCustomWithSpaces_0.75": { - "refs": ["7b4e213"] - }, - "plot/backgroundColor/rgba/static_blueCustom_0.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/rgba/static_blueCustom_0.25": { - "refs": ["64a9fbc"] - }, - "plot/backgroundColor/rgba/static_blueCustom_0.50": { - "refs": ["f4f5f05"] - }, - "plot/backgroundColor/rgba/static_blueCustom_0.75": { - "refs": ["7b4e213"] - }, - "plot/backgroundColor/rgba/static_blueCustom_1.00": { - "refs": ["df6a3dc"] - }, - "plot/backgroundColor/rgba/static_white_0.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/rgba/static_white_0.25": { - "refs": ["4251172"] - }, - "plot/backgroundColor/rgba/static_white_0.50": { - "refs": ["4251172"] - }, - "plot/backgroundColor/rgba/static_white_0.75": { - "refs": ["4251172"] - }, - "plot/backgroundColor/rgba/static_white_1.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/rgba/static_yellowCustomWithSpaces_0.75": { - "refs": ["b5110f0"] - }, - "plot/backgroundColor/rgba/static_yellowCustom_0.00": { - "refs": ["4251172"] - }, - "plot/backgroundColor/rgba/static_yellowCustom_0.25": { - "refs": ["c402504"] - }, - "plot/backgroundColor/rgba/static_yellowCustom_0.50": { - "refs": ["8c3e375"] - }, - "plot/backgroundColor/rgba/static_yellowCustom_0.75": { - "refs": ["b5110f0"] - }, - "plot/backgroundColor/rgba/static_yellowCustom_1.00": { - "refs": ["d74a020"] - }, - "plot/borderColor/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["7646196"] - }, - "plot/borderColor/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["9aac412"] - }, - "plot/borderColor/hexa/static_blueCustom_0.25": { - "refs": ["1b2ccde"] - }, - "plot/borderColor/hexa/static_blueCustom_0.75": { - "refs": ["ec98dcf"] - }, - "plot/borderColor/hexa/static_yellowCustom_0.25": { - "refs": ["5548412"] - }, - "plot/borderColor/hexa/static_yellowCustom_0.75": { - "refs": ["e2d550a"] - }, - "plot/borderWidth/animated_1-100": { - "refs": ["984bf5f"] - }, - "plot/borderWidth/animated_100-1": { - "refs": ["2d97ce9"] - }, - "plot/borderWidth/static_1": { - "refs": ["5831e59"] - }, - "plot/borderWidth/static_10": { - "refs": ["c20c094"] - }, - "plot/borderWidth/static_100": { - "refs": ["13e1977"] - }, - "plot/paddingBottom/animated_150-350": { - "refs": ["3c1fd0e"] - }, - "plot/paddingBottom/animated_350-150": { - "refs": ["4e12d9c"] - }, - "plot/paddingBottom/static_150": { - "refs": ["40347e9"] - }, - "plot/paddingBottom/static_350": { - "refs": ["bb077a4"] - }, - "plot/paddingLeft/animated_150-350": { - "refs": ["3701954"] - }, - "plot/paddingLeft/animated_350-150": { - "refs": ["0acae19"] - }, - "plot/paddingLeft/static_150": { - "refs": ["f12ee6c"] - }, - "plot/paddingLeft/static_350": { - "refs": ["81395e2"] - }, - "plot/paddingRight/animated_150-350": { - "refs": ["9fbe46b"] - }, - "plot/paddingRight/animated_350-150": { - "refs": ["aca9cf3"] - }, - "plot/paddingRight/static_150": { - "refs": ["032bcf8"] - }, - "plot/paddingRight/static_350": { - "refs": ["76a2c11"] - }, - "plot/paddingTop/animated_150-350": { - "refs": ["8bbb892"] - }, - "plot/paddingTop/animated_350-150": { - "refs": ["cb7e382"] - }, - "plot/paddingTop/static_150": { - "refs": ["b5e6a3b"] - }, - "plot/paddingTop/static_350": { - "refs": ["9af5ee2"] - }, - "plot/xAxis/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["2521cbb"] - }, - "plot/xAxis/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["4299159"] - }, - "plot/xAxis/color/hexa/static_blueCustom_0.25": { - "refs": ["83ab233"] - }, - "plot/xAxis/color/hexa/static_blueCustom_0.75": { - "refs": ["5a970b3"] - }, - "plot/xAxis/color/hexa/static_yellowCustom_0.25": { - "refs": ["5d36253"] - }, - "plot/xAxis/color/hexa/static_yellowCustom_0.75": { - "refs": ["5969658"] - }, - "plot/xAxis/interlacing/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["b873614"] - }, - "plot/xAxis/interlacing/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["fa03982"] - }, - "plot/xAxis/interlacing/color/hexa/static_blueCustom_0.25": { - "refs": ["49d1fe3"] - }, - "plot/xAxis/interlacing/color/hexa/static_blueCustom_0.75": { - "refs": ["9deac7e"] - }, - "plot/xAxis/interlacing/color/hexa/static_yellowCustom_0.25": { - "refs": ["2085091"] - }, - "plot/xAxis/interlacing/color/hexa/static_yellowCustom_0.75": { - "refs": ["bdf046f"] - }, - "plot/xAxis/label/angle/deg/animated_90-135": { - "refs": ["bca3983"] - }, - "plot/xAxis/label/angle/deg/animated_90-225": { - "refs": ["d958392"] - }, - "plot/xAxis/label/angle/deg/animated_90-45": { - "refs": ["d958392"] - }, - "plot/xAxis/label/angle/deg/static_495": { - "refs": ["bcd1e8a"] - }, - "plot/xAxis/label/angle/deg/static_90": { - "refs": ["110aee8"] - }, - "plot/xAxis/label/angle/grad/animated_100-150": { - "refs": ["bca3983"] - }, - "plot/xAxis/label/angle/grad/animated_100-250": { - "refs": ["d958392"] - }, - "plot/xAxis/label/angle/grad/animated_100-50": { - "refs": ["d958392"] - }, - "plot/xAxis/label/angle/grad/static_100": { - "refs": ["110aee8"] - }, - "plot/xAxis/label/angle/grad/static_550": { - "refs": ["bcd1e8a"] - }, - "plot/xAxis/label/angle/number/animated_1.5708-0.7854": { - "refs": ["01b7da0"] - }, - "plot/xAxis/label/angle/number/animated_1.5708-2.3562": { - "refs": ["bca3983"] - }, - "plot/xAxis/label/angle/number/animated_1.5708-3.927": { - "refs": ["01b7da0"] - }, - "plot/xAxis/label/angle/number/static_1.5708": { - "refs": ["110aee8"] - }, - "plot/xAxis/label/angle/number/static_8.6394": { - "refs": ["bcd1e8a"] - }, - "plot/xAxis/label/angle/rad/animated_1.5708-0.7854": { - "refs": ["01b7da0"] - }, - "plot/xAxis/label/angle/rad/animated_1.5708-2.3562": { - "refs": ["bca3983"] - }, - "plot/xAxis/label/angle/rad/animated_1.5708-3.927": { - "refs": ["01b7da0"] - }, - "plot/xAxis/label/angle/rad/static_1.5708": { - "refs": ["110aee8"] - }, - "plot/xAxis/label/angle/rad/static_8.6394": { - "refs": ["bcd1e8a"] - }, - "plot/xAxis/label/angle/turn/animated_0.25-0.125": { - "refs": ["d958392"] - }, - "plot/xAxis/label/angle/turn/animated_0.25-0.375": { - "refs": ["bca3983"] - }, - "plot/xAxis/label/angle/turn/animated_0.25-0.625": { - "refs": ["d958392"] - }, - "plot/xAxis/label/angle/turn/static_0.25": { - "refs": ["110aee8"] - }, - "plot/xAxis/label/angle/turn/static_1.375": { - "refs": ["bcd1e8a"] - }, - "plot/xAxis/label/backgroundColor/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["110172a"] - }, - "plot/xAxis/label/backgroundColor/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["6f47a1e"] - }, - "plot/xAxis/label/backgroundColor/hexa/static_blueCustom_0.25": { - "refs": ["0946d59"] - }, - "plot/xAxis/label/backgroundColor/hexa/static_blueCustom_0.75": { - "refs": ["764bd8e"] - }, - "plot/xAxis/label/backgroundColor/hexa/static_yellowCustom_0.25": { - "refs": ["a4a941d"] - }, - "plot/xAxis/label/backgroundColor/hexa/static_yellowCustom_0.75": { - "refs": ["9217094"] - }, - "plot/xAxis/label/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["e3c5b88"] - }, - "plot/xAxis/label/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["c5c4457"] - }, - "plot/xAxis/label/color/hexa/static_blueCustom_0.25": { - "refs": ["8acc9fd"] - }, - "plot/xAxis/label/color/hexa/static_blueCustom_0.75": { - "refs": ["858296d"] - }, - "plot/xAxis/label/color/hexa/static_yellowCustom_0.25": { - "refs": ["d2a35c3"] - }, - "plot/xAxis/label/color/hexa/static_yellowCustom_0.75": { - "refs": ["31ddc27"] - }, - "plot/xAxis/label/fontSize/elementFontPercentage/animated_1-3": { - "refs": ["9d481d1"] - }, - "plot/xAxis/label/fontSize/elementFontPercentage/animated_3-1": { - "refs": ["b16e583"] - }, - "plot/xAxis/label/fontSize/elementFontPercentage/static_1": { - "refs": ["4251172"] - }, - "plot/xAxis/label/fontSize/elementFontPercentage/static_2": { - "refs": ["73bdc9d"] - }, - "plot/xAxis/label/fontSize/elementFontPercentage/static_3": { - "refs": ["2cf1850"] - }, - "plot/xAxis/label/fontSize/elementPercentage/animated_100-300": { - "refs": ["9d481d1"] - }, - "plot/xAxis/label/fontSize/elementPercentage/animated_300-100": { - "refs": ["b16e583"] - }, - "plot/xAxis/label/fontSize/elementPercentage/static_100": { - "refs": ["4251172"] - }, - "plot/xAxis/label/fontSize/elementPercentage/static_200": { - "refs": ["73bdc9d"] - }, - "plot/xAxis/label/fontSize/elementPercentage/static_300": { - "refs": ["2cf1850"] - }, - "plot/xAxis/label/fontSize/number/animated_1-50": { - "refs": ["4f374c7"] - }, - "plot/xAxis/label/fontSize/number/animated_50-1": { - "refs": ["1485628"] - }, - "plot/xAxis/label/fontSize/number/static_1": { - "refs": ["7e781d9"] - }, - "plot/xAxis/label/fontSize/number/static_10": { - "refs": ["75e520e"] - }, - "plot/xAxis/label/fontSize/number/static_50": { - "refs": ["75d972a"] - }, - "plot/xAxis/label/fontSize/pixel/animated_1-50": { - "refs": ["4f374c7"] - }, - "plot/xAxis/label/fontSize/pixel/animated_50-1": { - "refs": ["1485628"] - }, - "plot/xAxis/label/fontSize/pixel/static_1": { - "refs": ["7e781d9"] - }, - "plot/xAxis/label/fontSize/pixel/static_10": { - "refs": ["75e520e"] - }, - "plot/xAxis/label/fontSize/pixel/static_50": { - "refs": ["75d972a"] - }, - "plot/xAxis/label/fontStyle/animated_italic-normal": { - "refs": ["88958ca"] - }, - "plot/xAxis/label/fontStyle/animated_italic-oblique": { - "refs": ["b7242e6"] - }, - "plot/xAxis/label/fontStyle/animated_normal-italic": { - "refs": ["3de098c"] - }, - "plot/xAxis/label/fontStyle/animated_normal-oblique": { - "refs": ["3de098c"] - }, - "plot/xAxis/label/fontStyle/animated_oblique-italic": { - "refs": ["b7242e6"] - }, - "plot/xAxis/label/fontStyle/animated_oblique-normal": { - "refs": ["88958ca"] - }, - "plot/xAxis/label/fontStyle/static_italic": { - "refs": ["9648700"] - }, - "plot/xAxis/label/fontStyle/static_normal": { - "refs": ["4251172"] - }, - "plot/xAxis/label/fontStyle/static_oblique": { - "refs": ["9648700"] - }, - "plot/xAxis/label/fontWeight/animated_400-700": { - "refs": ["f8be22e"] - }, - "plot/xAxis/label/fontWeight/animated_700-400": { - "refs": ["c102f81"] - }, - "plot/xAxis/label/fontWeight/animated_bold-normal": { - "refs": ["c102f81"] - }, - "plot/xAxis/label/fontWeight/animated_normal-bold": { - "refs": ["f8be22e"] - }, - "plot/xAxis/label/fontWeight/static_100": { - "refs": ["ab2dd82"] - }, - "plot/xAxis/label/fontWeight/static_400": { - "refs": ["4251172"] - }, - "plot/xAxis/label/fontWeight/static_700": { - "refs": ["a8f1369"] - }, - "plot/xAxis/label/fontWeight/static_900": { - "refs": ["02a6a06"] - }, - "plot/xAxis/label/fontWeight/static_bold": { - "refs": ["a8f1369"] - }, - "plot/xAxis/label/fontWeight/static_normal": { - "refs": ["4251172"] - }, - "plot/xAxis/label/orientation/animated_horizontal-vertical": { - "refs": ["967329d"] - }, - "plot/xAxis/label/orientation/animated_normal-tangential": { - "refs": ["28dd4bd"] - }, - "plot/xAxis/label/orientation/animated_tangential-normal": { - "refs": ["59d8b1d"] - }, - "plot/xAxis/label/orientation/animated_vertical-horizontal": { - "refs": ["c57db2f"] - }, - "plot/xAxis/label/orientation/static_horizontal": { - "refs": ["4251172"] - }, - "plot/xAxis/label/orientation/static_normal": { - "refs": ["110aee8"] - }, - "plot/xAxis/label/orientation/static_tangential": { - "refs": ["4251172"] - }, - "plot/xAxis/label/orientation/static_vertical": { - "refs": ["110aee8"] - }, - "plot/xAxis/label/paddingBottom/animated_15-35": { - "refs": ["e94bf4f"] - }, - "plot/xAxis/label/paddingBottom/animated_35-15": { - "refs": ["f6f094b"] - }, - "plot/xAxis/label/paddingBottom/static_15": { - "refs": ["0ffdddc"] - }, - "plot/xAxis/label/paddingBottom/static_35": { - "refs": ["bdb0433"] - }, - "plot/xAxis/label/paddingLeft/animated_150-350": { - "refs": ["9d256e1"] - }, - "plot/xAxis/label/paddingLeft/animated_350-150": { - "refs": ["f0cc7d6"] - }, - "plot/xAxis/label/paddingLeft/static_150": { - "refs": ["01cc792"] - }, - "plot/xAxis/label/paddingLeft/static_350": { - "refs": ["d4a978f"] - }, - "plot/xAxis/label/paddingRight/animated_150-350": { - "refs": ["575f812"] - }, - "plot/xAxis/label/paddingRight/animated_350-150": { - "refs": ["535ac6b"] - }, - "plot/xAxis/label/paddingRight/static_150": { - "refs": ["a8f1f6e"] - }, - "plot/xAxis/label/paddingRight/static_350": { - "refs": ["e08e42c"] - }, - "plot/xAxis/label/paddingTop/animated_15-35": { - "refs": ["d3fb0c8"] - }, - "plot/xAxis/label/paddingTop/animated_35-15": { - "refs": ["f2e5051"] - }, - "plot/xAxis/label/paddingTop/static_15": { - "refs": ["8fe2e2c"] - }, - "plot/xAxis/label/paddingTop/static_35": { - "refs": ["64abf3b"] - }, - "plot/xAxis/label/position/animated_axis-max-edge": { - "refs": ["1206e5d"] - }, - "plot/xAxis/label/position/animated_axis-min-edge": { - "refs": ["94fe961"] - }, - "plot/xAxis/label/position/animated_max-edge-axis": { - "refs": ["65e5f80"] - }, - "plot/xAxis/label/position/animated_max-edge-min-edge": { - "refs": ["65e5f80"] - }, - "plot/xAxis/label/position/animated_min-edge-axis": { - "refs": ["94fe961"] - }, - "plot/xAxis/label/position/animated_min-edge-max-edge": { - "refs": ["1206e5d"] - }, - "plot/xAxis/label/position/static_axis": { - "refs": ["4251172"] - }, - "plot/xAxis/label/position/static_max-edge": { - "refs": ["645db3c"] - }, - "plot/xAxis/label/position/static_min-edge": { - "refs": ["4251172"] - }, - "plot/xAxis/label/side/animated_negative-positive": { - "refs": ["7d3dfdd"] - }, - "plot/xAxis/label/side/animated_positive-negative": { - "refs": ["018cb68"] - }, - "plot/xAxis/label/side/static_negative": { - "refs": ["4251172"] - }, - "plot/xAxis/label/side/static_positive": { - "refs": ["8bd64b1"] - }, - "plot/xAxis/label/textAlign/animated_center-left": { - "refs": ["0b33b15"] - }, - "plot/xAxis/label/textAlign/animated_center-right": { - "refs": ["0b33b15"] - }, - "plot/xAxis/label/textAlign/animated_left-center": { - "refs": ["0b33b15"] - }, - "plot/xAxis/label/textAlign/animated_left-right": { - "refs": ["0b33b15"] - }, - "plot/xAxis/label/textAlign/animated_right-center": { - "refs": ["0b33b15"] - }, - "plot/xAxis/label/textAlign/animated_right-left": { - "refs": ["0b33b15"] - }, - "plot/xAxis/label/textAlign/static_center": { - "refs": ["4251172"] - }, - "plot/xAxis/label/textAlign/static_left": { - "refs": ["4251172"] - }, - "plot/xAxis/label/textAlign/static_right": { - "refs": ["4251172"] - }, - "plot/xAxis/ticks/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["a360f87"] - }, - "plot/xAxis/ticks/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["d842ab2"] - }, - "plot/xAxis/ticks/color/hexa/static_blueCustom_0.25": { - "refs": ["6cbd421"] - }, - "plot/xAxis/ticks/color/hexa/static_blueCustom_0.75": { - "refs": ["a2ed2d4"] - }, - "plot/xAxis/ticks/color/hexa/static_yellowCustom_0.25": { - "refs": ["97dbfe4"] - }, - "plot/xAxis/ticks/color/hexa/static_yellowCustom_0.75": { - "refs": ["6589806"] - }, - "plot/xAxis/ticks/length/elementFontPercentage/animated_1-3": { - "refs": ["ee47f09"] - }, - "plot/xAxis/ticks/length/elementFontPercentage/animated_3-1": { - "refs": ["1f1df3f"] - }, - "plot/xAxis/ticks/length/elementFontPercentage/static_1": { - "refs": ["c45d541"] - }, - "plot/xAxis/ticks/length/elementFontPercentage/static_2": { - "refs": ["5a49004"] - }, - "plot/xAxis/ticks/length/elementFontPercentage/static_3": { - "refs": ["bdf6514"] - }, - "plot/xAxis/ticks/length/elementPercentage/animated_10-20": { - "refs": ["9e803f2"] - }, - "plot/xAxis/ticks/length/elementPercentage/animated_20-10": { - "refs": ["ceb4f9f"] - }, - "plot/xAxis/ticks/length/elementPercentage/static_10": { - "refs": ["37cee05"] - }, - "plot/xAxis/ticks/length/elementPercentage/static_15": { - "refs": ["c3d7997"] - }, - "plot/xAxis/ticks/length/elementPercentage/static_20": { - "refs": ["c22e9f5"] - }, - "plot/xAxis/ticks/length/number/animated_1-50": { - "refs": ["cdfe7d0"] - }, - "plot/xAxis/ticks/length/number/animated_50-1": { - "refs": ["6307e34"] - }, - "plot/xAxis/ticks/length/number/static_1": { - "refs": ["0910e0d"] - }, - "plot/xAxis/ticks/length/number/static_10": { - "refs": ["7892e9d"] - }, - "plot/xAxis/ticks/length/number/static_50": { - "refs": ["f47bfc1"] - }, - "plot/xAxis/ticks/length/pixel/animated_1-50": { - "refs": ["cdfe7d0"] - }, - "plot/xAxis/ticks/length/pixel/animated_50-1": { - "refs": ["6307e34"] - }, - "plot/xAxis/ticks/length/pixel/static_1": { - "refs": ["0910e0d"] - }, - "plot/xAxis/ticks/length/pixel/static_10": { - "refs": ["7892e9d"] - }, - "plot/xAxis/ticks/length/pixel/static_50": { - "refs": ["f47bfc1"] - }, - "plot/xAxis/ticks/lineWidth/animated_1-100": { - "refs": ["827e1c4"] - }, - "plot/xAxis/ticks/lineWidth/animated_100-1": { - "refs": ["262bea0"] - }, - "plot/xAxis/ticks/lineWidth/static_1": { - "refs": ["567dbdd"] - }, - "plot/xAxis/ticks/lineWidth/static_10": { - "refs": ["9357126"] - }, - "plot/xAxis/ticks/lineWidth/static_100": { - "refs": ["863c0ca"] - }, - "plot/xAxis/ticks/position/animated_center-inside": { - "refs": ["c2a09e6"] - }, - "plot/xAxis/ticks/position/animated_center-outside": { - "refs": ["876e456"] - }, - "plot/xAxis/ticks/position/animated_inside-center": { - "refs": ["63dee9d"] - }, - "plot/xAxis/ticks/position/animated_inside-outside": { - "refs": ["4b4f2c9"] - }, - "plot/xAxis/ticks/position/animated_outside-center": { - "refs": ["4e7fdb8"] - }, - "plot/xAxis/ticks/position/animated_outside-inside": { - "refs": ["9cd88ee"] - }, - "plot/xAxis/ticks/position/static_center": { - "refs": ["2486ad6"] - }, - "plot/xAxis/ticks/position/static_inside": { - "refs": ["5ebfff2"] - }, - "plot/xAxis/ticks/position/static_outside": { - "refs": ["567dbdd"] - }, - "plot/yAxis/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["7b02bd5"] - }, - "plot/yAxis/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["1672702"] - }, - "plot/yAxis/color/hexa/static_blueCustom_0.25": { - "refs": ["65faca5"] - }, - "plot/yAxis/color/hexa/static_blueCustom_0.75": { - "refs": ["ad68f51"] - }, - "plot/yAxis/color/hexa/static_yellowCustom_0.25": { - "refs": ["711532e"] - }, - "plot/yAxis/color/hexa/static_yellowCustom_0.75": { - "refs": ["615d692"] - }, - "plot/yAxis/interlacing/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["d9434bb"] - }, - "plot/yAxis/interlacing/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["b5578c4"] - }, - "plot/yAxis/interlacing/color/hexa/static_blueCustom_0.25": { - "refs": ["3d35d9a"] - }, - "plot/yAxis/interlacing/color/hexa/static_blueCustom_0.75": { - "refs": ["850cf0c"] - }, - "plot/yAxis/interlacing/color/hexa/static_yellowCustom_0.25": { - "refs": ["d7866b7"] - }, - "plot/yAxis/interlacing/color/hexa/static_yellowCustom_0.75": { - "refs": ["2a96474"] - }, - "plot/yAxis/ticks/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["5590621"] - }, - "plot/yAxis/ticks/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["f1a200b"] - }, - "plot/yAxis/ticks/color/hexa/static_blueCustom_0.25": { - "refs": ["61a1172"] - }, - "plot/yAxis/ticks/color/hexa/static_blueCustom_0.75": { - "refs": ["5de3659"] - }, - "plot/yAxis/ticks/color/hexa/static_yellowCustom_0.25": { - "refs": ["901cb0c"] - }, - "plot/yAxis/ticks/color/hexa/static_yellowCustom_0.75": { - "refs": ["0ae00e6"] - }, - "plot/yAxis/ticks/length/elementFontPercentage/animated_1-3": { - "refs": ["489228e"] - }, - "plot/yAxis/ticks/length/elementFontPercentage/animated_3-1": { - "refs": ["418c5ea"] - }, - "plot/yAxis/ticks/length/elementFontPercentage/static_1": { - "refs": ["ae6d047"] - }, - "plot/yAxis/ticks/length/elementFontPercentage/static_2": { - "refs": ["c965307"] - }, - "plot/yAxis/ticks/length/elementFontPercentage/static_3": { - "refs": ["b6b10ba"] - }, - "plot/yAxis/ticks/length/elementPercentage/animated_1-6": { - "refs": ["6bb90a8"] - }, - "plot/yAxis/ticks/length/elementPercentage/animated_6-1": { - "refs": ["d5eeeb3"] - }, - "plot/yAxis/ticks/length/elementPercentage/static_1": { - "refs": ["14f624e"] - }, - "plot/yAxis/ticks/length/elementPercentage/static_3": { - "refs": ["0b8e282"] - }, - "plot/yAxis/ticks/length/elementPercentage/static_6": { - "refs": ["11f8745"] - }, - "plot/yAxis/ticks/length/number/animated_1-50": { - "refs": ["af42a30"] - }, - "plot/yAxis/ticks/length/number/animated_50-1": { - "refs": ["fe683f9"] - }, - "plot/yAxis/ticks/length/number/static_1": { - "refs": ["552338a"] - }, - "plot/yAxis/ticks/length/number/static_10": { - "refs": ["997ff1a"] - }, - "plot/yAxis/ticks/length/number/static_50": { - "refs": ["67e7057"] - }, - "plot/yAxis/ticks/length/pixel/animated_1-50": { - "refs": ["af42a30"] - }, - "plot/yAxis/ticks/length/pixel/animated_50-1": { - "refs": ["fe683f9"] - }, - "plot/yAxis/ticks/length/pixel/static_1": { - "refs": ["552338a"] - }, - "plot/yAxis/ticks/length/pixel/static_10": { - "refs": ["997ff1a"] - }, - "plot/yAxis/ticks/length/pixel/static_50": { - "refs": ["67e7057"] - }, - "plot/yAxis/ticks/lineWidth/animated_1-10": { - "refs": ["1fcad7e"] - }, - "plot/yAxis/ticks/lineWidth/animated_10-1": { - "refs": ["2124ec9"] - }, - "plot/yAxis/ticks/lineWidth/static_1": { - "refs": ["aabb1c2"] - }, - "plot/yAxis/ticks/lineWidth/static_10": { - "refs": ["378ad88"] - }, - "plot/yAxis/ticks/position/animated_center-inside": { - "refs": ["7e39728"] - }, - "plot/yAxis/ticks/position/animated_center-outside": { - "refs": ["dee79a9"] - }, - "plot/yAxis/ticks/position/animated_inside-center": { - "refs": ["35d563c"] - }, - "plot/yAxis/ticks/position/animated_inside-outside": { - "refs": ["1b5c8e1"] - }, - "plot/yAxis/ticks/position/animated_outside-center": { - "refs": ["dd28705"] - }, - "plot/yAxis/ticks/position/animated_outside-inside": { - "refs": ["7ff41e9"] - }, - "plot/yAxis/ticks/position/static_center": { - "refs": ["2e55f6e"] - }, - "plot/yAxis/ticks/position/static_inside": { - "refs": ["3f8f4cf"] - }, - "plot/yAxis/ticks/position/static_outside": { - "refs": ["aabb1c2"] - } - } + "suite": "/test/integration/tests/style_tests", + "test": { + "plot/backgroundColor/hex/animated_black-white": { + "refs": ["d5034b9"] + }, + "plot/backgroundColor/hex/animated_blueCustom-yellowCustom": { + "refs": ["9a909d0"] + }, + "plot/backgroundColor/hex/animated_white-black": { + "refs": ["23ac860"] + }, + "plot/backgroundColor/hex/animated_yellowCustom-blueCustom": { + "refs": ["780535d"] + }, + "plot/backgroundColor/hex/static_black": { + "refs": ["034f6c7"] + }, + "plot/backgroundColor/hex/static_blue": { + "refs": ["57b2a83"] + }, + "plot/backgroundColor/hex/static_blueCustom": { + "refs": ["df6a3dc"] + }, + "plot/backgroundColor/hex/static_blueCustomLowerCase": { + "refs": ["df6a3dc"] + }, + "plot/backgroundColor/hex/static_cyan": { + "refs": ["3763c0a"] + }, + "plot/backgroundColor/hex/static_lime": { + "refs": ["3c80218"] + }, + "plot/backgroundColor/hex/static_magenta": { + "refs": ["75f8603"] + }, + "plot/backgroundColor/hex/static_red": { + "refs": ["22c108a"] + }, + "plot/backgroundColor/hex/static_white": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hex/static_yellow": { + "refs": ["57ecc48"] + }, + "plot/backgroundColor/hex/static_yellowCustom": { + "refs": ["d74a020"] + }, + "plot/backgroundColor/hex/static_yellowCustomLowerCase": { + "refs": ["d74a020"] + }, + "plot/backgroundColor/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["0b4b7d9"] + }, + "plot/backgroundColor/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["ec8049f"] + }, + "plot/backgroundColor/hexa/static_black_0.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hexa/static_black_0.25": { + "refs": ["ec0ad7d"] + }, + "plot/backgroundColor/hexa/static_black_0.50": { + "refs": ["8b44e98"] + }, + "plot/backgroundColor/hexa/static_black_0.75": { + "refs": ["c114016"] + }, + "plot/backgroundColor/hexa/static_black_1.00": { + "refs": ["034f6c7"] + }, + "plot/backgroundColor/hexa/static_blueCustomLowerCase_0.75": { + "refs": ["7b4e213"] + }, + "plot/backgroundColor/hexa/static_blueCustom_0.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hexa/static_blueCustom_0.25": { + "refs": ["03260dd"] + }, + "plot/backgroundColor/hexa/static_blueCustom_0.50": { + "refs": ["457879f"] + }, + "plot/backgroundColor/hexa/static_blueCustom_0.75": { + "refs": ["7b4e213"] + }, + "plot/backgroundColor/hexa/static_blueCustom_1.00": { + "refs": ["df6a3dc"] + }, + "plot/backgroundColor/hexa/static_white_0.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hexa/static_white_0.25": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hexa/static_white_0.50": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hexa/static_white_0.75": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hexa/static_white_1.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hexa/static_yellowCustomLowerCase_0.75": { + "refs": ["b5110f0"] + }, + "plot/backgroundColor/hexa/static_yellowCustom_0.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hexa/static_yellowCustom_0.25": { + "refs": ["c7a7a56"] + }, + "plot/backgroundColor/hexa/static_yellowCustom_0.50": { + "refs": ["2141418"] + }, + "plot/backgroundColor/hexa/static_yellowCustom_0.75": { + "refs": ["b5110f0"] + }, + "plot/backgroundColor/hexa/static_yellowCustom_1.00": { + "refs": ["d74a020"] + }, + "plot/backgroundColor/hexshort/animated_black-white": { + "refs": ["d5034b9"] + }, + "plot/backgroundColor/hexshort/animated_white-black": { + "refs": ["23ac860"] + }, + "plot/backgroundColor/hexshort/static_black": { + "refs": ["034f6c7"] + }, + "plot/backgroundColor/hexshort/static_blue": { + "refs": ["57b2a83"] + }, + "plot/backgroundColor/hexshort/static_cyan": { + "refs": ["3763c0a"] + }, + "plot/backgroundColor/hexshort/static_lime": { + "refs": ["3c80218"] + }, + "plot/backgroundColor/hexshort/static_magenta": { + "refs": ["75f8603"] + }, + "plot/backgroundColor/hexshort/static_red": { + "refs": ["22c108a"] + }, + "plot/backgroundColor/hexshort/static_white": { + "refs": ["4251172"] + }, + "plot/backgroundColor/hexshort/static_yellow": { + "refs": ["57ecc48"] + }, + "plot/backgroundColor/rgb/animated_black-white": { + "refs": ["d5034b9"] + }, + "plot/backgroundColor/rgb/animated_blueCustom-yellowCustom": { + "refs": ["9a909d0"] + }, + "plot/backgroundColor/rgb/animated_white-black": { + "refs": ["23ac860"] + }, + "plot/backgroundColor/rgb/animated_yellowCustom-blueCustom": { + "refs": ["780535d"] + }, + "plot/backgroundColor/rgb/static_black": { + "refs": ["034f6c7"] + }, + "plot/backgroundColor/rgb/static_blue": { + "refs": ["57b2a83"] + }, + "plot/backgroundColor/rgb/static_blueCustom": { + "refs": ["df6a3dc"] + }, + "plot/backgroundColor/rgb/static_blueCustomWithSpaces": { + "refs": ["df6a3dc"] + }, + "plot/backgroundColor/rgb/static_cyan": { + "refs": ["3763c0a"] + }, + "plot/backgroundColor/rgb/static_lime": { + "refs": ["3c80218"] + }, + "plot/backgroundColor/rgb/static_magenta": { + "refs": ["75f8603"] + }, + "plot/backgroundColor/rgb/static_red": { + "refs": ["22c108a"] + }, + "plot/backgroundColor/rgb/static_white": { + "refs": ["4251172"] + }, + "plot/backgroundColor/rgb/static_yellow": { + "refs": ["57ecc48"] + }, + "plot/backgroundColor/rgb/static_yellowCustom": { + "refs": ["d74a020"] + }, + "plot/backgroundColor/rgb/static_yellowCustomWithSpaces": { + "refs": ["d74a020"] + }, + "plot/backgroundColor/rgba/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["152f418"] + }, + "plot/backgroundColor/rgba/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["41a8581"] + }, + "plot/backgroundColor/rgba/static_black_0.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/rgba/static_black_0.25": { + "refs": ["d47642a"] + }, + "plot/backgroundColor/rgba/static_black_0.50": { + "refs": ["2211494"] + }, + "plot/backgroundColor/rgba/static_black_0.75": { + "refs": ["c114016"] + }, + "plot/backgroundColor/rgba/static_black_1.00": { + "refs": ["034f6c7"] + }, + "plot/backgroundColor/rgba/static_blueCustomWithSpaces_0.75": { + "refs": ["7b4e213"] + }, + "plot/backgroundColor/rgba/static_blueCustom_0.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/rgba/static_blueCustom_0.25": { + "refs": ["64a9fbc"] + }, + "plot/backgroundColor/rgba/static_blueCustom_0.50": { + "refs": ["f4f5f05"] + }, + "plot/backgroundColor/rgba/static_blueCustom_0.75": { + "refs": ["7b4e213"] + }, + "plot/backgroundColor/rgba/static_blueCustom_1.00": { + "refs": ["df6a3dc"] + }, + "plot/backgroundColor/rgba/static_white_0.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/rgba/static_white_0.25": { + "refs": ["4251172"] + }, + "plot/backgroundColor/rgba/static_white_0.50": { + "refs": ["4251172"] + }, + "plot/backgroundColor/rgba/static_white_0.75": { + "refs": ["4251172"] + }, + "plot/backgroundColor/rgba/static_white_1.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/rgba/static_yellowCustomWithSpaces_0.75": { + "refs": ["b5110f0"] + }, + "plot/backgroundColor/rgba/static_yellowCustom_0.00": { + "refs": ["4251172"] + }, + "plot/backgroundColor/rgba/static_yellowCustom_0.25": { + "refs": ["c402504"] + }, + "plot/backgroundColor/rgba/static_yellowCustom_0.50": { + "refs": ["8c3e375"] + }, + "plot/backgroundColor/rgba/static_yellowCustom_0.75": { + "refs": ["b5110f0"] + }, + "plot/backgroundColor/rgba/static_yellowCustom_1.00": { + "refs": ["d74a020"] + }, + "plot/borderColor/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["7646196"] + }, + "plot/borderColor/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["9aac412"] + }, + "plot/borderColor/hexa/static_blueCustom_0.25": { + "refs": ["1b2ccde"] + }, + "plot/borderColor/hexa/static_blueCustom_0.75": { + "refs": ["ec98dcf"] + }, + "plot/borderColor/hexa/static_yellowCustom_0.25": { + "refs": ["5548412"] + }, + "plot/borderColor/hexa/static_yellowCustom_0.75": { + "refs": ["e2d550a"] + }, + "plot/borderWidth/animated_1-100": { + "refs": ["984bf5f"] + }, + "plot/borderWidth/animated_100-1": { + "refs": ["2d97ce9"] + }, + "plot/borderWidth/static_1": { + "refs": ["5831e59"] + }, + "plot/borderWidth/static_10": { + "refs": ["c20c094"] + }, + "plot/borderWidth/static_100": { + "refs": ["13e1977"] + }, + "plot/paddingBottom/animated_150-350": { + "refs": ["3c1fd0e"] + }, + "plot/paddingBottom/animated_350-150": { + "refs": ["4e12d9c"] + }, + "plot/paddingBottom/static_150": { + "refs": ["40347e9"] + }, + "plot/paddingBottom/static_350": { + "refs": ["bb077a4"] + }, + "plot/paddingLeft/animated_150-350": { + "refs": ["3701954"] + }, + "plot/paddingLeft/animated_350-150": { + "refs": ["0acae19"] + }, + "plot/paddingLeft/static_150": { + "refs": ["f12ee6c"] + }, + "plot/paddingLeft/static_350": { + "refs": ["81395e2"] + }, + "plot/paddingRight/animated_150-350": { + "refs": ["9fbe46b"] + }, + "plot/paddingRight/animated_350-150": { + "refs": ["aca9cf3"] + }, + "plot/paddingRight/static_150": { + "refs": ["032bcf8"] + }, + "plot/paddingRight/static_350": { + "refs": ["76a2c11"] + }, + "plot/paddingTop/animated_150-350": { + "refs": ["8bbb892"] + }, + "plot/paddingTop/animated_350-150": { + "refs": ["cb7e382"] + }, + "plot/paddingTop/static_150": { + "refs": ["b5e6a3b"] + }, + "plot/paddingTop/static_350": { + "refs": ["9af5ee2"] + }, + "plot/xAxis/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["2521cbb"] + }, + "plot/xAxis/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["4299159"] + }, + "plot/xAxis/color/hexa/static_blueCustom_0.25": { + "refs": ["83ab233"] + }, + "plot/xAxis/color/hexa/static_blueCustom_0.75": { + "refs": ["5a970b3"] + }, + "plot/xAxis/color/hexa/static_yellowCustom_0.25": { + "refs": ["5d36253"] + }, + "plot/xAxis/color/hexa/static_yellowCustom_0.75": { + "refs": ["5969658"] + }, + "plot/xAxis/interlacing/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["b873614"] + }, + "plot/xAxis/interlacing/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["fa03982"] + }, + "plot/xAxis/interlacing/color/hexa/static_blueCustom_0.25": { + "refs": ["49d1fe3"] + }, + "plot/xAxis/interlacing/color/hexa/static_blueCustom_0.75": { + "refs": ["9deac7e"] + }, + "plot/xAxis/interlacing/color/hexa/static_yellowCustom_0.25": { + "refs": ["2085091"] + }, + "plot/xAxis/interlacing/color/hexa/static_yellowCustom_0.75": { + "refs": ["bdf046f"] + }, + "plot/xAxis/label/angle/deg/animated_90-135": { + "refs": ["bca3983"] + }, + "plot/xAxis/label/angle/deg/animated_90-225": { + "refs": ["d958392"] + }, + "plot/xAxis/label/angle/deg/animated_90-45": { + "refs": ["d958392"] + }, + "plot/xAxis/label/angle/deg/static_495": { + "refs": ["bcd1e8a"] + }, + "plot/xAxis/label/angle/deg/static_90": { + "refs": ["110aee8"] + }, + "plot/xAxis/label/angle/grad/animated_100-150": { + "refs": ["bca3983"] + }, + "plot/xAxis/label/angle/grad/animated_100-250": { + "refs": ["d958392"] + }, + "plot/xAxis/label/angle/grad/animated_100-50": { + "refs": ["d958392"] + }, + "plot/xAxis/label/angle/grad/static_100": { + "refs": ["110aee8"] + }, + "plot/xAxis/label/angle/grad/static_550": { + "refs": ["bcd1e8a"] + }, + "plot/xAxis/label/angle/number/animated_1.5708-0.7854": { + "refs": ["01b7da0"] + }, + "plot/xAxis/label/angle/number/animated_1.5708-2.3562": { + "refs": ["bca3983"] + }, + "plot/xAxis/label/angle/number/animated_1.5708-3.927": { + "refs": ["01b7da0"] + }, + "plot/xAxis/label/angle/number/static_1.5708": { + "refs": ["110aee8"] + }, + "plot/xAxis/label/angle/number/static_8.6394": { + "refs": ["bcd1e8a"] + }, + "plot/xAxis/label/angle/rad/animated_1.5708-0.7854": { + "refs": ["01b7da0"] + }, + "plot/xAxis/label/angle/rad/animated_1.5708-2.3562": { + "refs": ["bca3983"] + }, + "plot/xAxis/label/angle/rad/animated_1.5708-3.927": { + "refs": ["01b7da0"] + }, + "plot/xAxis/label/angle/rad/static_1.5708": { + "refs": ["110aee8"] + }, + "plot/xAxis/label/angle/rad/static_8.6394": { + "refs": ["bcd1e8a"] + }, + "plot/xAxis/label/angle/turn/animated_0.25-0.125": { + "refs": ["d958392"] + }, + "plot/xAxis/label/angle/turn/animated_0.25-0.375": { + "refs": ["bca3983"] + }, + "plot/xAxis/label/angle/turn/animated_0.25-0.625": { + "refs": ["d958392"] + }, + "plot/xAxis/label/angle/turn/static_0.25": { + "refs": ["110aee8"] + }, + "plot/xAxis/label/angle/turn/static_1.375": { + "refs": ["bcd1e8a"] + }, + "plot/xAxis/label/backgroundColor/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["110172a"] + }, + "plot/xAxis/label/backgroundColor/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["6f47a1e"] + }, + "plot/xAxis/label/backgroundColor/hexa/static_blueCustom_0.25": { + "refs": ["0946d59"] + }, + "plot/xAxis/label/backgroundColor/hexa/static_blueCustom_0.75": { + "refs": ["764bd8e"] + }, + "plot/xAxis/label/backgroundColor/hexa/static_yellowCustom_0.25": { + "refs": ["a4a941d"] + }, + "plot/xAxis/label/backgroundColor/hexa/static_yellowCustom_0.75": { + "refs": ["9217094"] + }, + "plot/xAxis/label/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["e3c5b88"] + }, + "plot/xAxis/label/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["c5c4457"] + }, + "plot/xAxis/label/color/hexa/static_blueCustom_0.25": { + "refs": ["8acc9fd"] + }, + "plot/xAxis/label/color/hexa/static_blueCustom_0.75": { + "refs": ["858296d"] + }, + "plot/xAxis/label/color/hexa/static_yellowCustom_0.25": { + "refs": ["d2a35c3"] + }, + "plot/xAxis/label/color/hexa/static_yellowCustom_0.75": { + "refs": ["31ddc27"] + }, + "plot/xAxis/label/fontSize/elementFontPercentage/animated_1-3": { + "refs": ["9d481d1"] + }, + "plot/xAxis/label/fontSize/elementFontPercentage/animated_3-1": { + "refs": ["b16e583"] + }, + "plot/xAxis/label/fontSize/elementFontPercentage/static_1": { + "refs": ["4251172"] + }, + "plot/xAxis/label/fontSize/elementFontPercentage/static_2": { + "refs": ["73bdc9d"] + }, + "plot/xAxis/label/fontSize/elementFontPercentage/static_3": { + "refs": ["2cf1850"] + }, + "plot/xAxis/label/fontSize/elementPercentage/animated_100-300": { + "refs": ["9d481d1"] + }, + "plot/xAxis/label/fontSize/elementPercentage/animated_300-100": { + "refs": ["b16e583"] + }, + "plot/xAxis/label/fontSize/elementPercentage/static_100": { + "refs": ["4251172"] + }, + "plot/xAxis/label/fontSize/elementPercentage/static_200": { + "refs": ["73bdc9d"] + }, + "plot/xAxis/label/fontSize/elementPercentage/static_300": { + "refs": ["2cf1850"] + }, + "plot/xAxis/label/fontSize/number/animated_1-50": { + "refs": ["4f374c7"] + }, + "plot/xAxis/label/fontSize/number/animated_50-1": { + "refs": ["1485628"] + }, + "plot/xAxis/label/fontSize/number/static_1": { + "refs": ["7e781d9"] + }, + "plot/xAxis/label/fontSize/number/static_10": { + "refs": ["75e520e"] + }, + "plot/xAxis/label/fontSize/number/static_50": { + "refs": ["75d972a"] + }, + "plot/xAxis/label/fontSize/pixel/animated_1-50": { + "refs": ["4f374c7"] + }, + "plot/xAxis/label/fontSize/pixel/animated_50-1": { + "refs": ["1485628"] + }, + "plot/xAxis/label/fontSize/pixel/static_1": { + "refs": ["7e781d9"] + }, + "plot/xAxis/label/fontSize/pixel/static_10": { + "refs": ["75e520e"] + }, + "plot/xAxis/label/fontSize/pixel/static_50": { + "refs": ["75d972a"] + }, + "plot/xAxis/label/fontStyle/animated_italic-normal": { + "refs": ["88958ca"] + }, + "plot/xAxis/label/fontStyle/animated_italic-oblique": { + "refs": ["b7242e6"] + }, + "plot/xAxis/label/fontStyle/animated_normal-italic": { + "refs": ["3de098c"] + }, + "plot/xAxis/label/fontStyle/animated_normal-oblique": { + "refs": ["3de098c"] + }, + "plot/xAxis/label/fontStyle/animated_oblique-italic": { + "refs": ["b7242e6"] + }, + "plot/xAxis/label/fontStyle/animated_oblique-normal": { + "refs": ["88958ca"] + }, + "plot/xAxis/label/fontStyle/static_italic": { + "refs": ["9648700"] + }, + "plot/xAxis/label/fontStyle/static_normal": { + "refs": ["4251172"] + }, + "plot/xAxis/label/fontStyle/static_oblique": { + "refs": ["9648700"] + }, + "plot/xAxis/label/fontWeight/animated_400-700": { + "refs": ["f8be22e"] + }, + "plot/xAxis/label/fontWeight/animated_700-400": { + "refs": ["c102f81"] + }, + "plot/xAxis/label/fontWeight/animated_bold-normal": { + "refs": ["c102f81"] + }, + "plot/xAxis/label/fontWeight/animated_normal-bold": { + "refs": ["f8be22e"] + }, + "plot/xAxis/label/fontWeight/static_100": { + "refs": ["ab2dd82"] + }, + "plot/xAxis/label/fontWeight/static_400": { + "refs": ["4251172"] + }, + "plot/xAxis/label/fontWeight/static_700": { + "refs": ["a8f1369"] + }, + "plot/xAxis/label/fontWeight/static_900": { + "refs": ["02a6a06"] + }, + "plot/xAxis/label/fontWeight/static_bold": { + "refs": ["a8f1369"] + }, + "plot/xAxis/label/fontWeight/static_normal": { + "refs": ["4251172"] + }, + "plot/xAxis/label/orientation/animated_horizontal-vertical": { + "refs": ["967329d"] + }, + "plot/xAxis/label/orientation/animated_normal-tangential": { + "refs": ["28dd4bd"] + }, + "plot/xAxis/label/orientation/animated_tangential-normal": { + "refs": ["59d8b1d"] + }, + "plot/xAxis/label/orientation/animated_vertical-horizontal": { + "refs": ["c57db2f"] + }, + "plot/xAxis/label/orientation/static_horizontal": { + "refs": ["4251172"] + }, + "plot/xAxis/label/orientation/static_normal": { + "refs": ["110aee8"] + }, + "plot/xAxis/label/orientation/static_tangential": { + "refs": ["4251172"] + }, + "plot/xAxis/label/orientation/static_vertical": { + "refs": ["110aee8"] + }, + "plot/xAxis/label/paddingBottom/animated_15-35": { + "refs": ["e94bf4f"] + }, + "plot/xAxis/label/paddingBottom/animated_35-15": { + "refs": ["f6f094b"] + }, + "plot/xAxis/label/paddingBottom/static_15": { + "refs": ["0ffdddc"] + }, + "plot/xAxis/label/paddingBottom/static_35": { + "refs": ["bdb0433"] + }, + "plot/xAxis/label/paddingLeft/animated_150-350": { + "refs": ["9d256e1"] + }, + "plot/xAxis/label/paddingLeft/animated_350-150": { + "refs": ["f0cc7d6"] + }, + "plot/xAxis/label/paddingLeft/static_150": { + "refs": ["01cc792"] + }, + "plot/xAxis/label/paddingLeft/static_350": { + "refs": ["d4a978f"] + }, + "plot/xAxis/label/paddingRight/animated_150-350": { + "refs": ["575f812"] + }, + "plot/xAxis/label/paddingRight/animated_350-150": { + "refs": ["535ac6b"] + }, + "plot/xAxis/label/paddingRight/static_150": { + "refs": ["a8f1f6e"] + }, + "plot/xAxis/label/paddingRight/static_350": { + "refs": ["e08e42c"] + }, + "plot/xAxis/label/paddingTop/animated_15-35": { + "refs": ["d3fb0c8"] + }, + "plot/xAxis/label/paddingTop/animated_35-15": { + "refs": ["f2e5051"] + }, + "plot/xAxis/label/paddingTop/static_15": { + "refs": ["8fe2e2c"] + }, + "plot/xAxis/label/paddingTop/static_35": { + "refs": ["64abf3b"] + }, + "plot/xAxis/label/position/animated_axis-max-edge": { + "refs": ["1206e5d"] + }, + "plot/xAxis/label/position/animated_axis-min-edge": { + "refs": ["94fe961"] + }, + "plot/xAxis/label/position/animated_max-edge-axis": { + "refs": ["65e5f80"] + }, + "plot/xAxis/label/position/animated_max-edge-min-edge": { + "refs": ["65e5f80"] + }, + "plot/xAxis/label/position/animated_min-edge-axis": { + "refs": ["94fe961"] + }, + "plot/xAxis/label/position/animated_min-edge-max-edge": { + "refs": ["1206e5d"] + }, + "plot/xAxis/label/position/static_axis": { + "refs": ["4251172"] + }, + "plot/xAxis/label/position/static_max-edge": { + "refs": ["645db3c"] + }, + "plot/xAxis/label/position/static_min-edge": { + "refs": ["4251172"] + }, + "plot/xAxis/label/side/animated_negative-positive": { + "refs": ["7d3dfdd"] + }, + "plot/xAxis/label/side/animated_positive-negative": { + "refs": ["018cb68"] + }, + "plot/xAxis/label/side/static_negative": { + "refs": ["4251172"] + }, + "plot/xAxis/label/side/static_positive": { + "refs": ["8bd64b1"] + }, + "plot/xAxis/label/textAlign/animated_center-left": { + "refs": ["0b33b15"] + }, + "plot/xAxis/label/textAlign/animated_center-right": { + "refs": ["0b33b15"] + }, + "plot/xAxis/label/textAlign/animated_left-center": { + "refs": ["0b33b15"] + }, + "plot/xAxis/label/textAlign/animated_left-right": { + "refs": ["0b33b15"] + }, + "plot/xAxis/label/textAlign/animated_right-center": { + "refs": ["0b33b15"] + }, + "plot/xAxis/label/textAlign/animated_right-left": { + "refs": ["0b33b15"] + }, + "plot/xAxis/label/textAlign/static_center": { + "refs": ["4251172"] + }, + "plot/xAxis/label/textAlign/static_left": { + "refs": ["4251172"] + }, + "plot/xAxis/label/textAlign/static_right": { + "refs": ["4251172"] + }, + "plot/xAxis/ticks/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["a360f87"] + }, + "plot/xAxis/ticks/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["d842ab2"] + }, + "plot/xAxis/ticks/color/hexa/static_blueCustom_0.25": { + "refs": ["6cbd421"] + }, + "plot/xAxis/ticks/color/hexa/static_blueCustom_0.75": { + "refs": ["a2ed2d4"] + }, + "plot/xAxis/ticks/color/hexa/static_yellowCustom_0.25": { + "refs": ["97dbfe4"] + }, + "plot/xAxis/ticks/color/hexa/static_yellowCustom_0.75": { + "refs": ["6589806"] + }, + "plot/xAxis/ticks/length/elementFontPercentage/animated_1-3": { + "refs": ["ee47f09"] + }, + "plot/xAxis/ticks/length/elementFontPercentage/animated_3-1": { + "refs": ["1f1df3f"] + }, + "plot/xAxis/ticks/length/elementFontPercentage/static_1": { + "refs": ["c45d541"] + }, + "plot/xAxis/ticks/length/elementFontPercentage/static_2": { + "refs": ["5a49004"] + }, + "plot/xAxis/ticks/length/elementFontPercentage/static_3": { + "refs": ["bdf6514"] + }, + "plot/xAxis/ticks/length/elementPercentage/animated_10-20": { + "refs": ["9e803f2"] + }, + "plot/xAxis/ticks/length/elementPercentage/animated_20-10": { + "refs": ["ceb4f9f"] + }, + "plot/xAxis/ticks/length/elementPercentage/static_10": { + "refs": ["37cee05"] + }, + "plot/xAxis/ticks/length/elementPercentage/static_15": { + "refs": ["c3d7997"] + }, + "plot/xAxis/ticks/length/elementPercentage/static_20": { + "refs": ["c22e9f5"] + }, + "plot/xAxis/ticks/length/number/animated_1-50": { + "refs": ["cdfe7d0"] + }, + "plot/xAxis/ticks/length/number/animated_50-1": { + "refs": ["6307e34"] + }, + "plot/xAxis/ticks/length/number/static_1": { + "refs": ["0910e0d"] + }, + "plot/xAxis/ticks/length/number/static_10": { + "refs": ["7892e9d"] + }, + "plot/xAxis/ticks/length/number/static_50": { + "refs": ["f47bfc1"] + }, + "plot/xAxis/ticks/length/pixel/animated_1-50": { + "refs": ["cdfe7d0"] + }, + "plot/xAxis/ticks/length/pixel/animated_50-1": { + "refs": ["6307e34"] + }, + "plot/xAxis/ticks/length/pixel/static_1": { + "refs": ["0910e0d"] + }, + "plot/xAxis/ticks/length/pixel/static_10": { + "refs": ["7892e9d"] + }, + "plot/xAxis/ticks/length/pixel/static_50": { + "refs": ["f47bfc1"] + }, + "plot/xAxis/ticks/lineWidth/animated_1-100": { + "refs": ["827e1c4"] + }, + "plot/xAxis/ticks/lineWidth/animated_100-1": { + "refs": ["262bea0"] + }, + "plot/xAxis/ticks/lineWidth/static_1": { + "refs": ["567dbdd"] + }, + "plot/xAxis/ticks/lineWidth/static_10": { + "refs": ["9357126"] + }, + "plot/xAxis/ticks/lineWidth/static_100": { + "refs": ["863c0ca"] + }, + "plot/xAxis/ticks/position/animated_center-inside": { + "refs": ["c2a09e6"] + }, + "plot/xAxis/ticks/position/animated_center-outside": { + "refs": ["876e456"] + }, + "plot/xAxis/ticks/position/animated_inside-center": { + "refs": ["63dee9d"] + }, + "plot/xAxis/ticks/position/animated_inside-outside": { + "refs": ["4b4f2c9"] + }, + "plot/xAxis/ticks/position/animated_outside-center": { + "refs": ["4e7fdb8"] + }, + "plot/xAxis/ticks/position/animated_outside-inside": { + "refs": ["9cd88ee"] + }, + "plot/xAxis/ticks/position/static_center": { + "refs": ["2486ad6"] + }, + "plot/xAxis/ticks/position/static_inside": { + "refs": ["5ebfff2"] + }, + "plot/xAxis/ticks/position/static_outside": { + "refs": ["567dbdd"] + }, + "plot/yAxis/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["7b02bd5"] + }, + "plot/yAxis/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["1672702"] + }, + "plot/yAxis/color/hexa/static_blueCustom_0.25": { + "refs": ["65faca5"] + }, + "plot/yAxis/color/hexa/static_blueCustom_0.75": { + "refs": ["ad68f51"] + }, + "plot/yAxis/color/hexa/static_yellowCustom_0.25": { + "refs": ["711532e"] + }, + "plot/yAxis/color/hexa/static_yellowCustom_0.75": { + "refs": ["615d692"] + }, + "plot/yAxis/interlacing/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["d9434bb"] + }, + "plot/yAxis/interlacing/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["b5578c4"] + }, + "plot/yAxis/interlacing/color/hexa/static_blueCustom_0.25": { + "refs": ["3d35d9a"] + }, + "plot/yAxis/interlacing/color/hexa/static_blueCustom_0.75": { + "refs": ["850cf0c"] + }, + "plot/yAxis/interlacing/color/hexa/static_yellowCustom_0.25": { + "refs": ["d7866b7"] + }, + "plot/yAxis/interlacing/color/hexa/static_yellowCustom_0.75": { + "refs": ["2a96474"] + }, + "plot/yAxis/ticks/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { + "refs": ["5590621"] + }, + "plot/yAxis/ticks/color/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { + "refs": ["f1a200b"] + }, + "plot/yAxis/ticks/color/hexa/static_blueCustom_0.25": { + "refs": ["61a1172"] + }, + "plot/yAxis/ticks/color/hexa/static_blueCustom_0.75": { + "refs": ["5de3659"] + }, + "plot/yAxis/ticks/color/hexa/static_yellowCustom_0.25": { + "refs": ["901cb0c"] + }, + "plot/yAxis/ticks/color/hexa/static_yellowCustom_0.75": { + "refs": ["0ae00e6"] + }, + "plot/yAxis/ticks/length/elementFontPercentage/animated_1-3": { + "refs": ["489228e"] + }, + "plot/yAxis/ticks/length/elementFontPercentage/animated_3-1": { + "refs": ["418c5ea"] + }, + "plot/yAxis/ticks/length/elementFontPercentage/static_1": { + "refs": ["ae6d047"] + }, + "plot/yAxis/ticks/length/elementFontPercentage/static_2": { + "refs": ["c965307"] + }, + "plot/yAxis/ticks/length/elementFontPercentage/static_3": { + "refs": ["b6b10ba"] + }, + "plot/yAxis/ticks/length/elementPercentage/animated_1-6": { + "refs": ["6bb90a8"] + }, + "plot/yAxis/ticks/length/elementPercentage/animated_6-1": { + "refs": ["d5eeeb3"] + }, + "plot/yAxis/ticks/length/elementPercentage/static_1": { + "refs": ["14f624e"] + }, + "plot/yAxis/ticks/length/elementPercentage/static_3": { + "refs": ["0b8e282"] + }, + "plot/yAxis/ticks/length/elementPercentage/static_6": { + "refs": ["11f8745"] + }, + "plot/yAxis/ticks/length/number/animated_1-50": { + "refs": ["af42a30"] + }, + "plot/yAxis/ticks/length/number/animated_50-1": { + "refs": ["fe683f9"] + }, + "plot/yAxis/ticks/length/number/static_1": { + "refs": ["552338a"] + }, + "plot/yAxis/ticks/length/number/static_10": { + "refs": ["997ff1a"] + }, + "plot/yAxis/ticks/length/number/static_50": { + "refs": ["67e7057"] + }, + "plot/yAxis/ticks/length/pixel/animated_1-50": { + "refs": ["af42a30"] + }, + "plot/yAxis/ticks/length/pixel/animated_50-1": { + "refs": ["fe683f9"] + }, + "plot/yAxis/ticks/length/pixel/static_1": { + "refs": ["552338a"] + }, + "plot/yAxis/ticks/length/pixel/static_10": { + "refs": ["997ff1a"] + }, + "plot/yAxis/ticks/length/pixel/static_50": { + "refs": ["67e7057"] + }, + "plot/yAxis/ticks/lineWidth/animated_1-10": { + "refs": ["1fcad7e"] + }, + "plot/yAxis/ticks/lineWidth/animated_10-1": { + "refs": ["2124ec9"] + }, + "plot/yAxis/ticks/lineWidth/static_1": { + "refs": ["aabb1c2"] + }, + "plot/yAxis/ticks/lineWidth/static_10": { + "refs": ["378ad88"] + }, + "plot/yAxis/ticks/position/animated_center-inside": { + "refs": ["7e39728"] + }, + "plot/yAxis/ticks/position/animated_center-outside": { + "refs": ["dee79a9"] + }, + "plot/yAxis/ticks/position/animated_inside-center": { + "refs": ["35d563c"] + }, + "plot/yAxis/ticks/position/animated_inside-outside": { + "refs": ["1b5c8e1"] + }, + "plot/yAxis/ticks/position/animated_outside-center": { + "refs": ["dd28705"] + }, + "plot/yAxis/ticks/position/animated_outside-inside": { + "refs": ["7ff41e9"] + }, + "plot/yAxis/ticks/position/static_center": { + "refs": ["2e55f6e"] + }, + "plot/yAxis/ticks/position/static_inside": { + "refs": ["3f8f4cf"] + }, + "plot/yAxis/ticks/position/static_outside": { + "refs": ["aabb1c2"] + } + } } diff --git a/test/integration/tests/style_tests/plot/backgroundColor/err.mjs b/test/integration/tests/style_tests/plot/backgroundColor/err.mjs index 7ad55ca73..3fa13ce90 100644 --- a/test/integration/tests/style_tests/plot/backgroundColor/err.mjs +++ b/test/integration/tests/style_tests/plot/backgroundColor/err.mjs @@ -1,96 +1,96 @@ import Chart from '../../../chart.mjs' const testCases = [ - { - testName: 'err_invalid_hex_digit-char', - errorMsg: 'error: invalid hexadecimal digit', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#ABCDEG' - } - } - }) - ] - }, - { - testName: 'err_invalid_hex_digit-spec', - errorMsg: 'error: invalid hexadecimal digit', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#00000!' - } - } - }) - ] - }, - { - testName: 'err_invalid_hex_digit-empty', - errorMsg: 'error: invalid color string', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#' - } - } - }) - ] - }, - { - testName: 'err_invalid_hex_digit-shorter', - errorMsg: 'error: invalid color string', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#00000' - } - } - }) - ] - }, - { - testName: 'err_invalid_hex_digit-longer', - errorMsg: 'error: invalid color string', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#00000' - } - } - }) - ] - }, - { - testName: 'err_string_color', - errorMsg: 'error: invalid color string', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'red' - } - } - }) - ] - } + { + testName: 'err_invalid_hex_digit-char', + errorMsg: 'error: invalid hexadecimal digit', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#ABCDEG' + } + } + }) + ] + }, + { + testName: 'err_invalid_hex_digit-spec', + errorMsg: 'error: invalid hexadecimal digit', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#00000!' + } + } + }) + ] + }, + { + testName: 'err_invalid_hex_digit-empty', + errorMsg: 'error: invalid color string', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#' + } + } + }) + ] + }, + { + testName: 'err_invalid_hex_digit-shorter', + errorMsg: 'error: invalid color string', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#00000' + } + } + }) + ] + }, + { + testName: 'err_invalid_hex_digit-longer', + errorMsg: 'error: invalid color string', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#00000' + } + } + }) + ] + }, + { + testName: 'err_string_color', + errorMsg: 'error: invalid color string', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'red' + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/backgroundColor/hex.mjs b/test/integration/tests/style_tests/plot/backgroundColor/hex.mjs index bfe229070..4097ca25b 100644 --- a/test/integration/tests/style_tests/plot/backgroundColor/hex.mjs +++ b/test/integration/tests/style_tests/plot/backgroundColor/hex.mjs @@ -1,258 +1,258 @@ import Chart from '../../../chart.mjs' const testCases = [ - { - testName: 'static_black', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#000000' - } - } - }) - ] - }, - { - testName: 'static_blue', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#0000FF' - } - } - }) - ] - }, - { - testName: 'static_blueCustom', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#1A2B3C' - } - } - }) - ] - }, - { - testName: 'static_blueCustomLowerCase', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#1a2b3c' - } - } - }) - ] - }, - { - testName: 'static_cyan', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#00FFFF' - } - } - }) - ] - }, - { - testName: 'static_lime', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#00FF00' - } - } - }) - ] - }, - { - testName: 'static_magenta', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FF00FF' - } - } - }) - ] - }, - { - testName: 'static_red', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FF0000' - } - } - }) - ] - }, - { - testName: 'static_white', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFFFFF' - } - } - }) - ] - }, - { - testName: 'static_yellow', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFFF00' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#E5D4C3' - } - } - }) - ] - }, - { - testName: 'static_yellowCustomLowerCase', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#e5d4c3' - } - } - }) - ] - }, - { - testName: 'animated_black-white', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#000000' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: '#FFFFFF' - } - } - }) - ] - }, - { - testName: 'animated_blueCustom-yellowCustom', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#1A2B3C' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: '#E5D4C3' - } - } - }) - ] - }, - { - testName: 'animated_white-black', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFFFFF' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: '#000000' - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom-blueCustom', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#E5D4C3' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: '#1A2B3C' - } - } - }) - ] - } + { + testName: 'static_black', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#000000' + } + } + }) + ] + }, + { + testName: 'static_blue', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#0000FF' + } + } + }) + ] + }, + { + testName: 'static_blueCustom', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#1A2B3C' + } + } + }) + ] + }, + { + testName: 'static_blueCustomLowerCase', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#1a2b3c' + } + } + }) + ] + }, + { + testName: 'static_cyan', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#00FFFF' + } + } + }) + ] + }, + { + testName: 'static_lime', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#00FF00' + } + } + }) + ] + }, + { + testName: 'static_magenta', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FF00FF' + } + } + }) + ] + }, + { + testName: 'static_red', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FF0000' + } + } + }) + ] + }, + { + testName: 'static_white', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFFFFF' + } + } + }) + ] + }, + { + testName: 'static_yellow', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFFF00' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#E5D4C3' + } + } + }) + ] + }, + { + testName: 'static_yellowCustomLowerCase', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#e5d4c3' + } + } + }) + ] + }, + { + testName: 'animated_black-white', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#000000' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: '#FFFFFF' + } + } + }) + ] + }, + { + testName: 'animated_blueCustom-yellowCustom', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#1A2B3C' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: '#E5D4C3' + } + } + }) + ] + }, + { + testName: 'animated_white-black', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFFFFF' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: '#000000' + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom-blueCustom', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#E5D4C3' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: '#1A2B3C' + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/backgroundColor/hexa.mjs b/test/integration/tests/style_tests/plot/backgroundColor/hexa.mjs index 1cd12a889..a0d5814ed 100644 --- a/test/integration/tests/style_tests/plot/backgroundColor/hexa.mjs +++ b/test/integration/tests/style_tests/plot/backgroundColor/hexa.mjs @@ -1,356 +1,356 @@ import Chart from '../../../chart.mjs' const testCases = [ - { - testName: 'static_black_0.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#00000000' - } - } - }) - ] - }, - { - testName: 'static_black_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#00000040' - } - } - }) - ] - }, - { - testName: 'static_black_0.50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#00000080' - } - } - }) - ] - }, - { - testName: 'static_black_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#000000BF' - } - } - }) - ] - }, - { - testName: 'static_black_1.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#000000FF' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#1A2B3C00' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#1A2B3C40' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#1A2B3C80' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#1A2B3CBF' - } - } - }) - ] - }, - { - testName: 'static_blueCustomLowerCase_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#1a2b3cbf' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_1.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#1A2B3CFF' - } - } - }) - ] - }, - { - testName: 'static_white_0.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFFFFF00' - } - } - }) - ] - }, - { - testName: 'static_white_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFFFFF40' - } - } - }) - ] - }, - { - testName: 'static_white_0.50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFFFFF80' - } - } - }) - ] - }, - { - testName: 'static_white_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFFFFFBF' - } - } - }) - ] - }, - { - testName: 'static_white_1.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFFFFFFF' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#E5D4C300' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#E5D4C340' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#E5D4C380' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#E5D4C3BF' - } - } - }) - ] - }, - { - testName: 'static_yellowCustomLowerCase_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#e5d4c3bf' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_1.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#E5D4C3FF' - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#E5D4C340' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: '#1A2B3CBF' - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#E5D4C3BF' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: '#1A2B3C40' - } - } - }) - ] - } + { + testName: 'static_black_0.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#00000000' + } + } + }) + ] + }, + { + testName: 'static_black_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#00000040' + } + } + }) + ] + }, + { + testName: 'static_black_0.50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#00000080' + } + } + }) + ] + }, + { + testName: 'static_black_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#000000BF' + } + } + }) + ] + }, + { + testName: 'static_black_1.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#000000FF' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#1A2B3C00' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#1A2B3C40' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#1A2B3C80' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#1A2B3CBF' + } + } + }) + ] + }, + { + testName: 'static_blueCustomLowerCase_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#1a2b3cbf' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_1.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#1A2B3CFF' + } + } + }) + ] + }, + { + testName: 'static_white_0.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFFFFF00' + } + } + }) + ] + }, + { + testName: 'static_white_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFFFFF40' + } + } + }) + ] + }, + { + testName: 'static_white_0.50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFFFFF80' + } + } + }) + ] + }, + { + testName: 'static_white_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFFFFFBF' + } + } + }) + ] + }, + { + testName: 'static_white_1.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFFFFFFF' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#E5D4C300' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#E5D4C340' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#E5D4C380' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#E5D4C3BF' + } + } + }) + ] + }, + { + testName: 'static_yellowCustomLowerCase_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#e5d4c3bf' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_1.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#E5D4C3FF' + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#E5D4C340' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: '#1A2B3CBF' + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#E5D4C3BF' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: '#1A2B3C40' + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/backgroundColor/hexshort.mjs b/test/integration/tests/style_tests/plot/backgroundColor/hexshort.mjs index 1ee4d8f07..b60f9230d 100644 --- a/test/integration/tests/style_tests/plot/backgroundColor/hexshort.mjs +++ b/test/integration/tests/style_tests/plot/backgroundColor/hexshort.mjs @@ -1,160 +1,160 @@ import Chart from '../../../chart.mjs' const testCases = [ - { - testName: 'static_black', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#000' - } - } - }) - ] - }, - { - testName: 'static_blue', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#00F' - } - } - }) - ] - }, - { - testName: 'static_cyan', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#0FF' - } - } - }) - ] - }, - { - testName: 'static_lime', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#0F0' - } - } - }) - ] - }, - { - testName: 'static_magenta', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#F0F' - } - } - }) - ] - }, - { - testName: 'static_red', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#F00' - } - } - }) - ] - }, - { - testName: 'static_white', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFF' - } - } - }) - ] - }, - { - testName: 'static_yellow', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FF0' - } - } - }) - ] - }, - { - testName: 'animated_black-white', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#000' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: '#FFF' - } - } - }) - ] - }, - { - testName: 'animated_white-black', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: '#FFF' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: '#000' - } - } - }) - ] - } + { + testName: 'static_black', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#000' + } + } + }) + ] + }, + { + testName: 'static_blue', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#00F' + } + } + }) + ] + }, + { + testName: 'static_cyan', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#0FF' + } + } + }) + ] + }, + { + testName: 'static_lime', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#0F0' + } + } + }) + ] + }, + { + testName: 'static_magenta', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#F0F' + } + } + }) + ] + }, + { + testName: 'static_red', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#F00' + } + } + }) + ] + }, + { + testName: 'static_white', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFF' + } + } + }) + ] + }, + { + testName: 'static_yellow', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FF0' + } + } + }) + ] + }, + { + testName: 'animated_black-white', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#000' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: '#FFF' + } + } + }) + ] + }, + { + testName: 'animated_white-black', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: '#FFF' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: '#000' + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/backgroundColor/rgb.mjs b/test/integration/tests/style_tests/plot/backgroundColor/rgb.mjs index 8e98dc595..e91c04c18 100644 --- a/test/integration/tests/style_tests/plot/backgroundColor/rgb.mjs +++ b/test/integration/tests/style_tests/plot/backgroundColor/rgb.mjs @@ -1,258 +1,258 @@ import Chart from '../../../chart.mjs' const testCases = [ - { - testName: 'static_black', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(0,0,0)' - } - } - }) - ] - }, - { - testName: 'static_blue', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(0,0,255)' - } - } - }) - ] - }, - { - testName: 'static_blueCustom', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(26,43,60)' - } - } - }) - ] - }, - { - testName: 'static_blueCustomWithSpaces', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(26, 43, 60)' - } - } - }) - ] - }, - { - testName: 'static_cyan', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(0,255,255)' - } - } - }) - ] - }, - { - testName: 'static_lime', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(0,255,0)' - } - } - }) - ] - }, - { - testName: 'static_magenta', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(255,0,255)' - } - } - }) - ] - }, - { - testName: 'static_red', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(255,0,0)' - } - } - }) - ] - }, - { - testName: 'static_white', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(255,255,255)' - } - } - }) - ] - }, - { - testName: 'static_yellow', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(255,255,0)' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(229,212,195)' - } - } - }) - ] - }, - { - testName: 'static_yellowCustomWithSpaces', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(229, 212, 195)' - } - } - }) - ] - }, - { - testName: 'animated_black-white', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(0,0,0)' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: 'rgb(255,255,255)' - } - } - }) - ] - }, - { - testName: 'animated_blueCustom-yellowCustom', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(26,43,60)' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: 'rgb(229,212,195)' - } - } - }) - ] - }, - { - testName: 'animated_white-black', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(255,255,255)' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: 'rgb(0,0,0)' - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom-blueCustom', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgb(229,212,195)' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: 'rgb(26,43,60)' - } - } - }) - ] - } + { + testName: 'static_black', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(0,0,0)' + } + } + }) + ] + }, + { + testName: 'static_blue', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(0,0,255)' + } + } + }) + ] + }, + { + testName: 'static_blueCustom', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(26,43,60)' + } + } + }) + ] + }, + { + testName: 'static_blueCustomWithSpaces', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(26, 43, 60)' + } + } + }) + ] + }, + { + testName: 'static_cyan', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(0,255,255)' + } + } + }) + ] + }, + { + testName: 'static_lime', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(0,255,0)' + } + } + }) + ] + }, + { + testName: 'static_magenta', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(255,0,255)' + } + } + }) + ] + }, + { + testName: 'static_red', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(255,0,0)' + } + } + }) + ] + }, + { + testName: 'static_white', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(255,255,255)' + } + } + }) + ] + }, + { + testName: 'static_yellow', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(255,255,0)' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(229,212,195)' + } + } + }) + ] + }, + { + testName: 'static_yellowCustomWithSpaces', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(229, 212, 195)' + } + } + }) + ] + }, + { + testName: 'animated_black-white', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(0,0,0)' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: 'rgb(255,255,255)' + } + } + }) + ] + }, + { + testName: 'animated_blueCustom-yellowCustom', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(26,43,60)' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: 'rgb(229,212,195)' + } + } + }) + ] + }, + { + testName: 'animated_white-black', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(255,255,255)' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: 'rgb(0,0,0)' + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom-blueCustom', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgb(229,212,195)' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: 'rgb(26,43,60)' + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/backgroundColor/rgba.mjs b/test/integration/tests/style_tests/plot/backgroundColor/rgba.mjs index 79105bb84..3682ca062 100644 --- a/test/integration/tests/style_tests/plot/backgroundColor/rgba.mjs +++ b/test/integration/tests/style_tests/plot/backgroundColor/rgba.mjs @@ -1,356 +1,356 @@ import Chart from '../../../chart.mjs' const testCases = [ - { - testName: 'static_black_0.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(0,0,0,0.00)' - } - } - }) - ] - }, - { - testName: 'static_black_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(0,0,0,0.25)' - } - } - }) - ] - }, - { - testName: 'static_black_0.50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(0,0,0,0.50)' - } - } - }) - ] - }, - { - testName: 'static_black_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(0,0,0,0.75)' - } - } - }) - ] - }, - { - testName: 'static_black_1.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(0,0,0,1.00)' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(26,43,60,0.00)' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(26,43,60,0.25)' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(26,43,60,0.50)' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(26,43,60,0.75)' - } - } - }) - ] - }, - { - testName: 'static_blueCustomWithSpaces_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(26, 43, 60, 0.75)' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_1.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(26,43,60,1.00)' - } - } - }) - ] - }, - { - testName: 'static_white_0.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(255,255,255,0.00)' - } - } - }) - ] - }, - { - testName: 'static_white_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(255,255,255,0.25)' - } - } - }) - ] - }, - { - testName: 'static_white_0.50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(255,255,255,0.50)' - } - } - }) - ] - }, - { - testName: 'static_white_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(255,255,255,0.75)' - } - } - }) - ] - }, - { - testName: 'static_white_1.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(255,255,255,1.00)' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(229,212,195,0.00)' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(229,212,195,0.25)' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(229,212,195,0.50)' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(229,212,195,0.75)' - } - } - }) - ] - }, - { - testName: 'static_yellowCustomWithSpaces_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(229,212,195,0.75)' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_1.00', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(229,212,195,1.00)' - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(229,212,195,0.25)' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: 'rgba(26,43,60,0.75)' - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - backgroundColor: 'rgba(229,212,195,0.75)' - } - } - }), - Chart.animate({ - style: { - plot: { - backgroundColor: 'rgba(26,43,60,0.25)' - } - } - }) - ] - } + { + testName: 'static_black_0.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(0,0,0,0.00)' + } + } + }) + ] + }, + { + testName: 'static_black_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(0,0,0,0.25)' + } + } + }) + ] + }, + { + testName: 'static_black_0.50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(0,0,0,0.50)' + } + } + }) + ] + }, + { + testName: 'static_black_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(0,0,0,0.75)' + } + } + }) + ] + }, + { + testName: 'static_black_1.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(0,0,0,1.00)' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(26,43,60,0.00)' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(26,43,60,0.25)' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(26,43,60,0.50)' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(26,43,60,0.75)' + } + } + }) + ] + }, + { + testName: 'static_blueCustomWithSpaces_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(26, 43, 60, 0.75)' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_1.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(26,43,60,1.00)' + } + } + }) + ] + }, + { + testName: 'static_white_0.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(255,255,255,0.00)' + } + } + }) + ] + }, + { + testName: 'static_white_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(255,255,255,0.25)' + } + } + }) + ] + }, + { + testName: 'static_white_0.50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(255,255,255,0.50)' + } + } + }) + ] + }, + { + testName: 'static_white_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(255,255,255,0.75)' + } + } + }) + ] + }, + { + testName: 'static_white_1.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(255,255,255,1.00)' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(229,212,195,0.00)' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(229,212,195,0.25)' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(229,212,195,0.50)' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(229,212,195,0.75)' + } + } + }) + ] + }, + { + testName: 'static_yellowCustomWithSpaces_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(229,212,195,0.75)' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_1.00', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(229,212,195,1.00)' + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(229,212,195,0.25)' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: 'rgba(26,43,60,0.75)' + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + backgroundColor: 'rgba(229,212,195,0.75)' + } + } + }), + Chart.animate({ + style: { + plot: { + backgroundColor: 'rgba(26,43,60,0.25)' + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/borderColor/hexa.mjs b/test/integration/tests/style_tests/plot/borderColor/hexa.mjs index 12873b8c4..cc60cf76a 100644 --- a/test/integration/tests/style_tests/plot/borderColor/hexa.mjs +++ b/test/integration/tests/style_tests/plot/borderColor/hexa.mjs @@ -1,110 +1,110 @@ import Chart from '../../../chart.mjs' const testCases = [ - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 5, - borderColor: '#1A2B3C40' - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 5, - borderColor: '#1A2B3CBF' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 5, - borderColor: '#E5D4C340' - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 5, - borderColor: '#E5D4C3BF' - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 5, - borderColor: '#E5D4C340' - } - } - }), - Chart.animate({ - style: { - plot: { - borderColor: '#1A2B3CBF' - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 5, - borderColor: '#E5D4C3BF' - } - } - }), - Chart.animate({ - style: { - plot: { - borderColor: '#1A2B3C40' - } - } - }) - ] - } + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 5, + borderColor: '#1A2B3C40' + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 5, + borderColor: '#1A2B3CBF' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 5, + borderColor: '#E5D4C340' + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 5, + borderColor: '#E5D4C3BF' + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 5, + borderColor: '#E5D4C340' + } + } + }), + Chart.animate({ + style: { + plot: { + borderColor: '#1A2B3CBF' + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 5, + borderColor: '#E5D4C3BF' + } + } + }), + Chart.animate({ + style: { + plot: { + borderColor: '#1A2B3C40' + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/borderWidth.mjs b/test/integration/tests/style_tests/plot/borderWidth.mjs index cb7dc03ea..085cf896a 100644 --- a/test/integration/tests/style_tests/plot/borderWidth.mjs +++ b/test/integration/tests/style_tests/plot/borderWidth.mjs @@ -1,97 +1,97 @@ import Chart from '../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 1, - borderColor: '#000000' - } - } - }) - ] - }, - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 10, - borderColor: '#000000' - } - } - }) - ] - }, - { - testName: 'static_100', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 100, - borderColor: '#000000' - } - } - }) - ] - }, - { - testName: 'animated_1-100', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 1, - borderColor: '#000000' - } - } - }), - Chart.animate({ - style: { - plot: { - borderWidth: 100, - borderColor: '#000000' - } - } - }) - ] - }, - { - testName: 'animated_100-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - borderWidth: 100, - borderColor: '#000000' - } - } - }), - Chart.animate({ - style: { - plot: { - borderWidth: 1, - borderColor: '#000000' - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 1, + borderColor: '#000000' + } + } + }) + ] + }, + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 10, + borderColor: '#000000' + } + } + }) + ] + }, + { + testName: 'static_100', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 100, + borderColor: '#000000' + } + } + }) + ] + }, + { + testName: 'animated_1-100', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 1, + borderColor: '#000000' + } + } + }), + Chart.animate({ + style: { + plot: { + borderWidth: 100, + borderColor: '#000000' + } + } + }) + ] + }, + { + testName: 'animated_100-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + borderWidth: 100, + borderColor: '#000000' + } + } + }), + Chart.animate({ + style: { + plot: { + borderWidth: 1, + borderColor: '#000000' + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/paddingBottom.mjs b/test/integration/tests/style_tests/plot/paddingBottom.mjs index e53c27021..d6a8f9c9b 100644 --- a/test/integration/tests/style_tests/plot/paddingBottom.mjs +++ b/test/integration/tests/style_tests/plot/paddingBottom.mjs @@ -1,76 +1,76 @@ import Chart from '../../chart.mjs' const testCases = [ - { - testName: 'static_150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingBottom: 150 - } - } - }) - ] - }, - { - testName: 'static_350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingBottom: 350 - } - } - }) - ] - }, - { - testName: 'animated_150-350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingBottom: 150 - } - } - }), - Chart.animate({ - style: { - plot: { - paddingBottom: 350 - } - } - }) - ] - }, - { - testName: 'animated_350-150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingBottom: 350 - } - } - }), - Chart.animate({ - style: { - plot: { - paddingBottom: 150 - } - } - }) - ] - } + { + testName: 'static_150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingBottom: 150 + } + } + }) + ] + }, + { + testName: 'static_350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingBottom: 350 + } + } + }) + ] + }, + { + testName: 'animated_150-350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingBottom: 150 + } + } + }), + Chart.animate({ + style: { + plot: { + paddingBottom: 350 + } + } + }) + ] + }, + { + testName: 'animated_350-150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingBottom: 350 + } + } + }), + Chart.animate({ + style: { + plot: { + paddingBottom: 150 + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/paddingLeft.mjs b/test/integration/tests/style_tests/plot/paddingLeft.mjs index ab7d62a23..0474dde73 100644 --- a/test/integration/tests/style_tests/plot/paddingLeft.mjs +++ b/test/integration/tests/style_tests/plot/paddingLeft.mjs @@ -1,76 +1,76 @@ import Chart from '../../chart.mjs' const testCases = [ - { - testName: 'static_150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingLeft: 150 - } - } - }) - ] - }, - { - testName: 'static_350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingLeft: 350 - } - } - }) - ] - }, - { - testName: 'animated_150-350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingLeft: 150 - } - } - }), - Chart.animate({ - style: { - plot: { - paddingLeft: 350 - } - } - }) - ] - }, - { - testName: 'animated_350-150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingLeft: 350 - } - } - }), - Chart.animate({ - style: { - plot: { - paddingLeft: 150 - } - } - }) - ] - } + { + testName: 'static_150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingLeft: 150 + } + } + }) + ] + }, + { + testName: 'static_350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingLeft: 350 + } + } + }) + ] + }, + { + testName: 'animated_150-350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingLeft: 150 + } + } + }), + Chart.animate({ + style: { + plot: { + paddingLeft: 350 + } + } + }) + ] + }, + { + testName: 'animated_350-150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingLeft: 350 + } + } + }), + Chart.animate({ + style: { + plot: { + paddingLeft: 150 + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/paddingRight.mjs b/test/integration/tests/style_tests/plot/paddingRight.mjs index 9d98518e6..c12b71586 100644 --- a/test/integration/tests/style_tests/plot/paddingRight.mjs +++ b/test/integration/tests/style_tests/plot/paddingRight.mjs @@ -1,76 +1,76 @@ import Chart from '../../chart.mjs' const testCases = [ - { - testName: 'static_150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingRight: 150 - } - } - }) - ] - }, - { - testName: 'static_350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingRight: 350 - } - } - }) - ] - }, - { - testName: 'animated_150-350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingRight: 150 - } - } - }), - Chart.animate({ - style: { - plot: { - paddingRight: 350 - } - } - }) - ] - }, - { - testName: 'animated_350-150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingRight: 350 - } - } - }), - Chart.animate({ - style: { - plot: { - paddingRight: 150 - } - } - }) - ] - } + { + testName: 'static_150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingRight: 150 + } + } + }) + ] + }, + { + testName: 'static_350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingRight: 350 + } + } + }) + ] + }, + { + testName: 'animated_150-350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingRight: 150 + } + } + }), + Chart.animate({ + style: { + plot: { + paddingRight: 350 + } + } + }) + ] + }, + { + testName: 'animated_350-150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingRight: 350 + } + } + }), + Chart.animate({ + style: { + plot: { + paddingRight: 150 + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/paddingTop.mjs b/test/integration/tests/style_tests/plot/paddingTop.mjs index 8b22b8823..1f52b4bd8 100644 --- a/test/integration/tests/style_tests/plot/paddingTop.mjs +++ b/test/integration/tests/style_tests/plot/paddingTop.mjs @@ -1,76 +1,76 @@ import Chart from '../../chart.mjs' const testCases = [ - { - testName: 'static_150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingTop: 150 - } - } - }) - ] - }, - { - testName: 'static_350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingTop: 350 - } - } - }) - ] - }, - { - testName: 'animated_150-350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingTop: 150 - } - } - }), - Chart.animate({ - style: { - plot: { - paddingTop: 350 - } - } - }) - ] - }, - { - testName: 'animated_350-150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - paddingTop: 350 - } - } - }), - Chart.animate({ - style: { - plot: { - paddingTop: 150 - } - } - }) - ] - } + { + testName: 'static_150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingTop: 150 + } + } + }) + ] + }, + { + testName: 'static_350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingTop: 350 + } + } + }) + ] + }, + { + testName: 'animated_150-350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingTop: 150 + } + } + }), + Chart.animate({ + style: { + plot: { + paddingTop: 350 + } + } + }) + ] + }, + { + testName: 'animated_350-150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + paddingTop: 350 + } + } + }), + Chart.animate({ + style: { + plot: { + paddingTop: 150 + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/color/hexa.mjs b/test/integration/tests/style_tests/plot/xAxis/color/hexa.mjs index 13620eec0..ba41d317c 100644 --- a/test/integration/tests/style_tests/plot/xAxis/color/hexa.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/color/hexa.mjs @@ -1,120 +1,120 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - color: '#1A2B3C40' - } - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - color: '#1A2B3CBF' - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - color: '#E5D4C340' - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - color: '#E5D4C3BF' - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - color: '#E5D4C340' - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - color: '#1A2B3CBF' - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - color: '#E5D4C3BF' - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - color: '#1A2B3C40' - } - } - } - }) - ] - } + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + color: '#1A2B3C40' + } + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + color: '#1A2B3CBF' + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + color: '#E5D4C340' + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + color: '#E5D4C3BF' + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + color: '#E5D4C340' + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + color: '#1A2B3CBF' + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + color: '#E5D4C3BF' + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + color: '#1A2B3C40' + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs b/test/integration/tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs index f5e97c442..fa0be5f3f 100644 --- a/test/integration/tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs @@ -1,136 +1,136 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - xAxis: { - interlacing: { - color: '#1A2B3C40' - } - } - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - xAxis: { - interlacing: { - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - xAxis: { - interlacing: { - color: '#E5D4C340' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - xAxis: { - interlacing: { - color: '#E5D4C3BF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - xAxis: { - interlacing: { - color: '#E5D4C340' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - interlacing: { - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - xAxis: { - interlacing: { - color: '#E5D4C3BF' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - interlacing: { - color: '#1A2B3C40' - } - } - } - } - }) - ] - } + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + xAxis: { + interlacing: { + color: '#1A2B3C40' + } + } + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + xAxis: { + interlacing: { + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + xAxis: { + interlacing: { + color: '#E5D4C340' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + xAxis: { + interlacing: { + color: '#E5D4C3BF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + xAxis: { + interlacing: { + color: '#E5D4C340' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + interlacing: { + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + xAxis: { + interlacing: { + color: '#E5D4C3BF' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + interlacing: { + color: '#1A2B3C40' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/deg.mjs b/test/integration/tests/style_tests/plot/xAxis/label/angle/deg.mjs index a74d4d098..d1f4d87f0 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/angle/deg.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/angle/deg.mjs @@ -1,129 +1,129 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_90', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '90deg' - } - } - } - } - }) - ] - }, - { - testName: 'static_495', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '495deg' - } - } - } - } - }) - ] - }, - { - testName: 'animated_90-45', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '90deg' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '45deg' - } - } - } - } - }) - ] - }, - { - testName: 'animated_90-135', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '90deg' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '135deg' - } - } - } - } - }) - ] - }, - { - testName: 'animated_90-225', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '90deg' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '225deg' - } - } - } - } - }) - ] - } + { + testName: 'static_90', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '90deg' + } + } + } + } + }) + ] + }, + { + testName: 'static_495', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '495deg' + } + } + } + } + }) + ] + }, + { + testName: 'animated_90-45', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '90deg' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '45deg' + } + } + } + } + }) + ] + }, + { + testName: 'animated_90-135', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '90deg' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '135deg' + } + } + } + } + }) + ] + }, + { + testName: 'animated_90-225', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '90deg' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '225deg' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/grad.mjs b/test/integration/tests/style_tests/plot/xAxis/label/angle/grad.mjs index 2bc01151b..9305ad6d4 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/angle/grad.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/angle/grad.mjs @@ -1,129 +1,129 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_100', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '100grad' - } - } - } - } - }) - ] - }, - { - testName: 'static_550', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '550grad' - } - } - } - } - }) - ] - }, - { - testName: 'animated_100-50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '100grad' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '50grad' - } - } - } - } - }) - ] - }, - { - testName: 'animated_100-150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '100grad' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '150grad' - } - } - } - } - }) - ] - }, - { - testName: 'animated_100-250', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '100grad' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '250grad' - } - } - } - } - }) - ] - } + { + testName: 'static_100', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '100grad' + } + } + } + } + }) + ] + }, + { + testName: 'static_550', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '550grad' + } + } + } + } + }) + ] + }, + { + testName: 'animated_100-50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '100grad' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '50grad' + } + } + } + } + }) + ] + }, + { + testName: 'animated_100-150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '100grad' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '150grad' + } + } + } + } + }) + ] + }, + { + testName: 'animated_100-250', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '100grad' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '250grad' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/number.mjs b/test/integration/tests/style_tests/plot/xAxis/label/angle/number.mjs index 6f3577e4a..8d7441bab 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/angle/number.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/angle/number.mjs @@ -1,129 +1,129 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1.5708', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: 1.5708 - } - } - } - } - }) - ] - }, - { - testName: 'static_8.6394', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: 8.6394 - } - } - } - } - }) - ] - }, - { - testName: 'animated_1.5708-0.7854', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: 1.5708 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: 0.7854 - } - } - } - } - }) - ] - }, - { - testName: 'animated_1.5708-2.3562', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: 1.5708 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: 2.3562 - } - } - } - } - }) - ] - }, - { - testName: 'animated_1.5708-3.927', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: 1.5708 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: 3.927 - } - } - } - } - }) - ] - } + { + testName: 'static_1.5708', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: 1.5708 + } + } + } + } + }) + ] + }, + { + testName: 'static_8.6394', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: 8.6394 + } + } + } + } + }) + ] + }, + { + testName: 'animated_1.5708-0.7854', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: 1.5708 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: 0.7854 + } + } + } + } + }) + ] + }, + { + testName: 'animated_1.5708-2.3562', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: 1.5708 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: 2.3562 + } + } + } + } + }) + ] + }, + { + testName: 'animated_1.5708-3.927', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: 1.5708 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: 3.927 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/rad.mjs b/test/integration/tests/style_tests/plot/xAxis/label/angle/rad.mjs index d14684612..4cd9eb49a 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/angle/rad.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/angle/rad.mjs @@ -1,129 +1,129 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1.5708', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '1.5708rad' - } - } - } - } - }) - ] - }, - { - testName: 'static_8.6394', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '8.6394rad' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1.5708-0.7854', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '1.5708rad' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '0.7854rad' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1.5708-2.3562', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '1.5708rad' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '2.3562rad' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1.5708-3.927', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '1.5708rad' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '3.927rad' - } - } - } - } - }) - ] - } + { + testName: 'static_1.5708', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '1.5708rad' + } + } + } + } + }) + ] + }, + { + testName: 'static_8.6394', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '8.6394rad' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1.5708-0.7854', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '1.5708rad' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '0.7854rad' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1.5708-2.3562', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '1.5708rad' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '2.3562rad' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1.5708-3.927', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '1.5708rad' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '3.927rad' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/turn.mjs b/test/integration/tests/style_tests/plot/xAxis/label/angle/turn.mjs index b4deed3da..214b6afe3 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/angle/turn.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/angle/turn.mjs @@ -1,129 +1,129 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '0.25turn' - } - } - } - } - }) - ] - }, - { - testName: 'static_1.375', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '1.375turn' - } - } - } - } - }) - ] - }, - { - testName: 'animated_0.25-0.125', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '0.25turn' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '0.125turn' - } - } - } - } - }) - ] - }, - { - testName: 'animated_0.25-0.375', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '0.25turn' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '0.375turn' - } - } - } - } - }) - ] - }, - { - testName: 'animated_0.25-0.625', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - angle: '0.25turn' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - angle: '0.625turn' - } - } - } - } - }) - ] - } + { + testName: 'static_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '0.25turn' + } + } + } + } + }) + ] + }, + { + testName: 'static_1.375', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '1.375turn' + } + } + } + } + }) + ] + }, + { + testName: 'animated_0.25-0.125', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '0.25turn' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '0.125turn' + } + } + } + } + }) + ] + }, + { + testName: 'animated_0.25-0.375', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '0.25turn' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '0.375turn' + } + } + } + } + }) + ] + }, + { + testName: 'animated_0.25-0.625', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + angle: '0.25turn' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + angle: '0.625turn' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs b/test/integration/tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs index 7b0e3d079..8482e6768 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs @@ -1,136 +1,136 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - backgroundColor: '#1A2B3C40' - } - } - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - backgroundColor: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - backgroundColor: '#E5D4C340' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - backgroundColor: '#E5D4C3BF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - backgroundColor: '#E5D4C340' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - backgroundColor: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - backgroundColor: '#E5D4C3BF' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - backgroundColor: '#1A2B3C40' - } - } - } - } - }) - ] - } + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + backgroundColor: '#1A2B3C40' + } + } + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + backgroundColor: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + backgroundColor: '#E5D4C340' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + backgroundColor: '#E5D4C3BF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + backgroundColor: '#E5D4C340' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + backgroundColor: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + backgroundColor: '#E5D4C3BF' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + backgroundColor: '#1A2B3C40' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/color/hexa.mjs b/test/integration/tests/style_tests/plot/xAxis/label/color/hexa.mjs index 819ba29e0..083f9ff67 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/color/hexa.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/color/hexa.mjs @@ -1,136 +1,136 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - color: '#1A2B3C40' - } - } - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - color: '#E5D4C340' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - color: '#E5D4C3BF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - color: '#E5D4C340' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - color: '#E5D4C3BF' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - color: '#1A2B3C40' - } - } - } - } - }) - ] - } + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + color: '#1A2B3C40' + } + } + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + color: '#E5D4C340' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + color: '#E5D4C3BF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + color: '#E5D4C340' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + color: '#E5D4C3BF' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + color: '#1A2B3C40' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementFontPercentage.mjs b/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementFontPercentage.mjs index eea2801ff..438ca05ba 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementFontPercentage.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementFontPercentage.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '1em' - } - } - } - } - }) - ] - }, - { - testName: 'static_2', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '2em' - } - } - } - } - }) - ] - }, - { - testName: 'static_3', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '3em' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-3', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '1em' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontSize: '3em' - } - } - } - } - }) - ] - }, - { - testName: 'animated_3-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '3em' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontSize: '1em' - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '1em' + } + } + } + } + }) + ] + }, + { + testName: 'static_2', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '2em' + } + } + } + } + }) + ] + }, + { + testName: 'static_3', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '3em' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-3', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '1em' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontSize: '3em' + } + } + } + } + }) + ] + }, + { + testName: 'animated_3-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '3em' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontSize: '1em' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs b/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs index 47379490f..26089a2fc 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_100', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '100%' - } - } - } - } - }) - ] - }, - { - testName: 'static_200', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '200%' - } - } - } - } - }) - ] - }, - { - testName: 'static_300', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '300%' - } - } - } - } - }) - ] - }, - { - testName: 'animated_100-300', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '100%' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontSize: '300%' - } - } - } - } - }) - ] - }, - { - testName: 'animated_300-100', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '300%' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontSize: '100%' - } - } - } - } - }) - ] - } + { + testName: 'static_100', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '100%' + } + } + } + } + }) + ] + }, + { + testName: 'static_200', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '200%' + } + } + } + } + }) + ] + }, + { + testName: 'static_300', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '300%' + } + } + } + } + }) + ] + }, + { + testName: 'animated_100-300', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '100%' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontSize: '300%' + } + } + } + } + }) + ] + }, + { + testName: 'animated_300-100', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '300%' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontSize: '100%' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/number.mjs b/test/integration/tests/style_tests/plot/xAxis/label/fontSize/number.mjs index 7dc9b467e..41d30c5d0 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/number.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/fontSize/number.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: 1 - } - } - } - } - }) - ] - }, - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: 10 - } - } - } - } - }) - ] - }, - { - testName: 'static_50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: 50 - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: 1 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontSize: 50 - } - } - } - } - }) - ] - }, - { - testName: 'animated_50-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: 50 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontSize: 1 - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: 1 + } + } + } + } + }) + ] + }, + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: 10 + } + } + } + } + }) + ] + }, + { + testName: 'static_50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: 50 + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: 1 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontSize: 50 + } + } + } + } + }) + ] + }, + { + testName: 'animated_50-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: 50 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontSize: 1 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs b/test/integration/tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs index ca16fe239..54cf6535d 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '1px' - } - } - } - } - }) - ] - }, - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '10px' - } - } - } - } - }) - ] - }, - { - testName: 'static_50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '50px' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '1px' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontSize: '50px' - } - } - } - } - }) - ] - }, - { - testName: 'animated_50-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontSize: '50px' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontSize: '1px' - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '1px' + } + } + } + } + }) + ] + }, + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '10px' + } + } + } + } + }) + ] + }, + { + testName: 'static_50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '50px' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '1px' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontSize: '50px' + } + } + } + } + }) + ] + }, + { + testName: 'animated_50-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontSize: '50px' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontSize: '1px' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontStyle.mjs b/test/integration/tests/style_tests/plot/xAxis/label/fontStyle.mjs index ca14a97e9..b2661669e 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/fontStyle.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/fontStyle.mjs @@ -1,234 +1,234 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_italic', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontStyle: 'italic' - } - } - } - } - }) - ] - }, - { - testName: 'static_normal', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontStyle: 'normal' - } - } - } - } - }) - ] - }, - { - testName: 'static_oblique', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontStyle: 'oblique' - } - } - } - } - }) - ] - }, - { - testName: 'animated_italic-normal', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontStyle: 'italic' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontStyle: 'normal' - } - } - } - } - }) - ] - }, - { - testName: 'animated_italic-oblique', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontStyle: 'italic' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontStyle: 'oblique' - } - } - } - } - }) - ] - }, - { - testName: 'animated_normal-italic', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontStyle: 'normal' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontStyle: 'italic' - } - } - } - } - }) - ] - }, - { - testName: 'animated_normal-oblique', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontStyle: 'normal' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontStyle: 'oblique' - } - } - } - } - }) - ] - }, - { - testName: 'animated_oblique-italic', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontStyle: 'oblique' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontStyle: 'italic' - } - } - } - } - }) - ] - }, - { - testName: 'animated_oblique-normal', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontStyle: 'oblique' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontStyle: 'normal' - } - } - } - } - }) - ] - } + { + testName: 'static_italic', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontStyle: 'italic' + } + } + } + } + }) + ] + }, + { + testName: 'static_normal', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontStyle: 'normal' + } + } + } + } + }) + ] + }, + { + testName: 'static_oblique', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontStyle: 'oblique' + } + } + } + } + }) + ] + }, + { + testName: 'animated_italic-normal', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontStyle: 'italic' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontStyle: 'normal' + } + } + } + } + }) + ] + }, + { + testName: 'animated_italic-oblique', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontStyle: 'italic' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontStyle: 'oblique' + } + } + } + } + }) + ] + }, + { + testName: 'animated_normal-italic', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontStyle: 'normal' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontStyle: 'italic' + } + } + } + } + }) + ] + }, + { + testName: 'animated_normal-oblique', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontStyle: 'normal' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontStyle: 'oblique' + } + } + } + } + }) + ] + }, + { + testName: 'animated_oblique-italic', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontStyle: 'oblique' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontStyle: 'italic' + } + } + } + } + }) + ] + }, + { + testName: 'animated_oblique-normal', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontStyle: 'oblique' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontStyle: 'normal' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontWeight.mjs b/test/integration/tests/style_tests/plot/xAxis/label/fontWeight.mjs index f739d921a..109420e23 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/fontWeight.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/fontWeight.mjs @@ -1,230 +1,230 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_100', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 100 - } - } - } - } - }) - ] - }, - { - testName: 'static_400', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 400 - } - } - } - } - }) - ] - }, - { - testName: 'static_700', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 700 - } - } - } - } - }) - ] - }, - { - testName: 'static_900', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 900 - } - } - } - } - }) - ] - }, - { - testName: 'static_bold', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 'bold' - } - } - } - } - }) - ] - }, - { - testName: 'static_normal', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 'normal' - } - } - } - } - }) - ] - }, - { - testName: 'animated_400-700', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 400 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontWeight: 700 - } - } - } - } - }) - ] - }, - { - testName: 'animated_700-400', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 700 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontWeight: 400 - } - } - } - } - }) - ] - }, - { - testName: 'animated_bold-normal', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 'bold' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontWeight: 'normal' - } - } - } - } - }) - ] - }, - { - testName: 'animated_normal-bold', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - fontWeight: 'normal' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - fontWeight: 'bold' - } - } - } - } - }) - ] - } + { + testName: 'static_100', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 100 + } + } + } + } + }) + ] + }, + { + testName: 'static_400', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 400 + } + } + } + } + }) + ] + }, + { + testName: 'static_700', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 700 + } + } + } + } + }) + ] + }, + { + testName: 'static_900', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 900 + } + } + } + } + }) + ] + }, + { + testName: 'static_bold', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 'bold' + } + } + } + } + }) + ] + }, + { + testName: 'static_normal', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 'normal' + } + } + } + } + }) + ] + }, + { + testName: 'animated_400-700', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 400 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontWeight: 700 + } + } + } + } + }) + ] + }, + { + testName: 'animated_700-400', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 700 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontWeight: 400 + } + } + } + } + }) + ] + }, + { + testName: 'animated_bold-normal', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 'bold' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontWeight: 'normal' + } + } + } + } + }) + ] + }, + { + testName: 'animated_normal-bold', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + fontWeight: 'normal' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + fontWeight: 'bold' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/orientation.mjs b/test/integration/tests/style_tests/plot/xAxis/label/orientation.mjs index 252bbdd94..fefd2147d 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/orientation.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/orientation.mjs @@ -1,194 +1,194 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_horizontal', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - orientation: 'horizontal' - } - } - } - } - }) - ] - }, - { - testName: 'static_normal', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - orientation: 'normal' - } - } - } - } - }) - ] - }, - { - testName: 'static_tangential', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - orientation: 'tangential' - } - } - } - } - }) - ] - }, - { - testName: 'static_vertical', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - orientation: 'vertical' - } - } - } - } - }) - ] - }, - { - testName: 'animated_horizontal-vertical', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - orientation: 'horizontal' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - orientation: 'vertical' - } - } - } - } - }) - ] - }, - { - testName: 'animated_normal-tangential', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - orientation: 'normal' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - orientation: 'tangential' - } - } - } - } - }) - ] - }, - { - testName: 'animated_tangential-normal', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - orientation: 'tangential' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - orientation: 'normal' - } - } - } - } - }) - ] - }, - { - testName: 'animated_vertical-horizontal', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - orientation: 'vertical' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - orientation: 'horizontal' - } - } - } - } - }) - ] - } + { + testName: 'static_horizontal', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + orientation: 'horizontal' + } + } + } + } + }) + ] + }, + { + testName: 'static_normal', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + orientation: 'normal' + } + } + } + } + }) + ] + }, + { + testName: 'static_tangential', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + orientation: 'tangential' + } + } + } + } + }) + ] + }, + { + testName: 'static_vertical', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + orientation: 'vertical' + } + } + } + } + }) + ] + }, + { + testName: 'animated_horizontal-vertical', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + orientation: 'horizontal' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + orientation: 'vertical' + } + } + } + } + }) + ] + }, + { + testName: 'animated_normal-tangential', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + orientation: 'normal' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + orientation: 'tangential' + } + } + } + } + }) + ] + }, + { + testName: 'animated_tangential-normal', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + orientation: 'tangential' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + orientation: 'normal' + } + } + } + } + }) + ] + }, + { + testName: 'animated_vertical-horizontal', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + orientation: 'vertical' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + orientation: 'horizontal' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/paddingBottom.mjs b/test/integration/tests/style_tests/plot/xAxis/label/paddingBottom.mjs index 992b6f168..9ccb11d09 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/paddingBottom.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/paddingBottom.mjs @@ -1,108 +1,108 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_15', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingBottom: 15, - position: 'max-edge', - side: 'positive' - } - } - } - } - }) - ] - }, - { - testName: 'static_35', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingBottom: 35, - position: 'max-edge', - side: 'positive' - } - } - } - } - }) - ] - }, - { - testName: 'animated_15-35', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingBottom: 15, - position: 'max-edge', - side: 'positive' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - paddingBottom: 35 - } - } - } - } - }) - ] - }, - { - testName: 'animated_35-15', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingBottom: 35, - position: 'max-edge', - side: 'positive' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - paddingBottom: 15 - } - } - } - } - }) - ] - } + { + testName: 'static_15', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingBottom: 15, + position: 'max-edge', + side: 'positive' + } + } + } + } + }) + ] + }, + { + testName: 'static_35', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingBottom: 35, + position: 'max-edge', + side: 'positive' + } + } + } + } + }) + ] + }, + { + testName: 'animated_15-35', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingBottom: 15, + position: 'max-edge', + side: 'positive' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + paddingBottom: 35 + } + } + } + } + }) + ] + }, + { + testName: 'animated_35-15', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingBottom: 35, + position: 'max-edge', + side: 'positive' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + paddingBottom: 15 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/paddingLeft.mjs b/test/integration/tests/style_tests/plot/xAxis/label/paddingLeft.mjs index 168ee7a6a..04ad3b3ae 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/paddingLeft.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/paddingLeft.mjs @@ -1,100 +1,100 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingLeft: 150 - } - } - } - } - }) - ] - }, - { - testName: 'static_350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingLeft: 350 - } - } - } - } - }) - ] - }, - { - testName: 'animated_150-350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingLeft: 150 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - paddingLeft: 350 - } - } - } - } - }) - ] - }, - { - testName: 'animated_350-150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingLeft: 350 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - paddingLeft: 150 - } - } - } - } - }) - ] - } + { + testName: 'static_150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingLeft: 150 + } + } + } + } + }) + ] + }, + { + testName: 'static_350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingLeft: 350 + } + } + } + } + }) + ] + }, + { + testName: 'animated_150-350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingLeft: 150 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + paddingLeft: 350 + } + } + } + } + }) + ] + }, + { + testName: 'animated_350-150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingLeft: 350 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + paddingLeft: 150 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/paddingRight.mjs b/test/integration/tests/style_tests/plot/xAxis/label/paddingRight.mjs index 1d2e2511c..9428db426 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/paddingRight.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/paddingRight.mjs @@ -1,100 +1,100 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingRight: 150 - } - } - } - } - }) - ] - }, - { - testName: 'static_350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingRight: 350 - } - } - } - } - }) - ] - }, - { - testName: 'animated_150-350', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingRight: 150 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - paddingRight: 350 - } - } - } - } - }) - ] - }, - { - testName: 'animated_350-150', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingRight: 350 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - paddingRight: 150 - } - } - } - } - }) - ] - } + { + testName: 'static_150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingRight: 150 + } + } + } + } + }) + ] + }, + { + testName: 'static_350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingRight: 350 + } + } + } + } + }) + ] + }, + { + testName: 'animated_150-350', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingRight: 150 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + paddingRight: 350 + } + } + } + } + }) + ] + }, + { + testName: 'animated_350-150', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingRight: 350 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + paddingRight: 150 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/paddingTop.mjs b/test/integration/tests/style_tests/plot/xAxis/label/paddingTop.mjs index 513734292..6b3c52272 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/paddingTop.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/paddingTop.mjs @@ -1,100 +1,100 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_15', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingTop: 15 - } - } - } - } - }) - ] - }, - { - testName: 'static_35', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingTop: 35 - } - } - } - } - }) - ] - }, - { - testName: 'animated_15-35', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingTop: 15 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - paddingTop: 35 - } - } - } - } - }) - ] - }, - { - testName: 'animated_35-15', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - paddingTop: 35 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - paddingTop: 15 - } - } - } - } - }) - ] - } + { + testName: 'static_15', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingTop: 15 + } + } + } + } + }) + ] + }, + { + testName: 'static_35', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingTop: 35 + } + } + } + } + }) + ] + }, + { + testName: 'animated_15-35', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingTop: 15 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + paddingTop: 35 + } + } + } + } + }) + ] + }, + { + testName: 'animated_35-15', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + paddingTop: 35 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + paddingTop: 15 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/position.mjs b/test/integration/tests/style_tests/plot/xAxis/label/position.mjs index 8d1dba0ad..b90e3fc87 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/position.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/position.mjs @@ -1,234 +1,234 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_axis', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - position: 'axis' - } - } - } - } - }) - ] - }, - { - testName: 'static_max-edge', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - position: 'max-edge' - } - } - } - } - }) - ] - }, - { - testName: 'static_min-edge', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - position: 'min-edge' - } - } - } - } - }) - ] - }, - { - testName: 'animated_axis-max-edge', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - position: 'axis' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - position: 'max-edge' - } - } - } - } - }) - ] - }, - { - testName: 'animated_axis-min-edge', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - position: 'axis' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - position: 'min-edge' - } - } - } - } - }) - ] - }, - { - testName: 'animated_max-edge-axis', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - position: 'max-edge' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - position: 'axis' - } - } - } - } - }) - ] - }, - { - testName: 'animated_max-edge-min-edge', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - position: 'max-edge' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - position: 'min-edge' - } - } - } - } - }) - ] - }, - { - testName: 'animated_min-edge-axis', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - position: 'min-edge' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - position: 'axis' - } - } - } - } - }) - ] - }, - { - testName: 'animated_min-edge-max-edge', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - position: 'min-edge' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - position: 'max-edge' - } - } - } - } - }) - ] - } + { + testName: 'static_axis', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + position: 'axis' + } + } + } + } + }) + ] + }, + { + testName: 'static_max-edge', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + position: 'max-edge' + } + } + } + } + }) + ] + }, + { + testName: 'static_min-edge', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + position: 'min-edge' + } + } + } + } + }) + ] + }, + { + testName: 'animated_axis-max-edge', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + position: 'axis' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + position: 'max-edge' + } + } + } + } + }) + ] + }, + { + testName: 'animated_axis-min-edge', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + position: 'axis' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + position: 'min-edge' + } + } + } + } + }) + ] + }, + { + testName: 'animated_max-edge-axis', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + position: 'max-edge' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + position: 'axis' + } + } + } + } + }) + ] + }, + { + testName: 'animated_max-edge-min-edge', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + position: 'max-edge' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + position: 'min-edge' + } + } + } + } + }) + ] + }, + { + testName: 'animated_min-edge-axis', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + position: 'min-edge' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + position: 'axis' + } + } + } + } + }) + ] + }, + { + testName: 'animated_min-edge-max-edge', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + position: 'min-edge' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + position: 'max-edge' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/side.mjs b/test/integration/tests/style_tests/plot/xAxis/label/side.mjs index c70abec42..01534a73e 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/side.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/side.mjs @@ -1,100 +1,100 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_negative', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - side: 'negative' - } - } - } - } - }) - ] - }, - { - testName: 'static_positive', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - side: 'positive' - } - } - } - } - }) - ] - }, - { - testName: 'animated_negative-positive', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - side: 'negative' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - side: 'positive' - } - } - } - } - }) - ] - }, - { - testName: 'animated_positive-negative', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - side: 'positive' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - side: 'negative' - } - } - } - } - }) - ] - } + { + testName: 'static_negative', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + side: 'negative' + } + } + } + } + }) + ] + }, + { + testName: 'static_positive', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + side: 'positive' + } + } + } + } + }) + ] + }, + { + testName: 'animated_negative-positive', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + side: 'negative' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + side: 'positive' + } + } + } + } + }) + ] + }, + { + testName: 'animated_positive-negative', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + side: 'positive' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + side: 'negative' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/label/textAlign.mjs b/test/integration/tests/style_tests/plot/xAxis/label/textAlign.mjs index d751a6170..ffe1901d3 100644 --- a/test/integration/tests/style_tests/plot/xAxis/label/textAlign.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/label/textAlign.mjs @@ -1,234 +1,234 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_center', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - textAlign: 'center' - } - } - } - } - }) - ] - }, - { - testName: 'static_left', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - textAlign: 'left' - } - } - } - } - }) - ] - }, - { - testName: 'static_right', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - textAlign: 'right' - } - } - } - } - }) - ] - }, - { - testName: 'animated_center-left', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - textAlign: 'center' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - textAlign: 'left' - } - } - } - } - }) - ] - }, - { - testName: 'animated_center-right', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - textAlign: 'center' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - textAlign: 'right' - } - } - } - } - }) - ] - }, - { - testName: 'animated_left-center', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - textAlign: 'left' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - textAlign: 'center' - } - } - } - } - }) - ] - }, - { - testName: 'animated_left-right', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - textAlign: 'left' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - textAlign: 'right' - } - } - } - } - }) - ] - }, - { - testName: 'animated_right-center', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - textAlign: 'right' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - textAlign: 'center' - } - } - } - } - }) - ] - }, - { - testName: 'animated_right-left', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - xAxis: { - label: { - textAlign: 'right' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - label: { - textAlign: 'left' - } - } - } - } - }) - ] - } + { + testName: 'static_center', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + textAlign: 'center' + } + } + } + } + }) + ] + }, + { + testName: 'static_left', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + textAlign: 'left' + } + } + } + } + }) + ] + }, + { + testName: 'static_right', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + textAlign: 'right' + } + } + } + } + }) + ] + }, + { + testName: 'animated_center-left', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + textAlign: 'center' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + textAlign: 'left' + } + } + } + } + }) + ] + }, + { + testName: 'animated_center-right', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + textAlign: 'center' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + textAlign: 'right' + } + } + } + } + }) + ] + }, + { + testName: 'animated_left-center', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + textAlign: 'left' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + textAlign: 'center' + } + } + } + } + }) + ] + }, + { + testName: 'animated_left-right', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + textAlign: 'left' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + textAlign: 'right' + } + } + } + } + }) + ] + }, + { + testName: 'animated_right-center', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + textAlign: 'right' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + textAlign: 'center' + } + } + } + } + }) + ] + }, + { + testName: 'animated_right-left', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + xAxis: { + label: { + textAlign: 'right' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + label: { + textAlign: 'left' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/color/hexa.mjs b/test/integration/tests/style_tests/plot/xAxis/ticks/color/hexa.mjs index 79447b14e..537b1d7d9 100644 --- a/test/integration/tests/style_tests/plot/xAxis/ticks/color/hexa.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/ticks/color/hexa.mjs @@ -1,148 +1,148 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#1A2B3C40' - } - } - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#E5D4C340' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#E5D4C3BF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#E5D4C340' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#E5D4C3BF' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - color: '#1A2B3C40' - } - } - } - } - }) - ] - } + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#1A2B3C40' + } + } + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#E5D4C340' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#E5D4C3BF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#E5D4C340' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#E5D4C3BF' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + color: '#1A2B3C40' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs b/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs index e748f9744..b126bbb97 100644 --- a/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '1em' - } - } - } - } - }) - ] - }, - { - testName: 'static_2', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '2em' - } - } - } - } - }) - ] - }, - { - testName: 'static_3', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '3em' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-3', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '1em' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - length: '3em' - } - } - } - } - }) - ] - }, - { - testName: 'animated_3-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '3em' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - length: '1em' - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '1em' + } + } + } + } + }) + ] + }, + { + testName: 'static_2', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '2em' + } + } + } + } + }) + ] + }, + { + testName: 'static_3', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '3em' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-3', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '1em' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + length: '3em' + } + } + } + } + }) + ] + }, + { + testName: 'animated_3-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '3em' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + length: '1em' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementPercentage.mjs b/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementPercentage.mjs index c061bba6d..fc2bceb78 100644 --- a/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementPercentage.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementPercentage.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '10%' - } - } - } - } - }) - ] - }, - { - testName: 'static_15', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '15%' - } - } - } - } - }) - ] - }, - { - testName: 'static_20', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '20%' - } - } - } - } - }) - ] - }, - { - testName: 'animated_10-20', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '10%' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - length: '20%' - } - } - } - } - }) - ] - }, - { - testName: 'animated_20-10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '20%' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - length: '10%' - } - } - } - } - }) - ] - } + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '10%' + } + } + } + } + }) + ] + }, + { + testName: 'static_15', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '15%' + } + } + } + } + }) + ] + }, + { + testName: 'static_20', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '20%' + } + } + } + } + }) + ] + }, + { + testName: 'animated_10-20', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '10%' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + length: '20%' + } + } + } + } + }) + ] + }, + { + testName: 'animated_20-10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '20%' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + length: '10%' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/length/number.mjs b/test/integration/tests/style_tests/plot/xAxis/ticks/length/number.mjs index d999ff6d6..e51eb86b8 100644 --- a/test/integration/tests/style_tests/plot/xAxis/ticks/length/number.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/ticks/length/number.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 1 - } - } - } - } - }) - ] - }, - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 10 - } - } - } - } - }) - ] - }, - { - testName: 'static_50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 50 - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 1 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - length: 50 - } - } - } - } - }) - ] - }, - { - testName: 'animated_50-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: 50 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - length: 1 - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 1 + } + } + } + } + }) + ] + }, + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 10 + } + } + } + } + }) + ] + }, + { + testName: 'static_50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 50 + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 1 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + length: 50 + } + } + } + } + }) + ] + }, + { + testName: 'animated_50-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: 50 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + length: 1 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/length/pixel.mjs b/test/integration/tests/style_tests/plot/xAxis/ticks/length/pixel.mjs index d3af24b04..656ba9f11 100644 --- a/test/integration/tests/style_tests/plot/xAxis/ticks/length/pixel.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/ticks/length/pixel.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '1px' - } - } - } - } - }) - ] - }, - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '10px' - } - } - } - } - }) - ] - }, - { - testName: 'static_50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '50px' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '1px' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - length: '50px' - } - } - } - } - }) - ] - }, - { - testName: 'animated_50-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - length: '50px' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - length: '1px' - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '1px' + } + } + } + } + }) + ] + }, + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '10px' + } + } + } + } + }) + ] + }, + { + testName: 'static_50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '50px' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '1px' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + length: '50px' + } + } + } + } + }) + ] + }, + { + testName: 'animated_50-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + length: '50px' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + length: '1px' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/lineWidth.mjs b/test/integration/tests/style_tests/plot/xAxis/ticks/lineWidth.mjs index deb3fee2d..2e37c3c36 100644 --- a/test/integration/tests/style_tests/plot/xAxis/ticks/lineWidth.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/ticks/lineWidth.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - lineWidth: 1 - } - } - } - } - }) - ] - }, - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - lineWidth: 10 - } - } - } - } - }) - ] - }, - { - testName: 'static_100', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - lineWidth: 100 - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-100', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - lineWidth: 1 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - lineWidth: 100 - } - } - } - } - }) - ] - }, - { - testName: 'animated_100-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - lineWidth: 100 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - lineWidth: 1 - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + lineWidth: 1 + } + } + } + } + }) + ] + }, + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + lineWidth: 10 + } + } + } + } + }) + ] + }, + { + testName: 'static_100', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + lineWidth: 100 + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-100', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + lineWidth: 1 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + lineWidth: 100 + } + } + } + } + }) + ] + }, + { + testName: 'animated_100-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + lineWidth: 100 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + lineWidth: 1 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/position.mjs b/test/integration/tests/style_tests/plot/xAxis/ticks/position.mjs index b74b160d9..8ab2eceee 100644 --- a/test/integration/tests/style_tests/plot/xAxis/ticks/position.mjs +++ b/test/integration/tests/style_tests/plot/xAxis/ticks/position.mjs @@ -1,234 +1,234 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_center', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - position: 'center' - } - } - } - } - }) - ] - }, - { - testName: 'static_inside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - position: 'inside' - } - } - } - } - }) - ] - }, - { - testName: 'static_outside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - position: 'outside' - } - } - } - } - }) - ] - }, - { - testName: 'animated_center-inside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - position: 'center' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - position: 'inside' - } - } - } - } - }) - ] - }, - { - testName: 'animated_center-outside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - position: 'center' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - position: 'outside' - } - } - } - } - }) - ] - }, - { - testName: 'animated_inside-center', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - position: 'inside' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - position: 'center' - } - } - } - } - }) - ] - }, - { - testName: 'animated_inside-outside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - position: 'inside' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - position: 'outside' - } - } - } - } - }) - ] - }, - { - testName: 'animated_outside-center', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - position: 'outside' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - position: 'center' - } - } - } - } - }) - ] - }, - { - testName: 'animated_outside-inside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometry', - style: { - plot: { - xAxis: { - ticks: { - position: 'outside' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - xAxis: { - ticks: { - position: 'inside' - } - } - } - } - }) - ] - } + { + testName: 'static_center', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + position: 'center' + } + } + } + } + }) + ] + }, + { + testName: 'static_inside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + position: 'inside' + } + } + } + } + }) + ] + }, + { + testName: 'static_outside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + position: 'outside' + } + } + } + } + }) + ] + }, + { + testName: 'animated_center-inside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + position: 'center' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + position: 'inside' + } + } + } + } + }) + ] + }, + { + testName: 'animated_center-outside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + position: 'center' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + position: 'outside' + } + } + } + } + }) + ] + }, + { + testName: 'animated_inside-center', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + position: 'inside' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + position: 'center' + } + } + } + } + }) + ] + }, + { + testName: 'animated_inside-outside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + position: 'inside' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + position: 'outside' + } + } + } + } + }) + ] + }, + { + testName: 'animated_outside-center', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + position: 'outside' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + position: 'center' + } + } + } + } + }) + ] + }, + { + testName: 'animated_outside-inside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometry', + style: { + plot: { + xAxis: { + ticks: { + position: 'outside' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + xAxis: { + ticks: { + position: 'inside' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/yAxis/color/hexa.mjs b/test/integration/tests/style_tests/plot/yAxis/color/hexa.mjs index 416fc203c..33b9dc788 100644 --- a/test/integration/tests/style_tests/plot/yAxis/color/hexa.mjs +++ b/test/integration/tests/style_tests/plot/yAxis/color/hexa.mjs @@ -1,120 +1,120 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - yAxis: { - color: '#1A2B3C40' - } - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - yAxis: { - color: '#1A2B3CBF' - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - yAxis: { - color: '#E5D4C340' - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - yAxis: { - color: '#E5D4C3BF' - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - yAxis: { - color: '#E5D4C340' - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - color: '#1A2B3CBF' - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleDataWithInvertAxis', - style: { - plot: { - yAxis: { - color: '#E5D4C3BF' - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - color: '#1A2B3C40' - } - } - } - }) - ] - } + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + yAxis: { + color: '#1A2B3C40' + } + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + yAxis: { + color: '#1A2B3CBF' + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + yAxis: { + color: '#E5D4C340' + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + yAxis: { + color: '#E5D4C3BF' + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + yAxis: { + color: '#E5D4C340' + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + color: '#1A2B3CBF' + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleDataWithInvertAxis', + style: { + plot: { + yAxis: { + color: '#E5D4C3BF' + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + color: '#1A2B3C40' + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs b/test/integration/tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs index 510139f8a..a0e72a133 100644 --- a/test/integration/tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs +++ b/test/integration/tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs @@ -1,136 +1,136 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - yAxis: { - interlacing: { - color: '#1A2B3C40' - } - } - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - yAxis: { - interlacing: { - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - yAxis: { - interlacing: { - color: '#E5D4C340' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - yAxis: { - interlacing: { - color: '#E5D4C3BF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - yAxis: { - interlacing: { - color: '#E5D4C340' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - interlacing: { - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithOneValue', - config: 'simpleData', - style: { - plot: { - yAxis: { - interlacing: { - color: '#E5D4C3BF' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - interlacing: { - color: '#1A2B3C40' - } - } - } - } - }) - ] - } + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + yAxis: { + interlacing: { + color: '#1A2B3C40' + } + } + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + yAxis: { + interlacing: { + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + yAxis: { + interlacing: { + color: '#E5D4C340' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + yAxis: { + interlacing: { + color: '#E5D4C3BF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + yAxis: { + interlacing: { + color: '#E5D4C340' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + interlacing: { + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithOneValue', + config: 'simpleData', + style: { + plot: { + yAxis: { + interlacing: { + color: '#E5D4C3BF' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + interlacing: { + color: '#1A2B3C40' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/color/hexa.mjs b/test/integration/tests/style_tests/plot/yAxis/ticks/color/hexa.mjs index 8eb7d6627..f53f77f8a 100644 --- a/test/integration/tests/style_tests/plot/yAxis/ticks/color/hexa.mjs +++ b/test/integration/tests/style_tests/plot/yAxis/ticks/color/hexa.mjs @@ -1,148 +1,148 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#1A2B3C40' - } - } - } - } - }) - ] - }, - { - testName: 'static_blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#E5D4C340' - } - } - } - } - }) - ] - }, - { - testName: 'static_yellowCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#E5D4C3BF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.25-blueCustom_0.75', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#E5D4C340' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - color: '#1A2B3CBF' - } - } - } - } - }) - ] - }, - { - testName: 'animated_yellowCustom_0.75-blueCustom_0.25', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 5, - lineWidth: 5, - color: '#E5D4C3BF' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - color: '#1A2B3C40' - } - } - } - } - }) - ] - } + { + testName: 'static_blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#1A2B3C40' + } + } + } + } + }) + ] + }, + { + testName: 'static_blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#E5D4C340' + } + } + } + } + }) + ] + }, + { + testName: 'static_yellowCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#E5D4C3BF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.25-blueCustom_0.75', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#E5D4C340' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + color: '#1A2B3CBF' + } + } + } + } + }) + ] + }, + { + testName: 'animated_yellowCustom_0.75-blueCustom_0.25', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 5, + lineWidth: 5, + color: '#E5D4C3BF' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + color: '#1A2B3C40' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs b/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs index fcc1fdba7..37c245aef 100644 --- a/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs +++ b/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '1em' - } - } - } - } - }) - ] - }, - { - testName: 'static_2', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '2em' - } - } - } - } - }) - ] - }, - { - testName: 'static_3', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '3em' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-3', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '1em' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - length: '3em' - } - } - } - } - }) - ] - }, - { - testName: 'animated_3-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '3em' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - length: '1em' - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '1em' + } + } + } + } + }) + ] + }, + { + testName: 'static_2', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '2em' + } + } + } + } + }) + ] + }, + { + testName: 'static_3', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '3em' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-3', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '1em' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + length: '3em' + } + } + } + } + }) + ] + }, + { + testName: 'animated_3-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '3em' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + length: '1em' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementPercentage.mjs b/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementPercentage.mjs index 2031c3ed1..b97024878 100644 --- a/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementPercentage.mjs +++ b/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementPercentage.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '1%' - } - } - } - } - }) - ] - }, - { - testName: 'static_3', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '3%' - } - } - } - } - }) - ] - }, - { - testName: 'static_6', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '6%' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-6', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '1%' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - length: '6%' - } - } - } - } - }) - ] - }, - { - testName: 'animated_6-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '6%' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - length: '1%' - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '1%' + } + } + } + } + }) + ] + }, + { + testName: 'static_3', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '3%' + } + } + } + } + }) + ] + }, + { + testName: 'static_6', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '6%' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-6', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '1%' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + length: '6%' + } + } + } + } + }) + ] + }, + { + testName: 'animated_6-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '6%' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + length: '1%' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/length/number.mjs b/test/integration/tests/style_tests/plot/yAxis/ticks/length/number.mjs index 5ea139317..e0be5637a 100644 --- a/test/integration/tests/style_tests/plot/yAxis/ticks/length/number.mjs +++ b/test/integration/tests/style_tests/plot/yAxis/ticks/length/number.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 1 - } - } - } - } - }) - ] - }, - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 10 - } - } - } - } - }) - ] - }, - { - testName: 'static_50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 50 - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 1 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - length: 50 - } - } - } - } - }) - ] - }, - { - testName: 'animated_50-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: 50 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - length: 1 - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 1 + } + } + } + } + }) + ] + }, + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 10 + } + } + } + } + }) + ] + }, + { + testName: 'static_50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 50 + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 1 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + length: 50 + } + } + } + } + }) + ] + }, + { + testName: 'animated_50-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: 50 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + length: 1 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/length/pixel.mjs b/test/integration/tests/style_tests/plot/yAxis/ticks/length/pixel.mjs index 16633b1cc..e78300aad 100644 --- a/test/integration/tests/style_tests/plot/yAxis/ticks/length/pixel.mjs +++ b/test/integration/tests/style_tests/plot/yAxis/ticks/length/pixel.mjs @@ -1,118 +1,118 @@ import Chart from '../../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '1px' - } - } - } - } - }) - ] - }, - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '10px' - } - } - } - } - }) - ] - }, - { - testName: 'static_50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '50px' - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-50', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '1px' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - length: '50px' - } - } - } - } - }) - ] - }, - { - testName: 'animated_50-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - length: '50px' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - length: '1px' - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '1px' + } + } + } + } + }) + ] + }, + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '10px' + } + } + } + } + }) + ] + }, + { + testName: 'static_50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '50px' + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-50', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '1px' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + length: '50px' + } + } + } + } + }) + ] + }, + { + testName: 'animated_50-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + length: '50px' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + length: '1px' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/lineWidth.mjs b/test/integration/tests/style_tests/plot/yAxis/ticks/lineWidth.mjs index 8bdff1f19..9260761fa 100644 --- a/test/integration/tests/style_tests/plot/yAxis/ticks/lineWidth.mjs +++ b/test/integration/tests/style_tests/plot/yAxis/ticks/lineWidth.mjs @@ -1,100 +1,100 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - lineWidth: 1 - } - } - } - } - }) - ] - }, - { - testName: 'static_10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - lineWidth: 10 - } - } - } - } - }) - ] - }, - { - testName: 'animated_1-10', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - lineWidth: 1 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - lineWidth: 10 - } - } - } - } - }) - ] - }, - { - testName: 'animated_10-1', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - lineWidth: 10 - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - lineWidth: 1 - } - } - } - } - }) - ] - } + { + testName: 'static_1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + lineWidth: 1 + } + } + } + } + }) + ] + }, + { + testName: 'static_10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + lineWidth: 10 + } + } + } + } + }) + ] + }, + { + testName: 'animated_1-10', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + lineWidth: 1 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + lineWidth: 10 + } + } + } + } + }) + ] + }, + { + testName: 'animated_10-1', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + lineWidth: 10 + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + lineWidth: 1 + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/position.mjs b/test/integration/tests/style_tests/plot/yAxis/ticks/position.mjs index ec1513c97..56fc2af1b 100644 --- a/test/integration/tests/style_tests/plot/yAxis/ticks/position.mjs +++ b/test/integration/tests/style_tests/plot/yAxis/ticks/position.mjs @@ -1,234 +1,234 @@ import Chart from '../../../../chart.mjs' const testCases = [ - { - testName: 'static_center', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - position: 'center' - } - } - } - } - }) - ] - }, - { - testName: 'static_inside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - position: 'inside' - } - } - } - } - }) - ] - }, - { - testName: 'static_outside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - position: 'outside' - } - } - } - } - }) - ] - }, - { - testName: 'animated_center-inside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - position: 'center' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - position: 'inside' - } - } - } - } - }) - ] - }, - { - testName: 'animated_center-outside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - position: 'center' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - position: 'outside' - } - } - } - } - }) - ] - }, - { - testName: 'animated_inside-center', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - position: 'inside' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - position: 'center' - } - } - } - } - }) - ] - }, - { - testName: 'animated_inside-outside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - position: 'inside' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - position: 'outside' - } - } - } - } - }) - ] - }, - { - testName: 'animated_outside-center', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - position: 'outside' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - position: 'center' - } - } - } - } - }) - ] - }, - { - testName: 'animated_outside-inside', - testSteps: [ - Chart.animate({ - data: 'simpleDataWithThreeValue', - config: 'simpleDataCircleGeometryVerticalOrientation', - style: { - plot: { - yAxis: { - ticks: { - position: 'outside' - } - } - } - } - }), - Chart.animate({ - style: { - plot: { - yAxis: { - ticks: { - position: 'inside' - } - } - } - } - }) - ] - } + { + testName: 'static_center', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + position: 'center' + } + } + } + } + }) + ] + }, + { + testName: 'static_inside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + position: 'inside' + } + } + } + } + }) + ] + }, + { + testName: 'static_outside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + position: 'outside' + } + } + } + } + }) + ] + }, + { + testName: 'animated_center-inside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + position: 'center' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + position: 'inside' + } + } + } + } + }) + ] + }, + { + testName: 'animated_center-outside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + position: 'center' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + position: 'outside' + } + } + } + } + }) + ] + }, + { + testName: 'animated_inside-center', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + position: 'inside' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + position: 'center' + } + } + } + } + }) + ] + }, + { + testName: 'animated_inside-outside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + position: 'inside' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + position: 'outside' + } + } + } + } + }) + ] + }, + { + testName: 'animated_outside-center', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + position: 'outside' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + position: 'center' + } + } + } + } + }) + ] + }, + { + testName: 'animated_outside-inside', + testSteps: [ + Chart.animate({ + data: 'simpleDataWithThreeValue', + config: 'simpleDataCircleGeometryVerticalOrientation', + style: { + plot: { + yAxis: { + ticks: { + position: 'outside' + } + } + } + } + }), + Chart.animate({ + style: { + plot: { + yAxis: { + ticks: { + position: 'inside' + } + } + } + } + }) + ] + } ] export default testCases diff --git a/test/integration/tools/manual/client/frame.html b/test/integration/tools/manual/client/frame.html index cf9e8ee47..884c6889e 100644 --- a/test/integration/tools/manual/client/frame.html +++ b/test/integration/tools/manual/client/frame.html @@ -1,13 +1,24 @@ - - Vizzu library test - - - - - - - - + + Vizzu library test + + + + + + + + diff --git a/test/integration/tools/manual/client/frame.js b/test/integration/tools/manual/client/frame.js index 16b2b92a0..724ce8853 100644 --- a/test/integration/tools/manual/client/frame.js +++ b/test/integration/tools/manual/client/frame.js @@ -1,106 +1,111 @@ class TestRunner { - constructor() { - this.canvas = document.getElementById('vizzuCanvas') - this.canvasCtx = this.canvas.getContext('2d', { willReadFrequently: true }) - this.slider = document.getElementById('myRange') - this.chart = null - this.testSteps = [] - this.snapshotId = undefined + constructor() { + this.canvas = document.getElementById('vizzuCanvas') + this.canvasCtx = this.canvas.getContext('2d', { willReadFrequently: true }) + this.slider = document.getElementById('myRange') + this.chart = null + this.testSteps = [] + this.snapshotId = undefined - this.urlParamsReady = this.setupUrlParams() - this.chartReady = this.setupChart() - this.testStepsReady = this.setupTestSteps() - } + this.urlParamsReady = this.setupUrlParams() + this.chartReady = this.setupChart() + this.testStepsReady = this.setupTestSteps() + } - setupUrlParams() { - return import('./url.js').then((urlModule) => { - const Url = urlModule.default - const url = new Url() - this.vizzuUrl = TestRunner.getWholeVizzuUrl(url.getQueryParam('vizzuUrl')) - this.testFile = url.getQueryParam('testFile') - this.testType = url.getQueryParam('testType') - this.testIndex = url.getQueryParam('testIndex') - }) - } + setupUrlParams() { + return import('./url.js').then((urlModule) => { + const Url = urlModule.default + const url = new Url() + this.vizzuUrl = TestRunner.getWholeVizzuUrl(url.getQueryParam('vizzuUrl')) + this.testFile = url.getQueryParam('testFile') + this.testType = url.getQueryParam('testType') + this.testIndex = url.getQueryParam('testIndex') + }) + } - setupChart() { - return this.urlParamsReady - .then(() => import(this.vizzuUrl)) - .then((vizzuModule) => { - const Vizzu = vizzuModule.default - this.chart = new Vizzu(this.canvas) - return this.chart.initializing - }) - .then((chart) => { - console.log(chart.version()) - chart.feature('logging', true) - this.initSlider() - return import(this.testFile + '.mjs') - }) - .then((testModule) => { - const testSteps = - this.testType === 'single' - ? testModule.default - : testModule.default[this.testIndex].testSteps - this.testSteps = testSteps - return this.chart.initializing - }) - } + setupChart() { + return this.urlParamsReady + .then(() => import(this.vizzuUrl)) + .then((vizzuModule) => { + const Vizzu = vizzuModule.default + this.chart = new Vizzu(this.canvas) + return this.chart.initializing + }) + .then((chart) => { + console.log(chart.version()) + chart.feature('logging', true) + this.initSlider() + return import(this.testFile + '.mjs') + }) + .then((testModule) => { + const testSteps = + this.testType === 'single' + ? testModule.default + : testModule.default[this.testIndex].testSteps + this.testSteps = testSteps + return this.chart.initializing + }) + } - setupTestSteps() { - return this.chartReady - .then(() => { - setTimeout(() => { - this.chart.animation.pause() - }, 0) - let finished = this.chart.initializing - for (const step of this.testSteps) { - finished = finished.then(step) - } - return finished - }) - .catch(console.log) - } + setupTestSteps() { + return this.chartReady + .then(() => { + setTimeout(() => { + this.chart.animation.pause() + }, 0) + let finished = this.chart.initializing + for (const step of this.testSteps) { + finished = finished.then(step) + } + return finished + }) + .catch(console.log) + } - static getWholeVizzuUrl(vizzuUrl) { - if (!vizzuUrl.endsWith('/vizzu.js') && !vizzuUrl.endsWith('/vizzu.min.js')) { - vizzuUrl = vizzuUrl + '/vizzu.js' - } - return vizzuUrl - } + static getWholeVizzuUrl(vizzuUrl) { + if (!vizzuUrl.endsWith('/vizzu.js') && !vizzuUrl.endsWith('/vizzu.min.js')) { + vizzuUrl = vizzuUrl + '/vizzu.js' + } + return vizzuUrl + } - initSlider() { - this.slider.addEventListener('input', (e) => { - this.setSlider(e.target.value) - }) - this.chart.on('update', (ev) => { - this.slider.value = ev.detail.progress * 1000 - }) - } + initSlider() { + this.slider.addEventListener('input', (e) => { + this.setSlider(e.target.value) + }) + this.chart.on('update', (ev) => { + this.slider.value = ev.detail.progress * 1000 + }) + } - setSlider(value) { - const t = value - this.chart.animation.pause() - this.chart.animation.seek(t / 10 + '%') - this.snapshotId = value - setTimeout(() => { - this.snapshot(value) - }, 15) - } + setSlider(value) { + const t = value + this.chart.animation.pause() + this.chart.animation.seek(t / 10 + '%') + this.snapshotId = value + setTimeout(() => { + this.snapshot(value) + }, 15) + } - snapshot(value) { - if (this.snapshotId !== value) return - document.vizzuImgIndex = 2 * value - document.vizzuImgData = this.canvasCtx.getImageData(0, 0, this.canvas.width, this.canvas.height) - document.vizzuImgIndex = 2 * value + 1 - } + snapshot(value) { + if (this.snapshotId !== value) return + document.vizzuImgIndex = 2 * value + document.vizzuImgData = this.canvasCtx.getImageData( + 0, + 0, + this.canvas.width, + this.canvas.height + ) + document.vizzuImgIndex = 2 * value + 1 + } - run(chartToRun) { - if (!chartToRun) { - chartToRun = this.chart - } - chartToRun.animation.play() - } + run(chartToRun) { + if (!chartToRun) { + chartToRun = this.chart + } + chartToRun.animation.play() + } } // eslint-disable-next-line no-var,no-unused-vars diff --git a/test/integration/tools/manual/client/index.html b/test/integration/tools/manual/client/index.html index 2bcf50be9..9cd56d188 100644 --- a/test/integration/tools/manual/client/index.html +++ b/test/integration/tools/manual/client/index.html @@ -1,32 +1,32 @@ - - Vizzu library test - manual - - - - - - -
- - - -
- - - - -
- - - - - + + Vizzu library test - manual + + + + + + +
+ + + +
+ + + + +
+ + + + + diff --git a/test/integration/tools/manual/client/index.js b/test/integration/tools/manual/client/index.js index a1f00d980..18547deaf 100644 --- a/test/integration/tools/manual/client/index.js +++ b/test/integration/tools/manual/client/index.js @@ -4,217 +4,217 @@ import Url from './url.js' import ImgDiff from '../../../modules/img/imgdiff.js' class ManualClient { - constructor() { - this.url = new Url() - - this.vizzuUrl = document.querySelector('#vizzuUrl') - this.vizzuRef = document.querySelector('#vizzuRef') - this.testCase = document.querySelector('#testCase') - this.frame = document.querySelector('#frame') - this.frameRef = document.querySelector('#frame-ref') - this.difCanvas = document.querySelector('#canvas-dif') - this.replay = document.querySelector('#replay') - this.play = document.querySelector('#play') - this.vscode = document.querySelector('#vscode') - this.validate = document.querySelector('#validate') - - this.setupUserInterface() - Promise.all([this.populateLibs(), this.populateCases()]).then(() => { - this.update() - }) - } - - setupUserInterface() { - this.setupFilters() - this.setupSelects() - this.setupButtons() - } - - populateLibs() { - return fetch('/getLibs') - .then((response) => response.json()) - .then((data) => { - const testLibs = Object.entries(data).map(([name, url]) => new TestLib(url, name)) - testLibs.forEach((testLib) => { - testLib.createOption(this.vizzuUrl) - testLib.createOption(this.vizzuRef) - }) - - const lastSelectedUrl = - data[this.url.getQueryParam('vizzuUrl')] || localStorage.getItem('vizzuUrl') - this.vizzuUrl.value = lastSelectedUrl - if (!this.vizzuUrl.value) this.vizzuUrl.value = data.localhost - - const lastSelectedRefUrl = - data[this.url.getQueryParam('vizzuRefUrl')] || localStorage.getItem('vizzuRef') - this.vizzuRef.value = lastSelectedRefUrl - if (!this.vizzuRef.value) this.vizzuRef.value = data.HEAD || data.localhost - }) - } - - populateCases() { - return fetch('/getTests') - .then((response) => response.json()) - .then((data) => { - let lastSelected = localStorage.getItem('testCase') - const testCases = data.map( - (testData) => - new TestCase( - testData.testConfig, - testData.testFile, - testData.testIndex, - testData.testName, - testData.testResult, - testData.testRepo, - testData.testSuite, - testData.testType - ) - ) - - testCases.forEach((testCase) => { - if ( - testCase.testFile === this.url.getQueryParam('testFile') && - // eslint-disable-next-line eqeqeq - testCase.testIndex == this.url.getQueryParam('testIndex') - ) { - lastSelected = JSON.stringify(testCase) - } - testCase.createOption(this.testCase) - }) - - this.testCase.value = lastSelected - if (!this.testCase.value) this.testCase.value = JSON.stringify(testCases[0]) - }) - } - - update() { - localStorage.setItem('vizzuUrl', this.vizzuUrl.value) - localStorage.setItem('vizzuRef', this.vizzuRef.value) - localStorage.setItem('testCase', this.testCase.value) - TestCase.populateStyle(this.testCase) - const testCaseObject = JSON.parse(this.testCase.value) - this.detachVizzu(this.frame) - this.frame.src = `frame.html?testFile=${testCaseObject.testFile}&testType=${testCaseObject.testType}&testIndex=${testCaseObject.testIndex}&vizzuUrl=${this.vizzuUrl.value}` - if (this.vizzuUrl.value !== this.vizzuRef.value) { - this.difCanvas.style.display = 'inline' - this.frameRef.style.display = 'inline' - this.detachVizzu(this.frameRef) - this.frameRef.src = `frame.html?testFile=${testCaseObject.testFile}&testType=${testCaseObject.testType}&testIndex=${testCaseObject.testIndex}&vizzuUrl=${this.vizzuRef.value}` - const imgDiff = new ImgDiff(this.frame, this.frameRef, this.difCanvas) - imgDiff.getDiff() - } else { - this.difCanvas.style.display = 'none' - this.frameRef.style.display = 'none' - } - - this.connectSliders().then((charts) => { - setTimeout(() => { - this.run(charts) - }, 0) - }) - } - - setupFilters() { - this.filterByName = this.setupFilter('#filterByName') - this.filterByResult = this.setupFilter('#filterByResult') - } - - setupSelects() { - this.vizzuUrl.addEventListener('change', () => this.update()) - this.vizzuRef.addEventListener('change', () => this.update()) - this.testCase.addEventListener('change', () => this.update()) - } - - setupButtons() { - this.replay.addEventListener('click', () => this.update()) - this.play.addEventListener('click', () => this.run([undefined, undefined])) - this.vscode.addEventListener('click', () => this.openSelectedInVSCode()) - this.validate.addEventListener('click', () => TestCase.validate(this.testCase)) - } - - detachVizzu(iframe) { - if (typeof iframe?.contentWindow?.testRunner?.chart?.detach === 'function') { - iframe.contentWindow.testRunner.chart.detach() - } - } - - connectSliders() { - const waitForLoad = new Promise((resolve) => { - this.frame.addEventListener('load', () => resolve()) - }) - - const waitForLoadRef = new Promise((resolve) => { - if (this.frameRef.style.display !== 'none') { - this.frameRef.addEventListener('load', () => resolve()) - } else { - resolve() - } - }) - - return Promise.all([waitForLoad, waitForLoadRef]) - .then(() => - Promise.all([ - this.frame.contentWindow.testRunner.chartReady, - this.frameRef.contentWindow.testRunner?.chartReady - ]) - ) - .then((setups) => { - const slider = this.frame.contentWindow.document.getElementById('myRange') - const sliderRef = this.frameRef.contentWindow.document.getElementById('myRange') - slider.addEventListener('input', (e) => { - this.frameRef.contentWindow.testRunner?.setSlider(e.target.value) - }) - - if (this.frameRef.style.display !== 'none') { - sliderRef.addEventListener('input', (e) => { - this.frame.contentWindow.testRunner?.setSlider(e.target.value) - }) - } - return setups - }) - } - - run(charts) { - this.frame.contentWindow.testRunner.run(charts[0]) - if (this.frameRef.style.display !== 'none') { - this.frameRef.contentWindow.testRunner.run(charts[1]) - } - } - - setupFilter(id) { - const filter = document.querySelector(id) - filter.addEventListener('input', () => { - this.filterCases() - }) - return filter - } - - openSelectedInVSCode() { - const testCaseObject = JSON.parse(this.testCase.value) - const testCasePath = testCaseObject.testRepo + testCaseObject.testFile + '.mjs' - const encodedTestCasePath = encodeURIComponent(testCasePath) - const vscodeUri = `vscode://file/${encodedTestCasePath}` - window.open(vscodeUri, '_blank') - } - - filterCases() { - const testCaseOptions = this.testCase.options - for (let i = 0; i < testCaseOptions.length; i++) { - const testCaseData = JSON.parse(testCaseOptions[i].value) - - const testName = testCaseData.testName.toLowerCase() - const filterName = this.filterByName.value.toLowerCase() - - const testResult = testCaseData.testResult?.toLowerCase() ?? '-' - const filterResult = this.filterByResult.value.toLowerCase() - - if (testName.includes(filterName) && testResult.includes(filterResult)) { - testCaseOptions[i].style.display = 'block' - } else { - testCaseOptions[i].style.display = 'none' - } - } - } + constructor() { + this.url = new Url() + + this.vizzuUrl = document.querySelector('#vizzuUrl') + this.vizzuRef = document.querySelector('#vizzuRef') + this.testCase = document.querySelector('#testCase') + this.frame = document.querySelector('#frame') + this.frameRef = document.querySelector('#frame-ref') + this.difCanvas = document.querySelector('#canvas-dif') + this.replay = document.querySelector('#replay') + this.play = document.querySelector('#play') + this.vscode = document.querySelector('#vscode') + this.validate = document.querySelector('#validate') + + this.setupUserInterface() + Promise.all([this.populateLibs(), this.populateCases()]).then(() => { + this.update() + }) + } + + setupUserInterface() { + this.setupFilters() + this.setupSelects() + this.setupButtons() + } + + populateLibs() { + return fetch('/getLibs') + .then((response) => response.json()) + .then((data) => { + const testLibs = Object.entries(data).map(([name, url]) => new TestLib(url, name)) + testLibs.forEach((testLib) => { + testLib.createOption(this.vizzuUrl) + testLib.createOption(this.vizzuRef) + }) + + const lastSelectedUrl = + data[this.url.getQueryParam('vizzuUrl')] || localStorage.getItem('vizzuUrl') + this.vizzuUrl.value = lastSelectedUrl + if (!this.vizzuUrl.value) this.vizzuUrl.value = data.localhost + + const lastSelectedRefUrl = + data[this.url.getQueryParam('vizzuRefUrl')] || localStorage.getItem('vizzuRef') + this.vizzuRef.value = lastSelectedRefUrl + if (!this.vizzuRef.value) this.vizzuRef.value = data.HEAD || data.localhost + }) + } + + populateCases() { + return fetch('/getTests') + .then((response) => response.json()) + .then((data) => { + let lastSelected = localStorage.getItem('testCase') + const testCases = data.map( + (testData) => + new TestCase( + testData.testConfig, + testData.testFile, + testData.testIndex, + testData.testName, + testData.testResult, + testData.testRepo, + testData.testSuite, + testData.testType + ) + ) + + testCases.forEach((testCase) => { + if ( + testCase.testFile === this.url.getQueryParam('testFile') && + // eslint-disable-next-line eqeqeq + testCase.testIndex == this.url.getQueryParam('testIndex') + ) { + lastSelected = JSON.stringify(testCase) + } + testCase.createOption(this.testCase) + }) + + this.testCase.value = lastSelected + if (!this.testCase.value) this.testCase.value = JSON.stringify(testCases[0]) + }) + } + + update() { + localStorage.setItem('vizzuUrl', this.vizzuUrl.value) + localStorage.setItem('vizzuRef', this.vizzuRef.value) + localStorage.setItem('testCase', this.testCase.value) + TestCase.populateStyle(this.testCase) + const testCaseObject = JSON.parse(this.testCase.value) + this.detachVizzu(this.frame) + this.frame.src = `frame.html?testFile=${testCaseObject.testFile}&testType=${testCaseObject.testType}&testIndex=${testCaseObject.testIndex}&vizzuUrl=${this.vizzuUrl.value}` + if (this.vizzuUrl.value !== this.vizzuRef.value) { + this.difCanvas.style.display = 'inline' + this.frameRef.style.display = 'inline' + this.detachVizzu(this.frameRef) + this.frameRef.src = `frame.html?testFile=${testCaseObject.testFile}&testType=${testCaseObject.testType}&testIndex=${testCaseObject.testIndex}&vizzuUrl=${this.vizzuRef.value}` + const imgDiff = new ImgDiff(this.frame, this.frameRef, this.difCanvas) + imgDiff.getDiff() + } else { + this.difCanvas.style.display = 'none' + this.frameRef.style.display = 'none' + } + + this.connectSliders().then((charts) => { + setTimeout(() => { + this.run(charts) + }, 0) + }) + } + + setupFilters() { + this.filterByName = this.setupFilter('#filterByName') + this.filterByResult = this.setupFilter('#filterByResult') + } + + setupSelects() { + this.vizzuUrl.addEventListener('change', () => this.update()) + this.vizzuRef.addEventListener('change', () => this.update()) + this.testCase.addEventListener('change', () => this.update()) + } + + setupButtons() { + this.replay.addEventListener('click', () => this.update()) + this.play.addEventListener('click', () => this.run([undefined, undefined])) + this.vscode.addEventListener('click', () => this.openSelectedInVSCode()) + this.validate.addEventListener('click', () => TestCase.validate(this.testCase)) + } + + detachVizzu(iframe) { + if (typeof iframe?.contentWindow?.testRunner?.chart?.detach === 'function') { + iframe.contentWindow.testRunner.chart.detach() + } + } + + connectSliders() { + const waitForLoad = new Promise((resolve) => { + this.frame.addEventListener('load', () => resolve()) + }) + + const waitForLoadRef = new Promise((resolve) => { + if (this.frameRef.style.display !== 'none') { + this.frameRef.addEventListener('load', () => resolve()) + } else { + resolve() + } + }) + + return Promise.all([waitForLoad, waitForLoadRef]) + .then(() => + Promise.all([ + this.frame.contentWindow.testRunner.chartReady, + this.frameRef.contentWindow.testRunner?.chartReady + ]) + ) + .then((setups) => { + const slider = this.frame.contentWindow.document.getElementById('myRange') + const sliderRef = this.frameRef.contentWindow.document.getElementById('myRange') + slider.addEventListener('input', (e) => { + this.frameRef.contentWindow.testRunner?.setSlider(e.target.value) + }) + + if (this.frameRef.style.display !== 'none') { + sliderRef.addEventListener('input', (e) => { + this.frame.contentWindow.testRunner?.setSlider(e.target.value) + }) + } + return setups + }) + } + + run(charts) { + this.frame.contentWindow.testRunner.run(charts[0]) + if (this.frameRef.style.display !== 'none') { + this.frameRef.contentWindow.testRunner.run(charts[1]) + } + } + + setupFilter(id) { + const filter = document.querySelector(id) + filter.addEventListener('input', () => { + this.filterCases() + }) + return filter + } + + openSelectedInVSCode() { + const testCaseObject = JSON.parse(this.testCase.value) + const testCasePath = testCaseObject.testRepo + testCaseObject.testFile + '.mjs' + const encodedTestCasePath = encodeURIComponent(testCasePath) + const vscodeUri = `vscode://file/${encodedTestCasePath}` + window.open(vscodeUri, '_blank') + } + + filterCases() { + const testCaseOptions = this.testCase.options + for (let i = 0; i < testCaseOptions.length; i++) { + const testCaseData = JSON.parse(testCaseOptions[i].value) + + const testName = testCaseData.testName.toLowerCase() + const filterName = this.filterByName.value.toLowerCase() + + const testResult = testCaseData.testResult?.toLowerCase() ?? '-' + const filterResult = this.filterByResult.value.toLowerCase() + + if (testName.includes(filterName) && testResult.includes(filterResult)) { + testCaseOptions[i].style.display = 'block' + } else { + testCaseOptions[i].style.display = 'none' + } + } + } } // eslint-disable-next-line no-unused-vars diff --git a/test/integration/tools/manual/client/test-case.js b/test/integration/tools/manual/client/test-case.js index 0df0897f9..ab35b98ec 100644 --- a/test/integration/tools/manual/client/test-case.js +++ b/test/integration/tools/manual/client/test-case.js @@ -1,91 +1,93 @@ import { TestCaseResult, TestHashStatus } from '../shared/test-case.js' class TestCase { - constructor( - testConfig, - testFile, - testIndex, - testName, - testResult, - testRepo, - testSuite, - testType - ) { - this.testConfig = testConfig - this.testFile = testFile - this.testIndex = testIndex - this.testName = testName - this.testResult = testResult - this.testRepo = testRepo - this.testSuite = testSuite - this.testType = testType - } + constructor( + testConfig, + testFile, + testIndex, + testName, + testResult, + testRepo, + testSuite, + testType + ) { + this.testConfig = testConfig + this.testFile = testFile + this.testIndex = testIndex + this.testName = testName + this.testResult = testResult + this.testRepo = testRepo + this.testSuite = testSuite + this.testType = testType + } - static fromJSON(json) { - return new TestCase( - json.testConfig, - json.testFile, - json.testIndex, - json.testName, - json.testResult, - json.testRepo, - json.testSuite, - json.testType - ) - } + static fromJSON(json) { + return new TestCase( + json.testConfig, + json.testFile, + json.testIndex, + json.testName, + json.testResult, + json.testRepo, + json.testSuite, + json.testType + ) + } - createOption(select) { - const option = document.createElement('option') - option.value = JSON.stringify(this) - option.setAttribute('name', this.testName) - this.populateResult(option) - select.appendChild(option) - } + createOption(select) { + const option = document.createElement('option') + option.value = JSON.stringify(this) + option.setAttribute('name', this.testName) + this.populateResult(option) + select.appendChild(option) + } - populateResult(option) { - option.setAttribute('result', this.testResult) - option.setAttribute('background-color', TestCaseResult.getColor(this.testResult)) - option.textContent = this.testResult ? `${this.testName} | ${this.testResult}` : this.testName - } + populateResult(option) { + option.setAttribute('result', this.testResult) + option.setAttribute('background-color', TestCaseResult.getColor(this.testResult)) + option.textContent = this.testResult + ? `${this.testName} | ${this.testResult}` + : this.testName + } - static populateStyle(select) { - select.querySelectorAll('option').forEach((option) => { - option.style.backgroundColor = option.selected - ? 'rgba(206,206,206,255)' - : option.getAttribute('background-color') - }) - } + static populateStyle(select) { + select.querySelectorAll('option').forEach((option) => { + option.style.backgroundColor = option.selected + ? 'rgba(206,206,206,255)' + : option.getAttribute('background-color') + }) + } - static validate(select) { - const testCaseValue = select.value - fetch('/validateTestCase', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ testCaseValue }) - }) - .then((response) => response.json()) - .then((data) => { - if (data.status === TestHashStatus.TYPES.UNCHANGED) { - console.warn(`Hash ${data.status}`) - } else if ( - data.status === TestHashStatus.TYPES.ADDED || - data.status === TestHashStatus.TYPES.UPDATED - ) { - console.log(`Hash ${data.status}`) - const option = select.options[select.selectedIndex] - const testCase = TestCase.fromJSON(JSON.parse(option.value)) - testCase.testResult = TestCaseResult.TYPES.PASSED - testCase.populateResult(option) - } else { - console.error('Hash validation failed:', data.status) - } - }) - .catch((error) => { - console.error('Hash validation failed:', error) - }) - } + static validate(select) { + const testCaseValue = select.value + fetch('/validateTestCase', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ testCaseValue }) + }) + .then((response) => response.json()) + .then((data) => { + if (data.status === TestHashStatus.TYPES.UNCHANGED) { + console.warn(`Hash ${data.status}`) + } else if ( + data.status === TestHashStatus.TYPES.ADDED || + data.status === TestHashStatus.TYPES.UPDATED + ) { + console.log(`Hash ${data.status}`) + const option = select.options[select.selectedIndex] + const testCase = TestCase.fromJSON(JSON.parse(option.value)) + testCase.testResult = TestCaseResult.TYPES.PASSED + testCase.populateResult(option) + } else { + console.error('Hash validation failed:', data.status) + } + }) + .catch((error) => { + console.error('Hash validation failed:', error) + }) + } } export default TestCase diff --git a/test/integration/tools/manual/client/test-lib.js b/test/integration/tools/manual/client/test-lib.js index e23541234..bf1c789f3 100644 --- a/test/integration/tools/manual/client/test-lib.js +++ b/test/integration/tools/manual/client/test-lib.js @@ -1,15 +1,15 @@ class TestLib { - constructor(url, name) { - this.url = url - this.name = name - } + constructor(url, name) { + this.url = url + this.name = name + } - createOption(select) { - const option = document.createElement('option') - option.value = this.url - option.textContent = this.name - select.appendChild(option) - } + createOption(select) { + const option = document.createElement('option') + option.value = this.url + option.textContent = this.name + select.appendChild(option) + } } export default TestLib diff --git a/test/integration/tools/manual/client/url.js b/test/integration/tools/manual/client/url.js index 0b4c37e85..ebd4f572a 100644 --- a/test/integration/tools/manual/client/url.js +++ b/test/integration/tools/manual/client/url.js @@ -1,14 +1,14 @@ export default class Url { - constructor() { - this.urlParams = Url.getQueryParams() - } + constructor() { + this.urlParams = Url.getQueryParams() + } - static getQueryParams() { - const queryString = window.location.search - return new URLSearchParams(queryString) - } + static getQueryParams() { + const queryString = window.location.search + return new URLSearchParams(queryString) + } - getQueryParam(param) { - return this.urlParams.get(param) - } + getQueryParam(param) { + return this.urlParams.get(param) + } } diff --git a/test/integration/tools/manual/server/handlers/libs.cjs b/test/integration/tools/manual/server/handlers/libs.cjs index 002d3c208..a2fe863a4 100644 --- a/test/integration/tools/manual/server/handlers/libs.cjs +++ b/test/integration/tools/manual/server/handlers/libs.cjs @@ -5,90 +5,93 @@ const VizzuCloudFunctions = require('../../../../modules/vizzu/vizzu-cloudfuncti const VizzuVersion = require('../../../../modules/vizzu/vizzu-version.cjs') class LibsHandler { - constructor(res, workspaceHostServerPort) { - this.res = res - this.workspaceHostServerPort = workspaceHostServerPort - } + constructor(res, workspaceHostServerPort) { + this.res = res + this.workspaceHostServerPort = workspaceHostServerPort + } - handle() { - const localReady = this.#getLocal() - const headReady = this.#getHead() - const shaLibsReady = this.#getSHALibs() - const cdnLibsReady = this.#getCDNLibs() + handle() { + const localReady = this.#getLocal() + const headReady = this.#getHead() + const shaLibsReady = this.#getSHALibs() + const cdnLibsReady = this.#getCDNLibs() - Promise.all([localReady, headReady, shaLibsReady, cdnLibsReady]) - .then((versions) => { - this.res.send(Object.assign({}, ...versions)) - }) - .catch((err) => { - console.error(err) - this.res.status(500).send('internal server error') - }) - } + Promise.all([localReady, headReady, shaLibsReady, cdnLibsReady]) + .then((versions) => { + this.res.send(Object.assign({}, ...versions)) + }) + .catch((err) => { + console.error(err) + this.res.status(500).send('internal server error') + }) + } - #getLocal() { - const localUrl = `http://127.0.0.1:${this.workspaceHostServerPort}/dist/vizzu.js` - return VizzuVersion.checkUrlAvailability(localUrl) - .then(() => ({ localhost: localUrl })) - .catch((err) => { - console.error(err) - console.error('failed to fetch localhost') - return {} - }) - } + #getLocal() { + const localUrl = `http://127.0.0.1:${this.workspaceHostServerPort}/dist/vizzu.js` + return VizzuVersion.checkUrlAvailability(localUrl) + .then(() => ({ localhost: localUrl })) + .catch((err) => { + console.error(err) + console.error('failed to fetch localhost') + return {} + }) + } - #getHead() { - const headUrl = VizzuUrl.getRemoteStableBucket() + '/lib/vizzu.js' - return VizzuVersion.checkUrlAvailability(headUrl) - .then(() => ({ HEAD: headUrl })) - .catch((err) => { - console.error(err) - console.error('failed to fetch head') - return {} - }) - } + #getHead() { + const headUrl = VizzuUrl.getRemoteStableBucket() + '/lib/vizzu.js' + return VizzuVersion.checkUrlAvailability(headUrl) + .then(() => ({ HEAD: headUrl })) + .catch((err) => { + console.error(err) + console.error('failed to fetch head') + return {} + }) + } - #getSHALibs() { - return this.#fetchSHALibs() - .then((vizzuList) => { - const versions = {} - vizzuList.reverse().forEach((vizzu) => { - versions[`${vizzu.time.substring(0, 10)} ${vizzu.time.substring(11, 16)} ${vizzu.sha}`] = - VizzuUrl.getRemoteBucket() + '/' + vizzu.sha - }) - return versions - }) - .catch((err) => { - console.error(err) - console.error('failed to fetch sha lib list') - return {} - }) - } + #getSHALibs() { + return this.#fetchSHALibs() + .then((vizzuList) => { + const versions = {} + vizzuList.reverse().forEach((vizzu) => { + versions[ + `${vizzu.time.substring(0, 10)} ${vizzu.time.substring(11, 16)} ${ + vizzu.sha + }` + ] = VizzuUrl.getRemoteBucket() + '/' + vizzu.sha + }) + return versions + }) + .catch((err) => { + console.error(err) + console.error('failed to fetch sha lib list') + return {} + }) + } - #getCDNLibs() { - return VizzuVersion.getPublicBetaList() - .then((cdnList) => { - const versions = {} - cdnList.forEach((version) => { - versions[version.num] = version.url - }) - return versions - }) - .catch((err) => { - console.error(err) - console.error('failed to fetch public beta list') - return {} - }) - } + #getCDNLibs() { + return VizzuVersion.getPublicBetaList() + .then((cdnList) => { + const versions = {} + cdnList.forEach((version) => { + versions[version.num] = version.url + }) + return versions + }) + .catch((err) => { + console.error(err) + console.error('failed to fetch public beta list') + return {} + }) + } - #fetchSHALibs() { - return fetch(VizzuCloudFunctions.getRemoteCloudFunctions() + '/getVizzuList') - .then((vizzuListUrl) => vizzuListUrl.json()) - .catch((err) => { - console.error(err) - return [] - }) - } + #fetchSHALibs() { + return fetch(VizzuCloudFunctions.getRemoteCloudFunctions() + '/getVizzuList') + .then((vizzuListUrl) => vizzuListUrl.json()) + .catch((err) => { + console.error(err) + return [] + }) + } } module.exports = LibsHandler diff --git a/test/integration/tools/manual/server/handlers/test-case.cjs b/test/integration/tools/manual/server/handlers/test-case.cjs index e4287e4a2..aff306c75 100644 --- a/test/integration/tools/manual/server/handlers/test-case.cjs +++ b/test/integration/tools/manual/server/handlers/test-case.cjs @@ -5,247 +5,251 @@ const prettier = require('prettier') const TestEnv = require('../../../../modules/integration-test/test-env.cjs') class TestCaseHandler { - #testCaseModule - - constructor(testCaseModule, req, res) { - this.req = req - this.res = res - - this.#testCaseModule = testCaseModule - } - - handle() { - const { testCaseValue } = this.req.body - const testCase = JSON.parse(testCaseValue) - new TestConfigUpdater(this.#testCaseModule, testCase) - .update() - .then((status) => - new TestLogUpdater(this.#testCaseModule, testCase, status).update().then(() => { - this.res.json({ status }) - }) - ) - .catch((err) => { - console.error(err) - this.res.status(500).send('internal server error') - }) - } + #testCaseModule + + constructor(testCaseModule, req, res) { + this.req = req + this.res = res + + this.#testCaseModule = testCaseModule + } + + handle() { + const { testCaseValue } = this.req.body + const testCase = JSON.parse(testCaseValue) + new TestConfigUpdater(this.#testCaseModule, testCase) + .update() + .then((status) => + new TestLogUpdater(this.#testCaseModule, testCase, status).update().then(() => { + this.res.json({ status }) + }) + ) + .catch((err) => { + console.error(err) + this.res.status(500).send('internal server error') + }) + } } class TestConfigUpdater { - #testCase - #testCaseRelativeName - #testHashStatus - - #testCaseModule - - constructor(testCaseModule, testCase) { - this.#testCase = testCase - this.#testCaseRelativeName = this.#getTestCaseRelativeName() - - this.#testCaseModule = testCaseModule - } - - #getTestCaseRelativeName() { - const workspacePath = TestEnv.getWorkspacePath() - return path.relative( - path.join(workspacePath, this.#testCase.testSuite), - path.join(workspacePath, this.#testCase.testName) - ) - } - - update() { - return new Promise((resolve, reject) => { - if ( - this.#testCase.testResult === this.#testCaseModule.TestCaseResult.TYPES.PASSED || - this.#testCase.testResult === this.#testCaseModule.TestCaseResult.TYPES.UNKNOWN - ) { - this.#testHashStatus = this.#testCaseModule.TestHashStatus.TYPES.UNCHANGED - resolve(this.#testHashStatus) - } else { - this.#getNewHash() - .then((newHash) => this.#updateRefHash(newHash)) - .then(() => resolve(this.#testHashStatus)) - .catch((error) => reject(error)) - } - }) - } - - #getNewHash() { - return this.#loadNewHash().catch((error) => { - console.log(error) - throw new Error('Failed to get new hash') - }) - } - - #updateRefHash(newHash) { - const refConfigPath = this.#getRefConfigPath() - return this.#getRefConfig() - .then((refConfig) => { - refConfig = this.#addNewHash(refConfig, newHash) - return this.#writeConfig(refConfigPath, refConfig) - }) - .catch((error) => { - throw error - }) - } - - #loadNewHash() { - const newConfigReady = this.#getNewConfig() - return newConfigReady.then((newConfig) => { - const newRefs = newConfig.test[this.#testCaseRelativeName]?.refs - if (newRefs?.length !== 1) throw new Error('No hash or multiple hashes are found') - const newHash = newRefs[0] - return newHash - }) - } - - #getRefConfigPath() { - return this.#testCase.testConfig - } - - #getRefConfig() { - const refConfigPath = this.#getRefConfigPath() - return this.#loadConfig(refConfigPath) - } - - #addNewHash(refConfig, newHash) { - const refs = this.#getRefHash(refConfig) - if (Array.isArray(refs)) { - if (refs.length !== 1) throw new Error('No hash or multiple hashes are found') - const ref = refConfig.test[this.#testCaseRelativeName]?.refs[0] - if (ref === newHash) { - this.#testHashStatus = this.#testCaseModule.TestHashStatus.TYPES.UNCHANGED - } else { - refConfig.test[this.#testCaseRelativeName].refs[0] = newHash - this.#testHashStatus = this.#testCaseModule.TestHashStatus.TYPES.UPDATED - } - } else { - ;((refConfig.test ||= {})[this.#testCaseRelativeName] ||= {}).refs ||= [] - refConfig.test[this.#testCaseRelativeName].refs[0] = newHash - this.#testHashStatus = this.#testCaseModule.TestHashStatus.TYPES.ADDED - } - return refConfig - } - - #writeConfig(configPath, config) { - return prettier - .format(JSON.stringify(config, null, 2), { - parser: 'json', - tabWidth: 2 - }) - .then((stringifiedConfig) => { - return fs - .writeFile(configPath, stringifiedConfig) - .then(() => {}) - .catch((error) => { - throw error - }) - }) - } - - #getNewConfig() { - const newConfigPath = this.#getNewConfigPath() - return this.#loadConfig(newConfigPath) - } - - #loadConfig(configPath) { - return fs - .readFile(configPath, 'utf-8') - .then((config) => { - return JSON.parse(config) - }) - .catch((error) => { - throw error - }) - } - - #getRefHash(refConfig) { - try { - const refs = refConfig.test[this.#testCaseRelativeName]?.refs - return refs - } catch (error) {} - } - - #getNewConfigPath() { - const configName = path.basename(this.#testCase.testConfig) - const relativeSuitePath = this.#getRelativeSuitePath() - const configPath = path.join(TestEnv.getTestSuiteResultsPath(), relativeSuitePath, configName) - return configPath - } - - #getRelativeSuitePath() { - return path.relative(TestEnv.getTestSuiteRelativePath(), this.#testCase.testSuite) - } + #testCase + #testCaseRelativeName + #testHashStatus + + #testCaseModule + + constructor(testCaseModule, testCase) { + this.#testCase = testCase + this.#testCaseRelativeName = this.#getTestCaseRelativeName() + + this.#testCaseModule = testCaseModule + } + + #getTestCaseRelativeName() { + const workspacePath = TestEnv.getWorkspacePath() + return path.relative( + path.join(workspacePath, this.#testCase.testSuite), + path.join(workspacePath, this.#testCase.testName) + ) + } + + update() { + return new Promise((resolve, reject) => { + if ( + this.#testCase.testResult === this.#testCaseModule.TestCaseResult.TYPES.PASSED || + this.#testCase.testResult === this.#testCaseModule.TestCaseResult.TYPES.UNKNOWN + ) { + this.#testHashStatus = this.#testCaseModule.TestHashStatus.TYPES.UNCHANGED + resolve(this.#testHashStatus) + } else { + this.#getNewHash() + .then((newHash) => this.#updateRefHash(newHash)) + .then(() => resolve(this.#testHashStatus)) + .catch((error) => reject(error)) + } + }) + } + + #getNewHash() { + return this.#loadNewHash().catch((error) => { + console.log(error) + throw new Error('Failed to get new hash') + }) + } + + #updateRefHash(newHash) { + const refConfigPath = this.#getRefConfigPath() + return this.#getRefConfig() + .then((refConfig) => { + refConfig = this.#addNewHash(refConfig, newHash) + return this.#writeConfig(refConfigPath, refConfig) + }) + .catch((error) => { + throw error + }) + } + + #loadNewHash() { + const newConfigReady = this.#getNewConfig() + return newConfigReady.then((newConfig) => { + const newRefs = newConfig.test[this.#testCaseRelativeName]?.refs + if (newRefs?.length !== 1) throw new Error('No hash or multiple hashes are found') + const newHash = newRefs[0] + return newHash + }) + } + + #getRefConfigPath() { + return this.#testCase.testConfig + } + + #getRefConfig() { + const refConfigPath = this.#getRefConfigPath() + return this.#loadConfig(refConfigPath) + } + + #addNewHash(refConfig, newHash) { + const refs = this.#getRefHash(refConfig) + if (Array.isArray(refs)) { + if (refs.length !== 1) throw new Error('No hash or multiple hashes are found') + const ref = refConfig.test[this.#testCaseRelativeName]?.refs[0] + if (ref === newHash) { + this.#testHashStatus = this.#testCaseModule.TestHashStatus.TYPES.UNCHANGED + } else { + refConfig.test[this.#testCaseRelativeName].refs[0] = newHash + this.#testHashStatus = this.#testCaseModule.TestHashStatus.TYPES.UPDATED + } + } else { + ;((refConfig.test ||= {})[this.#testCaseRelativeName] ||= {}).refs ||= [] + refConfig.test[this.#testCaseRelativeName].refs[0] = newHash + this.#testHashStatus = this.#testCaseModule.TestHashStatus.TYPES.ADDED + } + return refConfig + } + + #writeConfig(configPath, config) { + return prettier + .format(JSON.stringify(config, null, 2), { + parser: 'json', + tabWidth: 2 + }) + .then((stringifiedConfig) => { + return fs + .writeFile(configPath, stringifiedConfig) + .then(() => {}) + .catch((error) => { + throw error + }) + }) + } + + #getNewConfig() { + const newConfigPath = this.#getNewConfigPath() + return this.#loadConfig(newConfigPath) + } + + #loadConfig(configPath) { + return fs + .readFile(configPath, 'utf-8') + .then((config) => { + return JSON.parse(config) + }) + .catch((error) => { + throw error + }) + } + + #getRefHash(refConfig) { + try { + const refs = refConfig.test[this.#testCaseRelativeName]?.refs + return refs + } catch (error) {} + } + + #getNewConfigPath() { + const configName = path.basename(this.#testCase.testConfig) + const relativeSuitePath = this.#getRelativeSuitePath() + const configPath = path.join( + TestEnv.getTestSuiteResultsPath(), + relativeSuitePath, + configName + ) + return configPath + } + + #getRelativeSuitePath() { + return path.relative(TestEnv.getTestSuiteRelativePath(), this.#testCase.testSuite) + } } class TestLogUpdater { - #testCase - #testCaseRelativeName - #testHashStatus - - #testCaseModule - - constructor(testCaseModule, testCase, testHashStatus) { - this.#testCase = testCase - this.#testCaseRelativeName = this.#getTestCaseRelativeName() - this.#testHashStatus = testHashStatus - - this.#testCaseModule = testCaseModule - } - - #getTestCaseRelativeName() { - return path.relative( - TestEnv.getTestSuitePath(), - path.join(TestEnv.getWorkspacePath(), this.#testCase.testName) - ) - } - - update() { - if (this.#testHashStatus === this.#testCaseModule.TestHashStatus.TYPES.UPDATED) { - const failedPath = TestEnv.getTestSuiteFailedLog() - const passedPath = TestEnv.getTestSuitePassedLog() - return Promise.all([ - this.#removeTestCaseFromLog(failedPath), - this.#addTestCaseToLog(passedPath) - ]) - } else if (this.#testHashStatus === this.#testCaseModule.TestHashStatus.TYPES.ADDED) { - const warningsPath = TestEnv.getTestSuiteWarningsLog() - const passedPath = TestEnv.getTestSuitePassedLog() - return Promise.all([ - this.#removeTestCaseFromLog(warningsPath), - this.#addTestCaseToLog(passedPath) - ]) - } else { - return Promise.resolve() - } - } - - #removeTestCaseFromLog(logPath) { - return fs - .readFile(logPath, 'utf8') - .then((data) => { - const testCaseRelativeName = ` ${this.#testCaseRelativeName}` - const updatedData = data.replace(testCaseRelativeName, '') - return fs.writeFile(logPath, updatedData, 'utf8') - }) - .catch((err) => { - console.error(err) - }) - } - - #addTestCaseToLog(logPath) { - const testCaseRelativeName = ` ${this.#testCaseRelativeName}` - return fs - .readFile(logPath, 'utf8') - .then((data) => { - if (!data.includes(testCaseRelativeName)) { - return fs.appendFile(logPath, testCaseRelativeName, 'utf8') - } - }) - .catch((err) => { - console.error(err) - }) - } + #testCase + #testCaseRelativeName + #testHashStatus + + #testCaseModule + + constructor(testCaseModule, testCase, testHashStatus) { + this.#testCase = testCase + this.#testCaseRelativeName = this.#getTestCaseRelativeName() + this.#testHashStatus = testHashStatus + + this.#testCaseModule = testCaseModule + } + + #getTestCaseRelativeName() { + return path.relative( + TestEnv.getTestSuitePath(), + path.join(TestEnv.getWorkspacePath(), this.#testCase.testName) + ) + } + + update() { + if (this.#testHashStatus === this.#testCaseModule.TestHashStatus.TYPES.UPDATED) { + const failedPath = TestEnv.getTestSuiteFailedLog() + const passedPath = TestEnv.getTestSuitePassedLog() + return Promise.all([ + this.#removeTestCaseFromLog(failedPath), + this.#addTestCaseToLog(passedPath) + ]) + } else if (this.#testHashStatus === this.#testCaseModule.TestHashStatus.TYPES.ADDED) { + const warningsPath = TestEnv.getTestSuiteWarningsLog() + const passedPath = TestEnv.getTestSuitePassedLog() + return Promise.all([ + this.#removeTestCaseFromLog(warningsPath), + this.#addTestCaseToLog(passedPath) + ]) + } else { + return Promise.resolve() + } + } + + #removeTestCaseFromLog(logPath) { + return fs + .readFile(logPath, 'utf8') + .then((data) => { + const testCaseRelativeName = ` ${this.#testCaseRelativeName}` + const updatedData = data.replace(testCaseRelativeName, '') + return fs.writeFile(logPath, updatedData, 'utf8') + }) + .catch((err) => { + console.error(err) + }) + } + + #addTestCaseToLog(logPath) { + const testCaseRelativeName = ` ${this.#testCaseRelativeName}` + return fs + .readFile(logPath, 'utf8') + .then((data) => { + if (!data.includes(testCaseRelativeName)) { + return fs.appendFile(logPath, testCaseRelativeName, 'utf8') + } + }) + .catch((err) => { + console.error(err) + }) + } } module.exports = TestCaseHandler diff --git a/test/integration/tools/manual/server/handlers/tests.cjs b/test/integration/tools/manual/server/handlers/tests.cjs index c09823810..1224a5d15 100644 --- a/test/integration/tools/manual/server/handlers/tests.cjs +++ b/test/integration/tools/manual/server/handlers/tests.cjs @@ -5,78 +5,78 @@ const TestCasesConfig = require('../../../../modules/integration-test/test-case/ const TestCases = require('../../../../modules/integration-test/test-case/test-cases.cjs') class TestsHandler { - #testCaseModule + #testCaseModule - constructor(testCaseModule, res, configPathList, filters) { - this.res = res - this.configPathList = configPathList - this.filters = filters + constructor(testCaseModule, res, configPathList, filters) { + this.res = res + this.configPathList = configPathList + this.filters = filters - this.#testCaseModule = testCaseModule - } + this.#testCaseModule = testCaseModule + } - handle() { - const testCasesConfigReady = TestCasesConfig.getConfig(this.configPathList) - const testResultsReady = this.#getTestResults() - const testCasesReady = TestCases.getTestCases(testCasesConfigReady, this.filters) + handle() { + const testCasesConfigReady = TestCasesConfig.getConfig(this.configPathList) + const testResultsReady = this.#getTestResults() + const testCasesReady = TestCases.getTestCases(testCasesConfigReady, this.filters) - Promise.all([testCasesReady, testResultsReady]) - .then(([testCases, testResults]) => { - testCases.filteredTestCases.forEach((testCase) => { - testCase.testResult = this.#getTestCaseResult(testCase.testName, testResults) - }) - this.res.send(testCases.filteredTestCases) - }) - .catch((err) => { - console.error(err) - this.res.status(500).send('internal server error') - }) - } + Promise.all([testCasesReady, testResultsReady]) + .then(([testCases, testResults]) => { + testCases.filteredTestCases.forEach((testCase) => { + testCase.testResult = this.#getTestCaseResult(testCase.testName, testResults) + }) + this.res.send(testCases.filteredTestCases) + }) + .catch((err) => { + console.error(err) + this.res.status(500).send('internal server error') + }) + } - #getTestResults() { - return Promise.all([this.#getPassed(), this.#getWarnings(), this.#getFailed()]) - } + #getTestResults() { + return Promise.all([this.#getPassed(), this.#getWarnings(), this.#getFailed()]) + } - #getTestCaseResult(testName, testResults) { - const [passed, warnings, failed] = testResults - if (passed.includes(testName)) { - return this.#testCaseModule.TestCaseResult.TYPES.PASSED - } else if (warnings.includes(testName)) { - return this.#testCaseModule.TestCaseResult.TYPES.WARNING - } else if (failed.includes(testName)) { - return this.#testCaseModule.TestCaseResult.TYPES.FAILED - } - } + #getTestCaseResult(testName, testResults) { + const [passed, warnings, failed] = testResults + if (passed.includes(testName)) { + return this.#testCaseModule.TestCaseResult.TYPES.PASSED + } else if (warnings.includes(testName)) { + return this.#testCaseModule.TestCaseResult.TYPES.WARNING + } else if (failed.includes(testName)) { + return this.#testCaseModule.TestCaseResult.TYPES.FAILED + } + } - #getPassed() { - const logPath = TestEnv.getTestSuitePassedLog() - return this.#getLog(logPath) - } + #getPassed() { + const logPath = TestEnv.getTestSuitePassedLog() + return this.#getLog(logPath) + } - #getWarnings() { - const logPath = TestEnv.getTestSuiteWarningsLog() - return this.#getLog(logPath) - } + #getWarnings() { + const logPath = TestEnv.getTestSuiteWarningsLog() + return this.#getLog(logPath) + } - #getFailed() { - const logPath = TestEnv.getTestSuiteFailedLog() - return this.#getLog(logPath) - } + #getFailed() { + const logPath = TestEnv.getTestSuiteFailedLog() + return this.#getLog(logPath) + } - #getLog(logPath) { - return fs - .readFile(logPath, 'utf8') - .then((data) => { - const prefix = `/${TestEnv.getTestSuiteRelativePath()}/` - const tests = data - .trim() - .split(' ') - .filter((test) => test !== '') - .map((test) => prefix + test) - return tests - }) - .catch(() => []) - } + #getLog(logPath) { + return fs + .readFile(logPath, 'utf8') + .then((data) => { + const prefix = `/${TestEnv.getTestSuiteRelativePath()}/` + const tests = data + .trim() + .split(' ') + .filter((test) => test !== '') + .map((test) => prefix + test) + return tests + }) + .catch(() => []) + } } module.exports = TestsHandler diff --git a/test/integration/tools/manual/server/main.cjs b/test/integration/tools/manual/server/main.cjs index 215897679..3c2ee752c 100644 --- a/test/integration/tools/manual/server/main.cjs +++ b/test/integration/tools/manual/server/main.cjs @@ -6,70 +6,70 @@ const TestsHandler = require('./handlers/tests.cjs') const TestCaseHandler = require('./handlers/test-case.cjs') class ManualServer { - #workspaceHost - #workspaceHostReady - #workspaceHostServerPort + #workspaceHost + #workspaceHostReady + #workspaceHostServerPort - #testCaseModuleReady + #testCaseModuleReady - #configPathList - #filters + #configPathList + #filters - constructor(configPathList, filters, workspaceHostServerPort) { - this.#configPathList = configPathList - this.#filters = filters - this.#workspaceHostServerPort = workspaceHostServerPort + constructor(configPathList, filters, workspaceHostServerPort) { + this.#configPathList = configPathList + this.#filters = filters + this.#workspaceHostServerPort = workspaceHostServerPort - this.#testCaseModuleReady = import('../shared/test-case.js') - } + this.#testCaseModuleReady = import('../shared/test-case.js') + } - run() { - this.#workspaceHost = new WorkspaceHost( - TestEnv.getWorkspacePath(), - this.#workspaceHostServerPort - ) - this.#workspaceHostReady = this.#workspaceHost.serverPortReady() + run() { + this.#workspaceHost = new WorkspaceHost( + TestEnv.getWorkspacePath(), + this.#workspaceHostServerPort + ) + this.#workspaceHostReady = this.#workspaceHost.serverPortReady() - this.#workspaceHostReady.then(() => { - this.#setRouteGetLibs() - this.#setRouteGetTests() - this.#setRouteValidateTestCase() + this.#workspaceHostReady.then(() => { + this.#setRouteGetLibs() + this.#setRouteGetTests() + this.#setRouteValidateTestCase() - console.log( - `[ W. HOST ] [ http://127.0.0.1:${this.#workspaceHostServerPort}/test/integration/tools/manual/client ] press CTRL + C to stop` - ) - }) - } + console.log( + `[ W. HOST ] [ http://127.0.0.1:${this.#workspaceHostServerPort}/test/integration/tools/manual/client ] press CTRL + C to stop` + ) + }) + } - #setRouteGetLibs() { - this.#workspaceHost.setRoute('/getLibs', (req, res) => { - const libsHandler = new LibsHandler(res, this.#workspaceHostServerPort) - libsHandler.handle() - }) - } + #setRouteGetLibs() { + this.#workspaceHost.setRoute('/getLibs', (req, res) => { + const libsHandler = new LibsHandler(res, this.#workspaceHostServerPort) + libsHandler.handle() + }) + } - #setRouteGetTests() { - this.#workspaceHost.setRoute('/getTests', (req, res) => { - this.#testCaseModuleReady.then((testCaseModule) => { - const testsHandler = new TestsHandler( - testCaseModule, - res, - this.#configPathList, - this.#filters - ) - testsHandler.handle() - }) - }) - } + #setRouteGetTests() { + this.#workspaceHost.setRoute('/getTests', (req, res) => { + this.#testCaseModuleReady.then((testCaseModule) => { + const testsHandler = new TestsHandler( + testCaseModule, + res, + this.#configPathList, + this.#filters + ) + testsHandler.handle() + }) + }) + } - #setRouteValidateTestCase() { - this.#workspaceHost.setPostRoute('/validateTestCase', (req, res) => { - this.#testCaseModuleReady.then((testCaseModule) => { - const testCaseHandler = new TestCaseHandler(testCaseModule, req, res) - testCaseHandler.handle() - }) - }) - } + #setRouteValidateTestCase() { + this.#workspaceHost.setPostRoute('/validateTestCase', (req, res) => { + this.#testCaseModuleReady.then((testCaseModule) => { + const testCaseHandler = new TestCaseHandler(testCaseModule, req, res) + testCaseHandler.handle() + }) + }) + } } module.exports = ManualServer diff --git a/test/integration/tools/manual/shared/test-case.js b/test/integration/tools/manual/shared/test-case.js index c784465a9..a3ff625af 100644 --- a/test/integration/tools/manual/shared/test-case.js +++ b/test/integration/tools/manual/shared/test-case.js @@ -1,31 +1,31 @@ class TestHashStatus { - static TYPES = { - ADDED: 'added', - UPDATED: 'updated', - UNCHANGED: 'unchanged' - } + static TYPES = { + ADDED: 'added', + UPDATED: 'updated', + UNCHANGED: 'unchanged' + } } class TestCaseResult { - static TYPES = { - PASSED: 'PASS', - WARNING: 'WARN', - FAILED: 'FAIL', - UNKNOWN: '' - } + static TYPES = { + PASSED: 'PASS', + WARNING: 'WARN', + FAILED: 'FAIL', + UNKNOWN: '' + } - static getColor(testResult) { - switch (testResult) { - case TestCaseResult.TYPES.PASSED: - return 'rgba(152, 251, 152, 0.8)' - case TestCaseResult.TYPES.FAILED: - return 'rgba(255, 153, 153, 0.8)' - case TestCaseResult.TYPES.WARNING: - return 'rgba(255, 255, 153, 0.8)' - default: - return '' - } - } + static getColor(testResult) { + switch (testResult) { + case TestCaseResult.TYPES.PASSED: + return 'rgba(152, 251, 152, 0.8)' + case TestCaseResult.TYPES.FAILED: + return 'rgba(255, 153, 153, 0.8)' + case TestCaseResult.TYPES.WARNING: + return 'rgba(255, 255, 153, 0.8)' + default: + return '' + } + } } export { TestHashStatus, TestCaseResult } diff --git a/test/integration/utils/lastanimation.mjs b/test/integration/utils/lastanimation.mjs index 9a4087555..a0d90a913 100644 --- a/test/integration/utils/lastanimation.mjs +++ b/test/integration/utils/lastanimation.mjs @@ -1,25 +1,25 @@ export class LastAnimation { - constructor() { - this._last = Promise.resolve() - } + constructor() { + this._last = Promise.resolve() + } - get api() { - return { - last: () => { - return this._last - }, - reset: () => { - this._last = Promise.resolve() - } - } - } + get api() { + return { + last: () => { + return this._last + }, + reset: () => { + this._last = Promise.resolve() + } + } + } - get hooks() { - return { - registerAnimation: (ctx, next) => { - next() - this._last = ctx.promise - } - } - } + get hooks() { + return { + registerAnimation: (ctx, next) => { + next() + this._last = ctx.promise + } + } + } } diff --git a/test/integration/utils/mouse.mjs b/test/integration/utils/mouse.mjs index eabf20a29..6aaa6296d 100644 --- a/test/integration/utils/mouse.mjs +++ b/test/integration/utils/mouse.mjs @@ -1,52 +1,52 @@ import { LastAnimation } from './lastanimation.mjs' export class Mouse { - constructor(chart) { - chart.feature(new LastAnimation()) - this._chart = chart - } - - expectedAnimation() { - return this._chart.feature.lastAnimation.last() - } - - click(x, y) { - return this.down(x, y).up(x, y) - } - - down(x, y) { - this._dispatch('pointerdown', x, y) - return this - } - - move(x, y) { - this._dispatch('pointermove', x, y) - return this - } - - up(x, y) { - this._dispatch('pointerup', x, y) - return this - } - - wheel(delta) { - const event = new WheelEvent('wheel', { - bubbles: true, - cancelable: true, - deltaY: delta - }) - this._chart.feature.htmlCanvas.element.dispatchEvent(event) - return this - } - - _dispatch(type, x, y) { - const event = new PointerEvent(type, { - bubbles: true, - cancelable: true, - pointerId: 1, - clientX: x, - clientY: y - }) - this._chart.feature.htmlCanvas.element.dispatchEvent(event) - } + constructor(chart) { + chart.feature(new LastAnimation()) + this._chart = chart + } + + expectedAnimation() { + return this._chart.feature.lastAnimation.last() + } + + click(x, y) { + return this.down(x, y).up(x, y) + } + + down(x, y) { + this._dispatch('pointerdown', x, y) + return this + } + + move(x, y) { + this._dispatch('pointermove', x, y) + return this + } + + up(x, y) { + this._dispatch('pointerup', x, y) + return this + } + + wheel(delta) { + const event = new WheelEvent('wheel', { + bubbles: true, + cancelable: true, + deltaY: delta + }) + this._chart.feature.htmlCanvas.element.dispatchEvent(event) + return this + } + + _dispatch(type, x, y) { + const event = new PointerEvent(type, { + bubbles: true, + cancelable: true, + pointerId: 1, + clientX: x, + clientY: y + }) + this._chart.feature.htmlCanvas.element.dispatchEvent(event) + } } diff --git a/test/integration/utils/testcontrol.mjs b/test/integration/utils/testcontrol.mjs index 0a97516f5..388cc3b03 100644 --- a/test/integration/utils/testcontrol.mjs +++ b/test/integration/utils/testcontrol.mjs @@ -1,11 +1,11 @@ export function testController(chart, seekee) { - const promise = Promise.resolve(chart) - promise.activated = Promise.resolve({ - seek: (percent) => { - seekee(parseFloat(percent) / 100) - }, - pause: () => {}, - play: () => {} - }) - return promise + const promise = Promise.resolve(chart) + promise.activated = Promise.resolve({ + seek: (percent) => { + seekee(parseFloat(percent) / 100) + }, + pause: () => {}, + play: () => {} + }) + return promise } diff --git a/test/integration/utils/vizzu-markerdropshadow.mjs b/test/integration/utils/vizzu-markerdropshadow.mjs index 59b7184ea..f7f91073b 100644 --- a/test/integration/utils/vizzu-markerdropshadow.mjs +++ b/test/integration/utils/vizzu-markerdropshadow.mjs @@ -1,88 +1,88 @@ export default class MarkerDropshadow { - defaultStyle = { - color: '#00000060', - blur: 9, - offsetX: 3, - offsetY: 3 - } + defaultStyle = { + color: '#00000060', + blur: 9, + offsetX: 3, + offsetY: 3 + } - constructor() { - this.style = null - this.nextStyle = null - this.progress = 0 - } + constructor() { + this.style = null + this.nextStyle = null + this.progress = 0 + } - meta = { - name: 'markerDropshadow', - version: '0.0.1', - depends: [] - } + meta = { + name: 'markerDropshadow', + version: '0.0.1', + depends: [] + } - get listeners() { - return { - update: (event) => { - this.progress = event.detail.progress - }, - 'plot-marker-draw': this._setDropshadow.bind(this), - 'plot-marker-label-draw': this._setDropshadow.bind(this) - } - } + get listeners() { + return { + update: (event) => { + this.progress = event.detail.progress + }, + 'plot-marker-draw': this._setDropshadow.bind(this), + 'plot-marker-label-draw': this._setDropshadow.bind(this) + } + } - hooks = { - prepareAnimation: (ctx, next) => { - if (Array.isArray(ctx.target)) - ctx.target.forEach(({ target, options }) => { - target.style = this._prepareStyle(target.style) - }) - next() - } - } + hooks = { + prepareAnimation: (ctx, next) => { + if (Array.isArray(ctx.target)) + ctx.target.forEach(({ target, options }) => { + target.style = this._prepareStyle(target.style) + }) + next() + } + } - _prepareStyle(style) { - const markerStyle = style?.plot?.marker - if (!markerStyle) return + _prepareStyle(style) { + const markerStyle = style?.plot?.marker + if (!markerStyle) return - this.nextStyle = { - ...this.defaultStyle, - ...this.style, - ...this.nextStyle - } + this.nextStyle = { + ...this.defaultStyle, + ...this.style, + ...this.nextStyle + } - if (markerStyle.shadowColor) this.nextStyle.color = markerStyle.shadowColor - if (markerStyle.shadowBlur) this.nextStyle.blur = markerStyle.shadowBlur - if (markerStyle.shadowOffsetX) this.nextStyle.offsetX = markerStyle.shadowOffsetX - if (markerStyle.shadowOffsetY) this.nextStyle.offsetY = markerStyle.shadowOffsetY + if (markerStyle.shadowColor) this.nextStyle.color = markerStyle.shadowColor + if (markerStyle.shadowBlur) this.nextStyle.blur = markerStyle.shadowBlur + if (markerStyle.shadowOffsetX) this.nextStyle.offsetX = markerStyle.shadowOffsetX + if (markerStyle.shadowOffsetY) this.nextStyle.offsetY = markerStyle.shadowOffsetY - this.style = { ...this.nextStyle, ...this.style } + this.style = { ...this.nextStyle, ...this.style } - delete markerStyle.shadowColor - delete markerStyle.shadowBlur - delete markerStyle.shadowOffsetX - delete markerStyle.shadowOffsetY + delete markerStyle.shadowColor + delete markerStyle.shadowBlur + delete markerStyle.shadowOffsetX + delete markerStyle.shadowOffsetY - return style - } + return style + } - _setDropshadow(event) { - const ctx = event.renderingContext - const style = this._actStyle() - ctx.shadowColor = style.color - ctx.shadowBlur = style.blur - ctx.shadowOffsetX = style.offsetX - ctx.shadowOffsetY = style.offsetY - } + _setDropshadow(event) { + const ctx = event.renderingContext + const style = this._actStyle() + ctx.shadowColor = style.color + ctx.shadowBlur = style.blur + ctx.shadowOffsetX = style.offsetX + ctx.shadowOffsetY = style.offsetY + } - _actStyle() { - const result = {} - for (const key in this.style) { - result[key] = this.nextStyle - ? key === 'color' - ? tinycolor - .mix(this.style[key], this.nextStyle[key], (1 - this.progress) * 100) - .toRgbString() - : this.style[key] + (this.nextStyle[key] - this.style[key]) * this.progress - : this.style[key] - } - return result - } + _actStyle() { + const result = {} + for (const key in this.style) { + result[key] = this.nextStyle + ? key === 'color' + ? tinycolor + .mix(this.style[key], this.nextStyle[key], (1 - this.progress) * 100) + .toRgbString() + : this.style[key] + (this.nextStyle[key] - this.style[key]) * this.progress + : this.style[key] + } + return result + } } diff --git a/test/integration/utils/vizzu-pptxgen.mjs b/test/integration/utils/vizzu-pptxgen.mjs index 902e977f9..de0460177 100644 --- a/test/integration/utils/vizzu-pptxgen.mjs +++ b/test/integration/utils/vizzu-pptxgen.mjs @@ -1,63 +1,63 @@ export default class PPTXGen { - static videoCaptureOptions = { - recorder: { mimeType: 'video/webm;codecs=h264' }, - output: { mimeType: 'video/mp4' } - } + static videoCaptureOptions = { + recorder: { mimeType: 'video/webm;codecs=h264' }, + output: { mimeType: 'video/mp4' } + } - meta = { - name: 'pptxGen', - version: '0.0.1', - depends: ['videoCapture'] - } + meta = { + name: 'pptxGen', + version: '0.0.1', + depends: ['videoCapture'] + } - get api() { - return { - save: (filename) => { - this.generating = this.generating.then(() => { - this.presentation.writeFile({ filename }) - }) - return this.generating - } - } - } + get api() { + return { + save: (filename) => { + this.generating = this.generating.then(() => { + this.presentation.writeFile({ filename }) + }) + return this.generating + } + } + } - hooks = { - registerAnimation: (ctx, next) => { - ctx.promise = ctx.promise.then((chart) => { - this.chart.feature.videoCapture.start() - return chart - }) - next() - const activated = ctx.promise.activated - ctx.promise = ctx.promise.then(this._addSlide.bind(this)) - ctx.promise.activated = activated - } - } + hooks = { + registerAnimation: (ctx, next) => { + ctx.promise = ctx.promise.then((chart) => { + this.chart.feature.videoCapture.start() + return chart + }) + next() + const activated = ctx.promise.activated + ctx.promise = ctx.promise.then(this._addSlide.bind(this)) + ctx.promise.activated = activated + } + } - constructor(options) { - this.options = options - this.presentation = new PptxGenJS() // eslint-disable-line no-undef - this.generating = Promise.resolve() - } + constructor(options) { + this.options = options + this.presentation = new PptxGenJS() // eslint-disable-line no-undef + this.generating = Promise.resolve() + } - register(chart) { - this.chart = chart - } + register(chart) { + this.chart = chart + } - async _addSlide() { - const capture = await this.chart.feature.videoCapture.stop() - const base64String = await this._blobToBase64(capture.blob) - const slide = this.presentation.addSlide() - slide.addMedia({ type: 'video', data: base64String, w: '100%', h: '100%' }) - } + async _addSlide() { + const capture = await this.chart.feature.videoCapture.stop() + const base64String = await this._blobToBase64(capture.blob) + const slide = this.presentation.addSlide() + slide.addMedia({ type: 'video', data: base64String, w: '100%', h: '100%' }) + } - _blobToBase64(blob) { - return new Promise((resolve) => { - const reader = new FileReader() - reader.onloadend = function () { - resolve(reader.result) - } - reader.readAsDataURL(blob) - }) - } + _blobToBase64(blob) { + return new Promise((resolve) => { + const reader = new FileReader() + reader.onloadend = function () { + resolve(reader.result) + } + reader.readAsDataURL(blob) + }) + } } diff --git a/test/integration/utils/vizzu-videocapture.mjs b/test/integration/utils/vizzu-videocapture.mjs index 8074d880d..7ee22bfd9 100644 --- a/test/integration/utils/vizzu-videocapture.mjs +++ b/test/integration/utils/vizzu-videocapture.mjs @@ -1,58 +1,58 @@ export default class VideoCapture { - meta = { - name: 'videoCapture', - version: '0.0.1', - depends: [] - } + meta = { + name: 'videoCapture', + version: '0.0.1', + depends: [] + } - get api() { - return { - start: () => { - this.mediaRecorder.start() - }, - stop: () => { - const completed = new Promise((resolve) => { - this._rendered = resolve - }) - this.mediaRecorder.stop() - return completed - } - } - } + get api() { + return { + start: () => { + this.mediaRecorder.start() + }, + stop: () => { + const completed = new Promise((resolve) => { + this._rendered = resolve + }) + this.mediaRecorder.stop() + return completed + } + } + } - constructor(options) { - this.options = { - stream: { frameRate: 30, ...options?.stream }, - recorder: { mimeType: 'video/webm', ...options?.recorder }, - output: { - mimeType: options?.output?.mimeType || options?.recorder?.mimeType || 'video/webm', - ...options?.output - } - } - } + constructor(options) { + this.options = { + stream: { frameRate: 30, ...options?.stream }, + recorder: { mimeType: 'video/webm', ...options?.recorder }, + output: { + mimeType: options?.output?.mimeType || options?.recorder?.mimeType || 'video/webm', + ...options?.output + } + } + } - register(chart) { - this.chart = chart - this._init() - } + register(chart) { + this.chart = chart + this._init() + } - _init() { - const recordedChunks = [] - const stream = this.chart.feature.htmlCanvas.element.captureStream( - this.options.stream.frameRate - ) - this.mediaRecorder = new MediaRecorder(stream, this.options.recorder) + _init() { + const recordedChunks = [] + const stream = this.chart.feature.htmlCanvas.element.captureStream( + this.options.stream.frameRate + ) + this.mediaRecorder = new MediaRecorder(stream, this.options.recorder) - this.mediaRecorder.ondataavailable = (e) => { - recordedChunks.push(e.data) - } + this.mediaRecorder.ondataavailable = (e) => { + recordedChunks.push(e.data) + } - this.mediaRecorder.onstop = (event) => { - const blob = new Blob(recordedChunks, { - type: this.options.output.mimeType - }) - this._init() - this._rendered({ blob, getObjectURL: () => URL.createObjectURL(blob) }) - } - } + this.mediaRecorder.onstop = (event) => { + const blob = new Blob(recordedChunks, { + type: this.options.output.mimeType + }) + this._init() + this._rendered({ blob, getObjectURL: () => URL.createObjectURL(blob) }) + } + } } diff --git a/test/unit/apps/weblib/js-api/cssutils.test.js b/test/unit/apps/weblib/js-api/cssutils.test.js index 184ab4510..ddded4c88 100644 --- a/test/unit/apps/weblib/js-api/cssutils.test.js +++ b/test/unit/apps/weblib/js-api/cssutils.test.js @@ -1,145 +1,160 @@ import { - isAccessibleStylesheet, - getCSSCustomProps, - getCSSCustomPropsForElement, - propSet, - propsToObject + isAccessibleStylesheet, + getCSSCustomProps, + getCSSCustomPropsForElement, + propSet, + propsToObject } from '../../../../../dist/plugins/cssutils.js' class CSSStyleRule { - constructor({ type, style }) { - this.type = type - this.style = style - } + constructor({ type, style }) { + this.type = type + this.style = style + } } const propGet = (obj, path) => { - return path.reduce((acc, part) => acc?.[part], obj) + return path.reduce((acc, part) => acc?.[part], obj) } describe('cssutils.isAccessibleStylesheet()', () => { - test('true -> can access `.cssRules`', () => { - const stylesheet = { cssRules: [] } - expect(isAccessibleStylesheet(stylesheet)).toBeTruthy() - }) + test('true -> can access `.cssRules`', () => { + const stylesheet = { cssRules: [] } + expect(isAccessibleStylesheet(stylesheet)).toBeTruthy() + }) - test('false -> cannot access `.cssRules`', () => { - const stylesheet = { - get cssRules() { - throw new Error('not accessible') - } - } - expect(isAccessibleStylesheet(stylesheet)).toBeFalsy() - }) + test('false -> cannot access `.cssRules`', () => { + const stylesheet = { + get cssRules() { + throw new Error('not accessible') + } + } + expect(isAccessibleStylesheet(stylesheet)).toBeFalsy() + }) }) describe('cssutils.getCSSCustomProps()', () => { - test('no stylesheet, no props', () => { - global.document = { styleSheets: [] } // mockig document - expect(getCSSCustomProps('test')).toEqual([]) - }) - test('empty stylesheets, no props', () => { - global.document = { styleSheets: [{ cssRules: [] }, { cssRules: [] }] } - expect(getCSSCustomProps('test')).toEqual([]) - }) - test('stylesheet with proper rules, props expected', () => { - global.document = { - styleSheets: [ - { - cssRules: [new CSSStyleRule({ type: 1, style: ['--test-property', '--test-property-2'] })] - } - ] - } - expect(getCSSCustomProps('test')).toEqual(['--test-property', '--test-property-2']) - }) - test('stylesheet with proper rules, using prefix, props expected', () => { - global.document = { - styleSheets: [ - { - cssRules: [ - new CSSStyleRule({ type: 1, style: ['--test-property', '--no-test-property'] }) - ] - } - ] - } - expect(getCSSCustomProps('test')).toEqual(['--test-property']) - }) + test('no stylesheet, no props', () => { + global.document = { styleSheets: [] } // mockig document + expect(getCSSCustomProps('test')).toEqual([]) + }) + test('empty stylesheets, no props', () => { + global.document = { styleSheets: [{ cssRules: [] }, { cssRules: [] }] } + expect(getCSSCustomProps('test')).toEqual([]) + }) + test('stylesheet with proper rules, props expected', () => { + global.document = { + styleSheets: [ + { + cssRules: [ + new CSSStyleRule({ + type: 1, + style: ['--test-property', '--test-property-2'] + }) + ] + } + ] + } + expect(getCSSCustomProps('test')).toEqual(['--test-property', '--test-property-2']) + }) + test('stylesheet with proper rules, using prefix, props expected', () => { + global.document = { + styleSheets: [ + { + cssRules: [ + new CSSStyleRule({ + type: 1, + style: ['--test-property', '--no-test-property'] + }) + ] + } + ] + } + expect(getCSSCustomProps('test')).toEqual(['--test-property']) + }) }) describe('cssutils.getCSSCustomPropsForElement()', () => { - test('only element related props should show up', () => { - global.document = { - styleSheets: [ - { - cssRules: [new CSSStyleRule({ type: 1, style: ['--test-property', '--test-property-2'] })] - } - ] - } - global.getComputedStyle = () => { - return { - getPropertyValue: (prop) => { - if (prop === '--test-property') { - return 'test' - } - return '' - } - } - } - expect(getCSSCustomPropsForElement('whatever', 'test')).toEqual([['--test-property', 'test']]) - }) + test('only element related props should show up', () => { + global.document = { + styleSheets: [ + { + cssRules: [ + new CSSStyleRule({ + type: 1, + style: ['--test-property', '--test-property-2'] + }) + ] + } + ] + } + global.getComputedStyle = () => { + return { + getPropertyValue: (prop) => { + if (prop === '--test-property') { + return 'test' + } + return '' + } + } + } + expect(getCSSCustomPropsForElement('whatever', 'test')).toEqual([ + ['--test-property', 'test'] + ]) + }) }) describe('cssutils.propSet()', () => { - test('set embedded property on empty object', () => { - const obj = {} - propSet(obj, ['alma', 'beka', 'cica'], 'test') - expect(obj?.alma?.beka?.cica).toEqual('test') - }) + test('set embedded property on empty object', () => { + const obj = {} + propSet(obj, ['alma', 'beka', 'cica'], 'test') + expect(obj?.alma?.beka?.cica).toEqual('test') + }) - test('does not overwrite by default', () => { - const obj = { alma: { beka: { cica: 'notest' } } } - propSet(obj, ['alma', 'beka', 'cica'], 'test') - expect(obj?.alma?.beka?.cica).toEqual('notest') - }) + test('does not overwrite by default', () => { + const obj = { alma: { beka: { cica: 'notest' } } } + propSet(obj, ['alma', 'beka', 'cica'], 'test') + expect(obj?.alma?.beka?.cica).toEqual('notest') + }) - test('can overwrite if requested', () => { - const obj = { alma: { beka: { cica: 'notest' } } } - propSet(obj, ['alma', 'beka', 'cica'], 'test', true) - expect(obj?.alma?.beka?.cica).toEqual('test') - }) + test('can overwrite if requested', () => { + const obj = { alma: { beka: { cica: 'notest' } } } + propSet(obj, ['alma', 'beka', 'cica'], 'test', true) + expect(obj?.alma?.beka?.cica).toEqual('test') + }) }) describe('cssutils.propGet()', () => { - test('get embedded property', () => { - const obj = { alma: { beka: { cica: 'test' } } } - expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('test') - }) + test('get embedded property', () => { + const obj = { alma: { beka: { cica: 'test' } } } + expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('test') + }) }) describe('cssutils.propsToObject()', () => { - test('generate "deep" object from property list', () => { - const props = [['--alma-beka-cica', 'test']] - const obj = propsToObject(props, null) - expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('test') - }) + test('generate "deep" object from property list', () => { + const props = [['--alma-beka-cica', 'test']] + const obj = propsToObject(props, null) + expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('test') + }) - test('generate "deep" object from property list, using prefix', () => { - const props = [['--test-alma-beka-cica', 'test']] - const obj = propsToObject(props, null, 'test') - expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('test') - }) + test('generate "deep" object from property list, using prefix', () => { + const props = [['--test-alma-beka-cica', 'test']] + const obj = propsToObject(props, null, 'test') + expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('test') + }) - test('fill existing "deep" object from property list, using prefix, no overwrite', () => { - const props = [['--test-alma-beka-cica', 'test']] - const obj = { alma: { beka: { cica: 'notest' } } } - propsToObject(props, obj, 'test') - expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('notest') - }) + test('fill existing "deep" object from property list, using prefix, no overwrite', () => { + const props = [['--test-alma-beka-cica', 'test']] + const obj = { alma: { beka: { cica: 'notest' } } } + propsToObject(props, obj, 'test') + expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('notest') + }) - test('fill existing "deep" object from property list, using prefix, overwrite', () => { - const props = [['--test-alma-beka-cica', 'test']] - const obj = { alma: { beka: { cica: 'notest' } } } - propsToObject(props, obj, 'test', true) - expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('test') - }) + test('fill existing "deep" object from property list, using prefix, overwrite', () => { + const props = [['--test-alma-beka-cica', 'test']] + const obj = { alma: { beka: { cica: 'notest' } } } + propsToObject(props, obj, 'test', true) + expect(propGet(obj, ['alma', 'beka', 'cica'])).toEqual('test') + }) }) diff --git a/test/unit/apps/weblib/js-api/unpivot.test.js b/test/unit/apps/weblib/js-api/unpivot.test.js index 11595a032..e11f8c144 100644 --- a/test/unit/apps/weblib/js-api/unpivot.test.js +++ b/test/unit/apps/weblib/js-api/unpivot.test.js @@ -3,313 +3,325 @@ import Data1D from './unpivot.test.data/unpivot.test.data.1D.js' import Data3D from './unpivot.test.data/unpivot.test.data.3D.js' describe('UnPivot.isPivot(data)', () => { - test('true - 1', () => { - const data = { dimensions: null, measures: null } - expect(UnPivot.isPivot(data)).toBeTruthy() - }) - - test('true - 2', () => { - const data = { measures: null } - expect(UnPivot.isPivot(data)).toBeTruthy() - }) - - test('true - 3', () => { - const data = { dimensions: null } - expect(UnPivot.isPivot(data)).toBeTruthy() - }) - - test('true - 4', () => { - expect(UnPivot.isPivot(Data3D.data_3d_1.input)).toBeTruthy() - }) - - test('false - 1', () => { - const data = {} - expect(UnPivot.isPivot(data)).toBeFalsy() - }) - - test('false - 2', () => { - const data = { dimensions: undefined } - expect(UnPivot.isPivot(data)).toBeFalsy() - }) - - test('false - 3', () => { - const data = { measures: undefined } - expect(UnPivot.isPivot(data)).toBeFalsy() - }) - - test('false - 4', () => { - const data = { dimensions: undefined, measures: undefined } - expect(UnPivot.isPivot(data)).toBeFalsy() - }) + test('true - 1', () => { + const data = { dimensions: null, measures: null } + expect(UnPivot.isPivot(data)).toBeTruthy() + }) + + test('true - 2', () => { + const data = { measures: null } + expect(UnPivot.isPivot(data)).toBeTruthy() + }) + + test('true - 3', () => { + const data = { dimensions: null } + expect(UnPivot.isPivot(data)).toBeTruthy() + }) + + test('true - 4', () => { + expect(UnPivot.isPivot(Data3D.data_3d_1.input)).toBeTruthy() + }) + + test('false - 1', () => { + const data = {} + expect(UnPivot.isPivot(data)).toBeFalsy() + }) + + test('false - 2', () => { + const data = { dimensions: undefined } + expect(UnPivot.isPivot(data)).toBeFalsy() + }) + + test('false - 3', () => { + const data = { measures: undefined } + expect(UnPivot.isPivot(data)).toBeFalsy() + }) + + test('false - 4', () => { + const data = { dimensions: undefined, measures: undefined } + expect(UnPivot.isPivot(data)).toBeFalsy() + }) }) describe('UnPivot.convert(data)', () => { - describe('1D', () => { - test('filter', () => { - const output = UnPivot.convert(Data1D.data_1d_1.input) - expect(output.filter.toString()).toMatch(Data1D.data_1d_1.output.filter.toString()) - }) - - test('convert_1D_1 - measures = list', () => { - const output = UnPivot.convert(Data1D.data_1d_1.input) - expect(JSON.stringify(output.series)).toMatch(JSON.stringify(Data1D.data_1d_1.output.series)) - }) - - test('convert_1D_2 - measures = object', () => { - const output = UnPivot.convert(Data1D.data_1d_2.input) - expect(JSON.stringify(output.series)).toMatch(JSON.stringify(Data1D.data_1d_2.output.series)) - }) - - test('convert_1D_3 - data.dimensions.item.type = undefined', () => { - const output = UnPivot.convert(Data1D.data_1d_3.input) - expect(JSON.stringify(output.series)).toMatch(JSON.stringify(Data1D.data_1d_3.output.series)) - }) - - test('convert_1D_4 - data.dimensions.item.type = null', () => { - const output = UnPivot.convert(Data1D.data_1d_4.input) - expect(JSON.stringify(output.series)).toMatch(JSON.stringify(Data1D.data_1d_4.output.series)) - }) - - test('convert_1D_5 - data.dimensions.item.type = dimension', () => { - const output = UnPivot.convert(Data1D.data_1d_5.input) - expect(JSON.stringify(output.series)).toMatch(JSON.stringify(Data1D.data_1d_5.output.series)) - }) - }) - - describe('3D', () => { - test('convert_3D_1', () => { - const output = UnPivot.convert(Data3D.data_3d_1.input) - expect(JSON.stringify(output.series)).toMatch(JSON.stringify(Data3D.data_3d_1.output.series)) - }) - - test('filter', () => { - const output = UnPivot.convert(Data3D.data_3d_1.input) - expect(output.filter.toString()).toMatch(Data3D.data_3d_1.output.filter.toString()) - }) - }) + describe('1D', () => { + test('filter', () => { + const output = UnPivot.convert(Data1D.data_1d_1.input) + expect(output.filter.toString()).toMatch(Data1D.data_1d_1.output.filter.toString()) + }) + + test('convert_1D_1 - measures = list', () => { + const output = UnPivot.convert(Data1D.data_1d_1.input) + expect(JSON.stringify(output.series)).toMatch( + JSON.stringify(Data1D.data_1d_1.output.series) + ) + }) + + test('convert_1D_2 - measures = object', () => { + const output = UnPivot.convert(Data1D.data_1d_2.input) + expect(JSON.stringify(output.series)).toMatch( + JSON.stringify(Data1D.data_1d_2.output.series) + ) + }) + + test('convert_1D_3 - data.dimensions.item.type = undefined', () => { + const output = UnPivot.convert(Data1D.data_1d_3.input) + expect(JSON.stringify(output.series)).toMatch( + JSON.stringify(Data1D.data_1d_3.output.series) + ) + }) + + test('convert_1D_4 - data.dimensions.item.type = null', () => { + const output = UnPivot.convert(Data1D.data_1d_4.input) + expect(JSON.stringify(output.series)).toMatch( + JSON.stringify(Data1D.data_1d_4.output.series) + ) + }) + + test('convert_1D_5 - data.dimensions.item.type = dimension', () => { + const output = UnPivot.convert(Data1D.data_1d_5.input) + expect(JSON.stringify(output.series)).toMatch( + JSON.stringify(Data1D.data_1d_5.output.series) + ) + }) + }) + + describe('3D', () => { + test('convert_3D_1', () => { + const output = UnPivot.convert(Data3D.data_3d_1.input) + expect(JSON.stringify(output.series)).toMatch( + JSON.stringify(Data3D.data_3d_1.output.series) + ) + }) + + test('filter', () => { + const output = UnPivot.convert(Data3D.data_3d_1.input) + expect(output.filter.toString()).toMatch(Data3D.data_3d_1.output.filter.toString()) + }) + }) }) describe('UnPivot.convert(data) - assert data', () => { - describe('typeof(data) != object', () => { - describe('data = undefined', () => { - test('non-existent', () => { - expect(() => UnPivot.convert()).toThrow('Assert failed: data is not an object') - }) - - test('undefined', () => { - let data - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - }) - - test('data = string', () => { - const data = 'data' - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - - describe('data = number', () => { - test('1', () => { - const data = 1 - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - - test('1.11', () => { - const data = 1.11 - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - - test('Infinity', () => { - const data = 1 / 0 - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - - test('-Infinity', () => { - const data = -1 / 0 - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - }) - - test('data = boolean', () => { - const data = true - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - - test('data = bigint', () => { - const data = 9007199254740991n - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - - test('data = symbol', () => { - const data = Symbol('data') - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - - test('data = function', () => { - const data = () => {} - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - }) - - describe('typeof(data) == object', () => { - test('data = null', () => { - const data = null - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - - test('data = list', () => { - const data = [] - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') - }) - }) + describe('typeof(data) != object', () => { + describe('data = undefined', () => { + test('non-existent', () => { + expect(() => UnPivot.convert()).toThrow('Assert failed: data is not an object') + }) + + test('undefined', () => { + let data + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + }) + + test('data = string', () => { + const data = 'data' + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + + describe('data = number', () => { + test('1', () => { + const data = 1 + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + + test('1.11', () => { + const data = 1.11 + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + + test('Infinity', () => { + const data = 1 / 0 + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + + test('-Infinity', () => { + const data = -1 / 0 + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + }) + + test('data = boolean', () => { + const data = true + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + + test('data = bigint', () => { + const data = 9007199254740991n + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + + test('data = symbol', () => { + const data = Symbol('data') + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + + test('data = function', () => { + const data = () => {} + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + }) + + describe('typeof(data) == object', () => { + test('data = null', () => { + const data = null + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + + test('data = list', () => { + const data = [] + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data is not an object') + }) + }) }) describe('UnPivot.convert(data) - assert data.dimensions', () => { - test('data.dimensions = undefined', () => { - const data = { measures: [] } - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data.dimensions is requreid') - }) - - test('data.dimensions != list', () => { - const data = { dimensions: null, measures: [] } - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data.dimensions is not a list') - }) + test('data.dimensions = undefined', () => { + const data = { measures: [] } + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data.dimensions is requreid') + }) + + test('data.dimensions != list', () => { + const data = { dimensions: null, measures: [] } + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data.dimensions is not a list') + }) }) describe('UnPivot.convert(data) - assert data.dimensions.item', () => { - test('data.dimensions.item = null', () => { - const data = { dimensions: [null], measures: [] } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.dimensions.item is not an object' - ) - }) - - test('data.dimensions.item = list', () => { - const data = { dimensions: [[]], measures: [] } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.dimensions.item is not an object' - ) - }) - - test('data.dimensions.item - name is missing', () => { - const data = { dimensions: [{}], measures: [] } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.dimensions.item.name is requreid' - ) - }) - - test('data.dimensions.item - type is invalid', () => { - const data = { - dimensions: [{ name: 'test', type: 'measure' }], - measures: [] - } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.dimensions.item.type is invalid' - ) - }) - - test('data.dimensions.item - values is missing', () => { - const data = { dimensions: [{ name: 'test' }], measures: [] } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.dimensions.item.values is requreid' - ) - }) - - test('data.dimensions.item - values is invalid', () => { - const data = { dimensions: [{ name: 'test', values: null }], measures: [] } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.dimensions.item.values is not a list' - ) - }) - - test('data.dimensions.item - values length is zero', () => { - const data = { dimensions: [{ name: 'test', values: [] }], measures: [] } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.dimensions.item.values length is zero' - ) - }) + test('data.dimensions.item = null', () => { + const data = { dimensions: [null], measures: [] } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.dimensions.item is not an object' + ) + }) + + test('data.dimensions.item = list', () => { + const data = { dimensions: [[]], measures: [] } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.dimensions.item is not an object' + ) + }) + + test('data.dimensions.item - name is missing', () => { + const data = { dimensions: [{}], measures: [] } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.dimensions.item.name is requreid' + ) + }) + + test('data.dimensions.item - type is invalid', () => { + const data = { + dimensions: [{ name: 'test', type: 'measure' }], + measures: [] + } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.dimensions.item.type is invalid' + ) + }) + + test('data.dimensions.item - values is missing', () => { + const data = { dimensions: [{ name: 'test' }], measures: [] } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.dimensions.item.values is requreid' + ) + }) + + test('data.dimensions.item - values is invalid', () => { + const data = { dimensions: [{ name: 'test', values: null }], measures: [] } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.dimensions.item.values is not a list' + ) + }) + + test('data.dimensions.item - values length is zero', () => { + const data = { dimensions: [{ name: 'test', values: [] }], measures: [] } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.dimensions.item.values length is zero' + ) + }) }) describe('UnPivot.convert(data) - assert data.measures', () => { - test('data.measures = undefined', () => { - const data = { dimensions: [] } - expect(() => UnPivot.convert(data)).toThrow('Assert failed: data.measures is requreid') - }) - - test('data.measures = null', () => { - const data = { - dimensions: [{ name: 'test', values: ['test'] }], - measures: null - } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.measures is not a list or an object' - ) - }) + test('data.measures = undefined', () => { + const data = { dimensions: [] } + expect(() => UnPivot.convert(data)).toThrow('Assert failed: data.measures is requreid') + }) + + test('data.measures = null', () => { + const data = { + dimensions: [{ name: 'test', values: ['test'] }], + measures: null + } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.measures is not a list or an object' + ) + }) }) describe('UnPivot.convert(data) - assert data.measures.item', () => { - test('data.measures.item = null', () => { - const data = { - dimensions: [{ name: 'test', values: ['test'] }], - measures: [null] - } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.measures.item is not an object' - ) - }) - - test('data.measures.item = list', () => { - const data = { - dimensions: [{ name: 'test', values: ['test'] }], - measures: [[]] - } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.measures.item is not an object' - ) - }) - - test('data.measures.item - name is missing', () => { - const data = { - dimensions: [{ name: 'test', values: ['test'] }], - measures: [{}] - } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.measures.item.name is requreid' - ) - }) - - test('data.measures.item - values is missing', () => { - const data = { - dimensions: [{ name: 'test', values: ['test'] }], - measures: [{ name: 'test' }] - } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.measures.item.values is requreid' - ) - }) - - test('data.measures.item - values is invalid', () => { - const data = { - dimensions: [{ name: 'test', values: ['test'] }], - measures: [{ name: 'test', values: null }] - } - expect(() => UnPivot.convert(data)).toThrow( - 'Assert failed: data.measures.item.values is not a list' - ) - }) - - test('data.measures.item - values dimensions are not the same - 1', () => { - const data = { - dimensions: [{ name: 'test', values: ['test'] }], - measures: [{ name: 'test', values: [] }] - } - expect(() => UnPivot.convert(data)).toThrow('Assert failed: dimensions are not the same') - }) - - test('data.measures.item - values dimensions are not the same - 2', () => { - const data = { - dimensions: [{ name: 'test', values: ['test'] }], - measures: [{ name: 'test', values: [[1]] }] - } - expect(() => UnPivot.convert(data)).toThrow('Assert failed: dimensions are not the same') - }) + test('data.measures.item = null', () => { + const data = { + dimensions: [{ name: 'test', values: ['test'] }], + measures: [null] + } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.measures.item is not an object' + ) + }) + + test('data.measures.item = list', () => { + const data = { + dimensions: [{ name: 'test', values: ['test'] }], + measures: [[]] + } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.measures.item is not an object' + ) + }) + + test('data.measures.item - name is missing', () => { + const data = { + dimensions: [{ name: 'test', values: ['test'] }], + measures: [{}] + } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.measures.item.name is requreid' + ) + }) + + test('data.measures.item - values is missing', () => { + const data = { + dimensions: [{ name: 'test', values: ['test'] }], + measures: [{ name: 'test' }] + } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.measures.item.values is requreid' + ) + }) + + test('data.measures.item - values is invalid', () => { + const data = { + dimensions: [{ name: 'test', values: ['test'] }], + measures: [{ name: 'test', values: null }] + } + expect(() => UnPivot.convert(data)).toThrow( + 'Assert failed: data.measures.item.values is not a list' + ) + }) + + test('data.measures.item - values dimensions are not the same - 1', () => { + const data = { + dimensions: [{ name: 'test', values: ['test'] }], + measures: [{ name: 'test', values: [] }] + } + expect(() => UnPivot.convert(data)).toThrow('Assert failed: dimensions are not the same') + }) + + test('data.measures.item - values dimensions are not the same - 2', () => { + const data = { + dimensions: [{ name: 'test', values: ['test'] }], + measures: [{ name: 'test', values: [[1]] }] + } + expect(() => UnPivot.convert(data)).toThrow('Assert failed: dimensions are not the same') + }) }) diff --git a/test/unit/jest.config.js b/test/unit/jest.config.js index 88518af47..26b60619d 100644 --- a/test/unit/jest.config.js +++ b/test/unit/jest.config.js @@ -1,19 +1,19 @@ export default { - rootDir: '../../', - roots: ['/src', '/test/unit'], - collectCoverage: true, - coverageProvider: 'v8', - coverageDirectory: '/test/unit/.coverage', - coveragePathIgnorePatterns: ['test/unit/.*'], - coverageThreshold: { - global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100 - } - }, - testEnvironment: 'jest-environment-node', - testRegex: '(test/unit/.*(\\.|/)test)\\.js$', - transform: {} + rootDir: '../../', + roots: ['/src', '/test/unit'], + collectCoverage: true, + coverageProvider: 'v8', + coverageDirectory: '/test/unit/.coverage', + coveragePathIgnorePatterns: ['test/unit/.*'], + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100 + } + }, + testEnvironment: 'jest-environment-node', + testRegex: '(test/unit/.*(\\.|/)test)\\.js$', + transform: {} } diff --git a/tools/ci/gcp/cloudbucket/CORS/cors.json b/tools/ci/gcp/cloudbucket/CORS/cors.json index ebf0e3d1b..b527b4ca3 100644 --- a/tools/ci/gcp/cloudbucket/CORS/cors.json +++ b/tools/ci/gcp/cloudbucket/CORS/cors.json @@ -1,9 +1,9 @@ [ - { - "origin": ["*"], - "method": ["GET", "POST", "HEAD"], - "responseHeader": ["*"], - "ExposeHeaders": ["*"], - "maxAgeSeconds": 3600 - } + { + "origin": ["*"], + "method": ["GET", "POST", "HEAD"], + "responseHeader": ["*"], + "ExposeHeaders": ["*"], + "maxAgeSeconds": 3600 + } ] diff --git a/tools/ci/gcp/cloudbuild/cloudbuild.yaml b/tools/ci/gcp/cloudbuild/cloudbuild.yaml index 229bc5dfc..5dc1bac37 100644 --- a/tools/ci/gcp/cloudbuild/cloudbuild.yaml +++ b/tools/ci/gcp/cloudbuild/cloudbuild.yaml @@ -1,277 +1,277 @@ steps: - - name: vizzu/vizzu-dev-wasm:0.9 - id: init - waitFor: - - '-' - entrypoint: bash - args: - - '-c' - - '-e' - - |- - npm install && - ./tools/ci/run/init-py.sh - dir: /workspace + - name: vizzu/vizzu-dev-wasm:0.9 + id: init + waitFor: + - '-' + entrypoint: bash + args: + - '-c' + - '-e' + - |- + npm install && + ./tools/ci/run/init-py.sh + dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.9 - id: check_src - waitFor: - - init - entrypoint: bash - args: - - '-c' - - '-e' - - |- - if [ "$_ISRELEASE" == "true" ] - then - echo "skipped" - else - npm run format:src - npm run lint:src - fi - dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.9 - id: check_docs - waitFor: - - init - entrypoint: bash - args: - - '-c' - - '-e' - - |- - if [ "$_ISRELEASE" == "true" ] - then - echo "skipped" - else - npm run format:docs - npm run lint:docs - fi - dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.9 - id: check_tools - waitFor: - - init - entrypoint: bash - args: - - '-c' - - '-e' - - |- - if [ "$_ISRELEASE" == "true" ] - then - echo "skipped" - else - npm run format:tools - npm run lint:tools - npm run type:tools - fi - dir: /workspace + - name: vizzu/vizzu-dev-wasm:0.9 + id: check_src + waitFor: + - init + entrypoint: bash + args: + - '-c' + - '-e' + - |- + if [ "$_ISRELEASE" == "true" ] + then + echo "skipped" + else + npm run format:src + npm run lint:src + fi + dir: /workspace + - name: vizzu/vizzu-dev-wasm:0.9 + id: check_docs + waitFor: + - init + entrypoint: bash + args: + - '-c' + - '-e' + - |- + if [ "$_ISRELEASE" == "true" ] + then + echo "skipped" + else + npm run format:docs + npm run lint:docs + fi + dir: /workspace + - name: vizzu/vizzu-dev-wasm:0.9 + id: check_tools + waitFor: + - init + entrypoint: bash + args: + - '-c' + - '-e' + - |- + if [ "$_ISRELEASE" == "true" ] + then + echo "skipped" + else + npm run format:tools + npm run lint:tools + npm run type:tools + fi + dir: /workspace - - name: vizzu/vizzu-dev-desktop:0.9 - id: build_desktop_clangformat - waitFor: - - check_src - - check_docs - - check_tools - entrypoint: bash - args: - - '-c' - - '-e' - - |- - if [ "$_ISRELEASE" == "true" ] - then - echo "skipped" - else - ./tools/ci/run/pkg-build-desktop-clangformat.sh - fi - dir: /workspace + - name: vizzu/vizzu-dev-desktop:0.9 + id: build_desktop_clangformat + waitFor: + - check_src + - check_docs + - check_tools + entrypoint: bash + args: + - '-c' + - '-e' + - |- + if [ "$_ISRELEASE" == "true" ] + then + echo "skipped" + else + ./tools/ci/run/pkg-build-desktop-clangformat.sh + fi + dir: /workspace - - name: vizzu/vizzu-dev-desktop:0.9 - id: build_desktop_clangtidy - waitFor: - - build_desktop_clangformat - entrypoint: bash - args: - - '-c' - - '-e' - - |- - if [ "$_ISRELEASE" == "true" ] - then - echo "skipped" - else - ./tools/ci/run/pkg-build-desktop-clangtidy.sh - fi - dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.9 - id: build_wasm - waitFor: - - build_desktop_clangformat - entrypoint: bash - args: - - '-c' - - '-e' - - '-i' - - |- - if [ "$_ISRELEASE" == "true" ] - then - ./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh $SHORT_SHA - else - source /root/.bashrc && - ./tools/ci/run/pkg-build-wasm.sh - fi - ./tools/ci/run/pkg-set-version-js.sh - ./tools/ci/run/pkg-build-js.sh - dir: /workspace + - name: vizzu/vizzu-dev-desktop:0.9 + id: build_desktop_clangtidy + waitFor: + - build_desktop_clangformat + entrypoint: bash + args: + - '-c' + - '-e' + - |- + if [ "$_ISRELEASE" == "true" ] + then + echo "skipped" + else + ./tools/ci/run/pkg-build-desktop-clangtidy.sh + fi + dir: /workspace + - name: vizzu/vizzu-dev-wasm:0.9 + id: build_wasm + waitFor: + - build_desktop_clangformat + entrypoint: bash + args: + - '-c' + - '-e' + - '-i' + - |- + if [ "$_ISRELEASE" == "true" ] + then + ./tools/ci/run/pkg-build-wasm-wocpp-gsutil.sh $SHORT_SHA + else + source /root/.bashrc && + ./tools/ci/run/pkg-build-wasm.sh + fi + ./tools/ci/run/pkg-set-version-js.sh + ./tools/ci/run/pkg-build-js.sh + dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.9 - id: lib_sha - waitFor: - - build_wasm - entrypoint: bash - args: - - '-c' - - '-e' - - |- - if [ "$_ISRELEASE" == "true" ] - then - echo "skipped" - else - gsutil -m cp -r 'dist/*' 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA' - for file in build/js/* - do - if [ -f "$file" ]; then - gsutil cp $file 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA/vizzu.tgz' - fi - done - fi - dir: /workspace + - name: vizzu/vizzu-dev-wasm:0.9 + id: lib_sha + waitFor: + - build_wasm + entrypoint: bash + args: + - '-c' + - '-e' + - |- + if [ "$_ISRELEASE" == "true" ] + then + echo "skipped" + else + gsutil -m cp -r 'dist/*' 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA' + for file in build/js/* + do + if [ -f "$file" ]; then + gsutil cp $file 'gs://vizzu-lib-main-sha/lib-$SHORT_SHA/vizzu.tgz' + fi + done + fi + dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.9 - id: test - waitFor: - - lib_sha - entrypoint: bash - args: - - '-c' - - |- - if [ "$_ISRELEASE" == "true" ]; then - echo "skipped" - else - ./tools/ci/run/test-gsutil.sh $SHORT_SHA - fi - dir: /workspace + - name: vizzu/vizzu-dev-wasm:0.9 + id: test + waitFor: + - lib_sha + entrypoint: bash + args: + - '-c' + - |- + if [ "$_ISRELEASE" == "true" ]; then + echo "skipped" + else + ./tools/ci/run/test-gsutil.sh $SHORT_SHA + fi + dir: /workspace - - name: vizzu/vizzu-dev-wasm:0.9 - id: docs - waitFor: - - test - entrypoint: bash - args: - - '-c' - - '-e' - - | - git reset --hard - mkdir -p /root/.ssh - echo "$$VIZZUHQ_GITHUB_SSH" > /root/.ssh/id_rsa - chmod 400 /root/.ssh/id_rsa - ssh-keyscan -t rsa github.com > /root/.ssh/known_hosts - git clone --single-branch --branch main --depth 1 'git@github.com:vizzuhq/vizzu-lib-doc' - git config --global user.name "$$VIZZUHQ_GITHUB_USER" - git config --global user.email "$$VIZZUHQ_GITHUB_EMAIL" - npm run gen-thumbnail-gsutil - if [ "$_ISRELEASE" == "true" ] - then - git remote add vizzu-lib-doc git@github.com:vizzuhq/vizzu-lib-doc - git fetch git@github.com:vizzuhq/vizzu-lib-doc gh-pages:gh-pages --depth=1 - npm run deploy-docs - git push vizzu-lib-doc gh-pages:gh-pages - else - npm run build-docs - if [ "$BRANCH_NAME" == "main" ]; then - cd vizzu-lib-doc - git checkout -b gh-pages-dev - git rm -r . - git clean -df - cp -r ../site/* . - git add . - git commit -m "Site development version" - git push origin gh-pages-dev:gh-pages-dev -f - fi - fi - dir: /workspace - secretEnv: - - VIZZUHQ_GITHUB_SSH - - VIZZUHQ_GITHUB_USER - - VIZZUHQ_GITHUB_EMAIL + - name: vizzu/vizzu-dev-wasm:0.9 + id: docs + waitFor: + - test + entrypoint: bash + args: + - '-c' + - '-e' + - | + git reset --hard + mkdir -p /root/.ssh + echo "$$VIZZUHQ_GITHUB_SSH" > /root/.ssh/id_rsa + chmod 400 /root/.ssh/id_rsa + ssh-keyscan -t rsa github.com > /root/.ssh/known_hosts + git clone --single-branch --branch main --depth 1 'git@github.com:vizzuhq/vizzu-lib-doc' + git config --global user.name "$$VIZZUHQ_GITHUB_USER" + git config --global user.email "$$VIZZUHQ_GITHUB_EMAIL" + npm run gen-thumbnail-gsutil + if [ "$_ISRELEASE" == "true" ] + then + git remote add vizzu-lib-doc git@github.com:vizzuhq/vizzu-lib-doc + git fetch git@github.com:vizzuhq/vizzu-lib-doc gh-pages:gh-pages --depth=1 + npm run deploy-docs + git push vizzu-lib-doc gh-pages:gh-pages + else + npm run build-docs + if [ "$BRANCH_NAME" == "main" ]; then + cd vizzu-lib-doc + git checkout -b gh-pages-dev + git rm -r . + git clean -df + cp -r ../site/* . + git add . + git commit -m "Site development version" + git push origin gh-pages-dev:gh-pages-dev -f + fi + fi + dir: /workspace + secretEnv: + - VIZZUHQ_GITHUB_SSH + - VIZZUHQ_GITHUB_USER + - VIZZUHQ_GITHUB_EMAIL - - name: vizzu/vizzu-dev-wasm:0.9 - id: publish - waitFor: - - docs - entrypoint: bash - args: - - '-c' - - '-e' - - |- - ./tools/ci/run/pkg-set-version-js.sh - npm config set registry=https://registry.npmjs.org/ - npm config set //registry.npmjs.org/:_authToken=$$VIZZUHQ_NPM_API - if [ "$_ISRELEASE" == "true" ] - then - npm publish - npm run purge - git fetch --depth=1 - echo $$VIZZUHQ_GITHUB_API | gh auth login --with-token - gh release upload $(git describe --tags --abbrev=0) build/js/*tgz --clobber - else - npm publish --dry-run - fi - dir: /workspace - secretEnv: - - VIZZUHQ_NPM_API - - VIZZUHQ_GITHUB_API + - name: vizzu/vizzu-dev-wasm:0.9 + id: publish + waitFor: + - docs + entrypoint: bash + args: + - '-c' + - '-e' + - |- + ./tools/ci/run/pkg-set-version-js.sh + npm config set registry=https://registry.npmjs.org/ + npm config set //registry.npmjs.org/:_authToken=$$VIZZUHQ_NPM_API + if [ "$_ISRELEASE" == "true" ] + then + npm publish + npm run purge + git fetch --depth=1 + echo $$VIZZUHQ_GITHUB_API | gh auth login --with-token + gh release upload $(git describe --tags --abbrev=0) build/js/*tgz --clobber + else + npm publish --dry-run + fi + dir: /workspace + secretEnv: + - VIZZUHQ_NPM_API + - VIZZUHQ_GITHUB_API - - name: gcr.io/cloud-builders/gsutil - id: lib - waitFor: - - publish - entrypoint: bash - args: - - '-c' - - '-e' - - |- - if [ "$_ISRELEASE" == "false" ] && [ "$BRANCH_NAME" == "main" ]; then - for file in $(gsutil ls gs://vizzu-lib-main/lib); do - filename=$(basename "$file") - if [ "$filename" != "size.txt" ] && [ "$filename" != "sha.txt" ]; then - gsutil -m rm -r "$file" - fi - done - gsutil -m cp -r 'dist/*' 'gs://vizzu-lib-main/lib' - echo $SHORT_SHA | gsutil cp - gs://vizzu-lib-main/lib/sha.txt - gsutil cp 'build/cmake-wasm/weblib/size.txt' 'gs://vizzu-lib-main/lib' - for file in build/js/* - do - if [ -f "$file" ]; then - gsutil cp $file 'gs://vizzu-lib-main/lib/vizzu.tgz' - fi - done - gsutil -m setmeta -r -h 'cache-control: max-age=0,public' 'gs://vizzu-lib-main/*' - else - echo "skipped" - fi - dir: /workspace + - name: gcr.io/cloud-builders/gsutil + id: lib + waitFor: + - publish + entrypoint: bash + args: + - '-c' + - '-e' + - |- + if [ "$_ISRELEASE" == "false" ] && [ "$BRANCH_NAME" == "main" ]; then + for file in $(gsutil ls gs://vizzu-lib-main/lib); do + filename=$(basename "$file") + if [ "$filename" != "size.txt" ] && [ "$filename" != "sha.txt" ]; then + gsutil -m rm -r "$file" + fi + done + gsutil -m cp -r 'dist/*' 'gs://vizzu-lib-main/lib' + echo $SHORT_SHA | gsutil cp - gs://vizzu-lib-main/lib/sha.txt + gsutil cp 'build/cmake-wasm/weblib/size.txt' 'gs://vizzu-lib-main/lib' + for file in build/js/* + do + if [ -f "$file" ]; then + gsutil cp $file 'gs://vizzu-lib-main/lib/vizzu.tgz' + fi + done + gsutil -m setmeta -r -h 'cache-control: max-age=0,public' 'gs://vizzu-lib-main/*' + else + echo "skipped" + fi + dir: /workspace availableSecrets: - secretManager: - - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_SSH/versions/latest - env: VIZZUHQ_GITHUB_SSH - - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_API/versions/latest - env: VIZZUHQ_GITHUB_API - - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_USER/versions/latest - env: VIZZUHQ_GITHUB_USER - - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_EMAIL/versions/latest - env: VIZZUHQ_GITHUB_EMAIL - - versionName: projects/418279184538/secrets/VIZZUHQ_NPM_API/versions/latest - env: VIZZUHQ_NPM_API + secretManager: + - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_SSH/versions/latest + env: VIZZUHQ_GITHUB_SSH + - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_API/versions/latest + env: VIZZUHQ_GITHUB_API + - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_USER/versions/latest + env: VIZZUHQ_GITHUB_USER + - versionName: projects/418279184538/secrets/VIZZUHQ_GITHUB_EMAIL/versions/latest + env: VIZZUHQ_GITHUB_EMAIL + - versionName: projects/418279184538/secrets/VIZZUHQ_NPM_API/versions/latest + env: VIZZUHQ_NPM_API timeout: 2400s options: - machineType: E2_HIGHCPU_8 + machineType: E2_HIGHCPU_8 diff --git a/tools/ci/gcp/cloudfunctions/getVizzuList/index.js b/tools/ci/gcp/cloudfunctions/getVizzuList/index.js index 908c9f385..39eb9f268 100644 --- a/tools/ci/gcp/cloudfunctions/getVizzuList/index.js +++ b/tools/ci/gcp/cloudfunctions/getVizzuList/index.js @@ -1,31 +1,31 @@ // export GOOGLE_APPLICATION_CREDENTIALS="~/.gcp/vizzu-ci.json" exports.getVizzuList = (req, res) => { - const { Storage } = require('@google-cloud/storage') - const storage = new Storage() - const bucketName = 'vizzu-lib-main-sha' - const bucket = storage.bucket(bucketName) - bucket.getFiles().then((files) => { - const ans = [] - files[0].sort((a, b) => { - if (a.metadata.updated > b.metadata.updated) { - return 1 - } - if (a.metadata.updated < b.metadata.updated) { - return -1 - } - return 0 - }) - files[0].forEach((file) => { - const fileEnd = '/vizzu.js' - if (file.name.endsWith(fileEnd)) { - const tmp = {} - tmp.sha = file.name.slice(0, -fileEnd.length) - tmp.time = file.metadata.updated - ans.push(tmp) - } - }) - const message = req.query.message || req.body.message || JSON.stringify(ans) - res.status(200).send(message) - }) + const { Storage } = require('@google-cloud/storage') + const storage = new Storage() + const bucketName = 'vizzu-lib-main-sha' + const bucket = storage.bucket(bucketName) + bucket.getFiles().then((files) => { + const ans = [] + files[0].sort((a, b) => { + if (a.metadata.updated > b.metadata.updated) { + return 1 + } + if (a.metadata.updated < b.metadata.updated) { + return -1 + } + return 0 + }) + files[0].forEach((file) => { + const fileEnd = '/vizzu.js' + if (file.name.endsWith(fileEnd)) { + const tmp = {} + tmp.sha = file.name.slice(0, -fileEnd.length) + tmp.time = file.metadata.updated + ans.push(tmp) + } + }) + const message = req.query.message || req.body.message || JSON.stringify(ans) + res.status(200).send(message) + }) } diff --git a/tools/ci/gcp/cloudfunctions/getVizzuList/package.json b/tools/ci/gcp/cloudfunctions/getVizzuList/package.json index cc806107a..be0c4b6ff 100644 --- a/tools/ci/gcp/cloudfunctions/getVizzuList/package.json +++ b/tools/ci/gcp/cloudfunctions/getVizzuList/package.json @@ -1,11 +1,11 @@ { - "name": "getVizzuList", - "version": "0.0.2", - "dependencies": { - "@google-cloud/storage": "*", - "@google-cloud/functions-framework": "*" - }, - "scripts": { - "start": "npx functions-framework --target=getVizzuList" - } + "name": "getVizzuList", + "version": "0.0.2", + "dependencies": { + "@google-cloud/storage": "*", + "@google-cloud/functions-framework": "*" + }, + "scripts": { + "start": "npx functions-framework --target=getVizzuList" + } } diff --git a/tools/ci/purge.cjs b/tools/ci/purge.cjs index dfd20fd08..cbc6caae7 100644 --- a/tools/ci/purge.cjs +++ b/tools/ci/purge.cjs @@ -1,79 +1,79 @@ const axios = require('axios') function getPurgeData(version) { - const versionParts = version.split('.') - const versions = [ - 'latest', - `${versionParts[0]}`, - `${versionParts[0]}.${versionParts[1]}`, - version - ] - const purgeData = { - path: [] - } - for (const item of versions) { - const pathTemplate = `/npm/vizzu@${item}` - purgeData.path.push(`${pathTemplate}/dist/vizzu.min.js`) - purgeData.path.push(`${pathTemplate}/dist/cvizzu.wasm`) - purgeData.path.push(`${pathTemplate}/dist/vizzu.d.ts`) - } - return purgeData + const versionParts = version.split('.') + const versions = [ + 'latest', + `${versionParts[0]}`, + `${versionParts[0]}.${versionParts[1]}`, + version + ] + const purgeData = { + path: [] + } + for (const item of versions) { + const pathTemplate = `/npm/vizzu@${item}` + purgeData.path.push(`${pathTemplate}/dist/vizzu.min.js`) + purgeData.path.push(`${pathTemplate}/dist/cvizzu.wasm`) + purgeData.path.push(`${pathTemplate}/dist/vizzu.d.ts`) + } + return purgeData } async function purgeCDN(purgeData) { - const purgeResponse = await axios.post('https://purge.jsdelivr.net/', purgeData, { - headers: { - 'Content-Type': 'application/json' - } - }) - if (purgeResponse.status === 202) { - const purgeResult = purgeResponse.data - console.log('Purge ID:', purgeResult.id) - const statusData = await checkPurgeIsFinished(purgeResult.id, 5000, 100) - if (checkPurgeIsSucceeded(statusData)) { - console.log('Purge succeeded') - } else { - console.log(statusData) - throw new Error('Purge failed') - } - } else { - throw new Error(`Purge request failed ${purgeResponse.status}`) - } + const purgeResponse = await axios.post('https://purge.jsdelivr.net/', purgeData, { + headers: { + 'Content-Type': 'application/json' + } + }) + if (purgeResponse.status === 202) { + const purgeResult = purgeResponse.data + console.log('Purge ID:', purgeResult.id) + const statusData = await checkPurgeIsFinished(purgeResult.id, 5000, 100) + if (checkPurgeIsSucceeded(statusData)) { + console.log('Purge succeeded') + } else { + console.log(statusData) + throw new Error('Purge failed') + } + } else { + throw new Error(`Purge request failed ${purgeResponse.status}`) + } } async function checkPurgeIsFinished(purgeId, timeout, checkInterval) { - const startTime = Date.now() - while (Date.now() - startTime < timeout) { - const statusResponse = await axios.get(`https://purge.jsdelivr.net/status/${purgeId}`) - if (statusResponse.status === 200) { - if (statusResponse.data.status === 'finished') { - console.log('Purge Status:', statusResponse.data.status) - return statusResponse.data - } - } else { - throw new Error(`Failed to fetch purge status: ${statusResponse.status}`) - } - await new Promise((resolve) => setTimeout(resolve, checkInterval)) - } - throw new Error('Failed to fetch purge status: timeout') + const startTime = Date.now() + while (Date.now() - startTime < timeout) { + const statusResponse = await axios.get(`https://purge.jsdelivr.net/status/${purgeId}`) + if (statusResponse.status === 200) { + if (statusResponse.data.status === 'finished') { + console.log('Purge Status:', statusResponse.data.status) + return statusResponse.data + } + } else { + throw new Error(`Failed to fetch purge status: ${statusResponse.status}`) + } + await new Promise((resolve) => setTimeout(resolve, checkInterval)) + } + throw new Error('Failed to fetch purge status: timeout') } function checkPurgeIsSucceeded(data) { - for (const path in data.paths) { - const pathData = data.paths[path] - if (pathData.throttled !== false) { - return false - } - for (const provider in pathData.providers) { - const providerData = pathData.providers[provider] - for (const key in providerData) { - if (providerData[key] !== true) { - return false - } - } - } - } - return true + for (const path in data.paths) { + const pathData = data.paths[path] + if (pathData.throttled !== false) { + return false + } + for (const provider in pathData.providers) { + const providerData = pathData.providers[provider] + for (const key in providerData) { + if (providerData[key] !== true) { + return false + } + } + } + } + return true } const version = process.argv[2] diff --git a/tools/ci/rollup.config.cjs b/tools/ci/rollup.config.cjs index 849b6a143..8982827e1 100644 --- a/tools/ci/rollup.config.cjs +++ b/tools/ci/rollup.config.cjs @@ -3,22 +3,22 @@ const path = require('path') const terser = require('@rollup/plugin-terser') module.exports = [ - { - input: path.resolve(__dirname, '../../dist/index.js'), - output: { - file: path.resolve(__dirname, '../../dist/vizzu.min.js'), - format: 'es', - name: 'bundle' - }, - plugins: [ - terser({ - mangle: { - properties: { - keep_quoted: true, - regex: /^_/ - } - } - }) - ] - } + { + input: path.resolve(__dirname, '../../dist/index.js'), + output: { + file: path.resolve(__dirname, '../../dist/vizzu.min.js'), + format: 'es', + name: 'bundle' + }, + plugins: [ + terser({ + mangle: { + properties: { + keep_quoted: true, + regex: /^_/ + } + } + }) + ] + } ] diff --git a/tools/ci/sizeCheck.cjs b/tools/ci/sizeCheck.cjs index f1b516b0c..b314d189c 100644 --- a/tools/ci/sizeCheck.cjs +++ b/tools/ci/sizeCheck.cjs @@ -14,28 +14,28 @@ const downloadedData = fs.readFileSync(sizeDownloadedFilePath, 'utf8') const downloadedLines = downloadedData.split('\n').map((line) => line.trim()) sizeLines.forEach((sizeLine) => { - if (!sizeLine) return - const [file, actualSize] = sizeLine.split(' ') + if (!sizeLine) return + const [file, actualSize] = sizeLine.split(' ') - const downloadedLine = downloadedLines.find((dlLine) => { - const regex = new RegExp(`^${file}\\s+\\d+`) - return regex.test(dlLine) - }) + const downloadedLine = downloadedLines.find((dlLine) => { + const regex = new RegExp(`^${file}\\s+\\d+`) + return regex.test(dlLine) + }) - if (downloadedLine) { - const downloadedSize = downloadedLine.split(' ')[1] + if (downloadedLine) { + const downloadedSize = downloadedLine.split(' ')[1] - if (parseFloat(actualSize) > parseFloat(downloadedSize) * THRESHOLD) { - console.error(`Error: File ${file} size exceeds the threshold.`) - process.exit(1) - } else { - console.log( - `Success: File ${file} size comparison passed. Actual: ${actualSize}, Downloaded: ${downloadedSize}` - ) - } - } else { - console.warn( - `Warning: Downloaded size not found for file ${file}. Skipping comparison. Actual: ${actualSize}` - ) - } + if (parseFloat(actualSize) > parseFloat(downloadedSize) * THRESHOLD) { + console.error(`Error: File ${file} size exceeds the threshold.`) + process.exit(1) + } else { + console.log( + `Success: File ${file} size comparison passed. Actual: ${actualSize}, Downloaded: ${downloadedSize}` + ) + } + } else { + console.warn( + `Warning: Downloaded size not found for file ${file}. Skipping comparison. Actual: ${actualSize}` + ) + } }) diff --git a/tools/ci/type/gen-canvas-h.cjs b/tools/ci/type/gen-canvas-h.cjs index 5ac9706a1..8c2ce03b0 100644 --- a/tools/ci/type/gen-canvas-h.cjs +++ b/tools/ci/type/gen-canvas-h.cjs @@ -2,22 +2,22 @@ const path = require('path') const Generator = require('./gen-simple.cjs') const generator = new Generator({ - prefix: (_name) => '#include \n\nextern "C" {\n\n', - procParams: (params) => [['canvas', 'const void *'], ...params], - toParameter: (_param, type) => `${convertToCType(type)}`, - toDeclaration: (method, params) => `extern void canvas_${method}(${params});`, - toContent: (declarations) => declarations.join('\n'), - suffix: () => `\n\n}\n`, - formatCode: async (code) => code + prefix: (_name) => '#include \n\nextern "C" {\n\n', + procParams: (params) => [['canvas', 'const void *'], ...params], + toParameter: (_param, type) => `${convertToCType(type)}`, + toDeclaration: (method, params) => `extern void canvas_${method}(${params});`, + toContent: (declarations) => declarations.join('\n'), + suffix: () => `\n\n}\n`, + formatCode: async (code) => code }) function convertToCType(yamlType) { - if (yamlType.includes('/')) return yamlType.split('/')[1] - const typeMap = { - number: 'double', - 'C.CString': 'const char *' - } - return typeMap[yamlType] || 'const void *' + if (yamlType.includes('/')) return yamlType.split('/')[1] + const typeMap = { + number: 'double', + 'C.CString': 'const char *' + } + return typeMap[yamlType] || 'const void *' } const outputFile = path.join(__dirname, '../../..', 'src/apps/weblib/canvas.h') diff --git a/tools/ci/type/gen-canvas-js.cjs b/tools/ci/type/gen-canvas-js.cjs index 0b0e52f04..d17446547 100644 --- a/tools/ci/type/gen-canvas-js.cjs +++ b/tools/ci/type/gen-canvas-js.cjs @@ -3,19 +3,19 @@ const prettier = require('prettier') const Generator = require('./gen-simple.cjs') const generator = new Generator({ - prefix: (_name) => 'mergeInto(LibraryManager.library, {\n', - procParams: (params) => params, - toParameter: (param, _type) => param, - toDeclaration: (method, params) => - ` canvas_${method}: function(${ - 'canvas' + (params !== '' ? ', ' + params : '') - }) { Module.canvases[canvas].${method}(${params}) }`, - toContent: (declarations) => declarations.join(',\n'), - suffix: () => `\n})\n`, - formatCode: async (code) => { - const cfg = await prettier.resolveConfig(__dirname) - return await prettier.format(code, { ...cfg, parser: 'babel' }) - } + prefix: (_name) => 'mergeInto(LibraryManager.library, {\n', + procParams: (params) => params, + toParameter: (param, _type) => param, + toDeclaration: (method, params) => + ` canvas_${method}: function(${ + 'canvas' + (params !== '' ? ', ' + params : '') + }) { Module.canvases[canvas].${method}(${params}) }`, + toContent: (declarations) => declarations.join(',\n'), + suffix: () => `\n})\n`, + formatCode: async (code) => { + const cfg = await prettier.resolveConfig(__dirname) + return await prettier.format(code, { ...cfg, parser: 'babel' }) + } }) const outputFile = path.join(__dirname, '../../..', 'src/apps/weblib/canvas.js') diff --git a/tools/ci/type/gen-canvas-ts.cjs b/tools/ci/type/gen-canvas-ts.cjs index 9f0fe1aa7..88d6213f2 100644 --- a/tools/ci/type/gen-canvas-ts.cjs +++ b/tools/ci/type/gen-canvas-ts.cjs @@ -3,22 +3,22 @@ const path = require('path') const Generator = require('./gen-simple.cjs') const generator = new Generator({ - prefix: (name) => - `import * as C from '../cvizzu.types.js'\n` + `\n` + `export interface ${name} {\n`, - procParams: (params) => params, - toParameter: (param, type) => `${param}: ${convertToTSType(type)}`, - toDeclaration: (method, params) => ` ${method}(${params}): void`, - toContent: (declarations) => declarations.join('\n'), - suffix: () => `\n}\n`, - formatCode: async (code) => { - const cfg = await prettier.resolveConfig(__dirname) - return await prettier.format(code, Object.assign(cfg, { parser: 'typescript' })) - } + prefix: (name) => + `import * as C from '../cvizzu.types.js'\n` + `\n` + `export interface ${name} {\n`, + procParams: (params) => params, + toParameter: (param, type) => `${param}: ${convertToTSType(type)}`, + toDeclaration: (method, params) => ` ${method}(${params}): void`, + toContent: (declarations) => declarations.join('\n'), + suffix: () => `\n}\n`, + formatCode: async (code) => { + const cfg = await prettier.resolveConfig(__dirname) + return await prettier.format(code, Object.assign(cfg, { parser: 'typescript' })) + } }) function convertToTSType(yamlType) { - if (yamlType.includes('/')) return yamlType.split('/')[0] - return yamlType + if (yamlType.includes('/')) return yamlType.split('/')[0] + return yamlType } const outputFile = path.join(__dirname, '../../..', 'src/apps/weblib/ts-api/module/canvas.ts') diff --git a/tools/ci/type/gen-dts.cjs b/tools/ci/type/gen-dts.cjs index 0ebaa9f45..54ecdec66 100644 --- a/tools/ci/type/gen-dts.cjs +++ b/tools/ci/type/gen-dts.cjs @@ -4,290 +4,290 @@ const prettier = require('prettier') const yaml = require('js-yaml') class SchemaCollection { - constructor(inputDir) { - this._inputDir = inputDir - const yamls = this._getFiles('yaml') - this.schemas = this._getContent(yamls, (content) => yaml.load(content)) - } - - _getFiles(ext) { - let files = fs.readdirSync(this._inputDir) - files = files.filter((file) => file.endsWith('.' + ext)) - return files - } - - _getContent(files, format) { - const contents = [] - for (const file of files) { - const basename = file.split('.')[0] - const formatted = format(fs.readFileSync(this._inputDir + '/' + file, 'utf8')) - contents[basename] = formatted - } - return contents - } + constructor(inputDir) { + this._inputDir = inputDir + const yamls = this._getFiles('yaml') + this.schemas = this._getContent(yamls, (content) => yaml.load(content)) + } + + _getFiles(ext) { + let files = fs.readdirSync(this._inputDir) + files = files.filter((file) => file.endsWith('.' + ext)) + return files + } + + _getContent(files, format) { + const contents = [] + for (const file of files) { + const basename = file.split('.')[0] + const formatted = format(fs.readFileSync(this._inputDir + '/' + file, 'utf8')) + contents[basename] = formatted + } + return contents + } } class DTSGenerator { - constructor() { - this._export = '' - this._namespaces = [] - this._imports = [] - this._content = '' - } - - addContent(content) { - this._content += content - } - - async writeFile(outputPath) { - const cfg = await prettier.resolveConfig(__dirname) - const formatted = await prettier.format( - this._content, - Object.assign(cfg, { parser: 'typescript' }) - ) - const dir = path.dirname(outputPath) - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }) - } - fs.writeFileSync(outputPath, formatted) - this._content = '' - } - - async generate(schemas, outputDir) { - this._namespaces = [...Object.keys(schemas)] - for (const name of this._namespaces) { - console.log(`Generating ${name}.ts`) - if (schemas[name]) this.addModule(schemas[name]) - else throw new Error(`Schema ${name} not found`) - await this.writeFile(outputDir + `/${name}.ts`) - } - this._namespaces = [] - this._imports = [] - } - - addModule(schema) { - if (schema.$import) { - this.addImports(schema.$import) - } - if (schema.$ref) { - this._export = schema.$ref - } - this.addDefinitions(schema.definitions) - this._export = '' - } - - addImports(imports) { - for (const name in imports) { - const file = imports[name] - this.addContent(`import * as ${name} from '${file}.js'\n`) - this._imports.push(name) - } - this.addContent('\n') - } - - addDefinitions(definitions) { - for (const name in definitions) { - this.addDefinition(name, definitions[name]) - } - } - - addDefinition(name, definition) { - if (definition.description) { - const comment = this._getComment(definition.description) - this.addContent(comment + '\n') - } - - if (definition.type === 'object') { - this._addInterface(name, definition) - } else { - this._addType(name, definition) - } - this.addContent('\n') - } - - _addInterface(name, definition) { - this._validateType(definition, 'properties', '$extends', 'required') - const type = name === this._export ? `export default class` : 'export interface' - if (definition.$extends) { - const extendsType = this._getExtendsType(name, definition.$extends) - this.addContent(`${type} ${name} extends ${extendsType} {\n`) - } else { - this.addContent(`${type} ${name} {\n`) - } - this._vizitProperties(definition) - this.addContent('}\n') - } - - _getExtendsType(name, definition) { - if (typeof definition === 'string') { - return definition - } else if (definition instanceof Array) { - return definition.map((x) => this._getExtendsType(name, x)).join(', ') - } else if (definition instanceof Object) { - return this._getType(name, definition) - } else throw new Error('Invalid extends type') - } - - _vizitProperties(definition) { - if (definition.properties) { - for (const name in definition.properties) { - const property = definition.properties[name] - const required = definition.required && definition.required.includes(name) - this._addProperty(name, property, required) - } - } - } - - _addProperty(name, property, required) { - if (property.description) { - const comment = this._getComment(property.description) - this.addContent(comment + '\n') - } - if (property.type === 'function') { - this._addMethod(name, property) - } else { - const type = this._getType(name, property) - const requiredStr = required ? '' : '?' - this.addContent(`${name}${requiredStr}: ${type};\n`) - } - } - - _addMethod(name, property) { - let prefix = '' - if (property.static) prefix += 'static ' - if (property.getter) prefix += 'get ' - const type = this._getType(name, property) - let args = type.split(' => ')[0] - const returnType = type.split(' => ')[1] - if (name === 'constructor') { - this.addContent(`${prefix}constructor${args};\n`) - } else if (name === 'operator[]') { - args = args.replace(/^\(|\)$/g, '') - this.addContent(`${prefix}[${args}]: ${returnType};\n`) - } else { - this.addContent(`${prefix}${name}${args}: ${returnType};\n`) - } - } - - _addType(name, definition) { - const type = this._getType(name, definition) - this.addContent(`export type ${name} = ${type};\n`) - } - - _getType(name, definition) { - const type = this._getRawType(name, definition) - if (definition.nullable) { - return `(${type} | null)` - } else { - return type - } - } - - _getRawType(name, definition) { - if (definition.type === 'number') { - this._validateType(definition) - return 'number' - } else if (definition.type === 'boolean') { - this._validateType(definition) - return 'boolean' - } else if (definition.type === 'void') { - this._validateType(definition) - return 'void' - } else if (definition.type === 'string') { - if (definition.enum) { - this._validateType(definition, 'enum') - return definition.enum.map((item) => `'${item}'`).join(' | ') - } else if (definition.mask) { - this._validateType(definition, 'mask') - return this._regexpToTemplateLiteral(definition.mask) - } else { - this._validateType(definition) - return 'string' - } - } else if (definition.type === 'array') { - this._validateType(definition, 'items') - const type = this._getType(name, definition.items) - return `${type}[]` - } else if (definition.type === 'function') { - this._validateType(definition, 'arguments', 'return', 'required', 'getter', 'static') - let args = '' - if (definition.arguments) { - args = Object.entries(definition.arguments) - .map(([name, def]) => { - const type = this._getType(name, def) - const required = definition.required && definition.required.includes(name) - return `${name}${required ? '' : '?'}: ${type}` - }) - .join(', ') - } - const returns = definition.return ? this._getType(name, definition.return) : 'void' - return `(${args}) => ${returns}` - } else if (definition.$ref) { - this._validateDef(definition, '$ref', '$template') - const refType = this._getRef(definition.$ref) - if (definition.$template) { - this._validateProperties(definition.$template, 'T') - const template = this._getRef(definition.$template.T) - return `${refType}<${template}>` - } else return refType - } else if (definition.oneOf) { - this._validateDef(definition, 'oneOf') - return '(' + definition.oneOf.map((item) => this._getType(name, item)).join(' | ') + ')' - } else if (definition.allOf) { - this._validateDef(definition, 'allOf') - return '(' + definition.allOf.map((item) => this._getType(name, item)).join(' & ') + ')' - } else { - throw new Error(`unknown type: '${definition.type}' in '${definition}'`) - } - } - - _getRef(reference) { - const parts = reference.split(':') - if ( - parts.length === 1 || - this._namespaces.includes(parts[0]) || - this._imports.includes(parts[0]) - ) { - parts[0] = this._upperCaseFirstLetter(parts[0]) - } else { - parts[0] = `import('./${parts[0]}')` - } - return parts.join('.') - } - - _getComment(text) { - text = text.replace(/\n$/, '') - return '/** ' + text.split('\n').join('\n ') + ' */' - } - - _regexpToTemplateLiteral(regexp) { - // trim leading and trailing slashes - regexp = regexp.replace(/^\/|\/$/g, '') - // de-escape regexp special characters - regexp = regexp.replace(/\\([-[\]{}()*+?.,\\^$|#\s])/g, '$1') - // replate :type: with ${type} - // eslint-disable-next-line no-template-curly-in-string - regexp = regexp.replace(/:([^:]+):/g, '${$1}') - return '`' + regexp + '`' - } - - _validateType(definition, ...additionalProperties) { - this._validateDef(definition, 'type', ...additionalProperties) - } - - _validateDef(definition, ...additionalProperties) { - this._validateProperties(definition, 'description', 'nullable', ...additionalProperties) - } - - _validateProperties(definition, ...properties) { - if (Object.keys(definition).filter((key) => !properties.includes(key)).length) { - throw new Error(`unknown property in: '${JSON.stringify(definition)}'`) - } - } - - _upperCaseFirstLetter(string) { - return string.charAt(0).toUpperCase() + string.slice(1) - } + constructor() { + this._export = '' + this._namespaces = [] + this._imports = [] + this._content = '' + } + + addContent(content) { + this._content += content + } + + async writeFile(outputPath) { + const cfg = await prettier.resolveConfig(__dirname) + const formatted = await prettier.format( + this._content, + Object.assign(cfg, { parser: 'typescript' }) + ) + const dir = path.dirname(outputPath) + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }) + } + fs.writeFileSync(outputPath, formatted) + this._content = '' + } + + async generate(schemas, outputDir) { + this._namespaces = [...Object.keys(schemas)] + for (const name of this._namespaces) { + console.log(`Generating ${name}.ts`) + if (schemas[name]) this.addModule(schemas[name]) + else throw new Error(`Schema ${name} not found`) + await this.writeFile(outputDir + `/${name}.ts`) + } + this._namespaces = [] + this._imports = [] + } + + addModule(schema) { + if (schema.$import) { + this.addImports(schema.$import) + } + if (schema.$ref) { + this._export = schema.$ref + } + this.addDefinitions(schema.definitions) + this._export = '' + } + + addImports(imports) { + for (const name in imports) { + const file = imports[name] + this.addContent(`import * as ${name} from '${file}.js'\n`) + this._imports.push(name) + } + this.addContent('\n') + } + + addDefinitions(definitions) { + for (const name in definitions) { + this.addDefinition(name, definitions[name]) + } + } + + addDefinition(name, definition) { + if (definition.description) { + const comment = this._getComment(definition.description) + this.addContent(comment + '\n') + } + + if (definition.type === 'object') { + this._addInterface(name, definition) + } else { + this._addType(name, definition) + } + this.addContent('\n') + } + + _addInterface(name, definition) { + this._validateType(definition, 'properties', '$extends', 'required') + const type = name === this._export ? `export default class` : 'export interface' + if (definition.$extends) { + const extendsType = this._getExtendsType(name, definition.$extends) + this.addContent(`${type} ${name} extends ${extendsType} {\n`) + } else { + this.addContent(`${type} ${name} {\n`) + } + this._vizitProperties(definition) + this.addContent('}\n') + } + + _getExtendsType(name, definition) { + if (typeof definition === 'string') { + return definition + } else if (definition instanceof Array) { + return definition.map((x) => this._getExtendsType(name, x)).join(', ') + } else if (definition instanceof Object) { + return this._getType(name, definition) + } else throw new Error('Invalid extends type') + } + + _vizitProperties(definition) { + if (definition.properties) { + for (const name in definition.properties) { + const property = definition.properties[name] + const required = definition.required && definition.required.includes(name) + this._addProperty(name, property, required) + } + } + } + + _addProperty(name, property, required) { + if (property.description) { + const comment = this._getComment(property.description) + this.addContent(comment + '\n') + } + if (property.type === 'function') { + this._addMethod(name, property) + } else { + const type = this._getType(name, property) + const requiredStr = required ? '' : '?' + this.addContent(`${name}${requiredStr}: ${type};\n`) + } + } + + _addMethod(name, property) { + let prefix = '' + if (property.static) prefix += 'static ' + if (property.getter) prefix += 'get ' + const type = this._getType(name, property) + let args = type.split(' => ')[0] + const returnType = type.split(' => ')[1] + if (name === 'constructor') { + this.addContent(`${prefix}constructor${args};\n`) + } else if (name === 'operator[]') { + args = args.replace(/^\(|\)$/g, '') + this.addContent(`${prefix}[${args}]: ${returnType};\n`) + } else { + this.addContent(`${prefix}${name}${args}: ${returnType};\n`) + } + } + + _addType(name, definition) { + const type = this._getType(name, definition) + this.addContent(`export type ${name} = ${type};\n`) + } + + _getType(name, definition) { + const type = this._getRawType(name, definition) + if (definition.nullable) { + return `(${type} | null)` + } else { + return type + } + } + + _getRawType(name, definition) { + if (definition.type === 'number') { + this._validateType(definition) + return 'number' + } else if (definition.type === 'boolean') { + this._validateType(definition) + return 'boolean' + } else if (definition.type === 'void') { + this._validateType(definition) + return 'void' + } else if (definition.type === 'string') { + if (definition.enum) { + this._validateType(definition, 'enum') + return definition.enum.map((item) => `'${item}'`).join(' | ') + } else if (definition.mask) { + this._validateType(definition, 'mask') + return this._regexpToTemplateLiteral(definition.mask) + } else { + this._validateType(definition) + return 'string' + } + } else if (definition.type === 'array') { + this._validateType(definition, 'items') + const type = this._getType(name, definition.items) + return `${type}[]` + } else if (definition.type === 'function') { + this._validateType(definition, 'arguments', 'return', 'required', 'getter', 'static') + let args = '' + if (definition.arguments) { + args = Object.entries(definition.arguments) + .map(([name, def]) => { + const type = this._getType(name, def) + const required = definition.required && definition.required.includes(name) + return `${name}${required ? '' : '?'}: ${type}` + }) + .join(', ') + } + const returns = definition.return ? this._getType(name, definition.return) : 'void' + return `(${args}) => ${returns}` + } else if (definition.$ref) { + this._validateDef(definition, '$ref', '$template') + const refType = this._getRef(definition.$ref) + if (definition.$template) { + this._validateProperties(definition.$template, 'T') + const template = this._getRef(definition.$template.T) + return `${refType}<${template}>` + } else return refType + } else if (definition.oneOf) { + this._validateDef(definition, 'oneOf') + return '(' + definition.oneOf.map((item) => this._getType(name, item)).join(' | ') + ')' + } else if (definition.allOf) { + this._validateDef(definition, 'allOf') + return '(' + definition.allOf.map((item) => this._getType(name, item)).join(' & ') + ')' + } else { + throw new Error(`unknown type: '${definition.type}' in '${definition}'`) + } + } + + _getRef(reference) { + const parts = reference.split(':') + if ( + parts.length === 1 || + this._namespaces.includes(parts[0]) || + this._imports.includes(parts[0]) + ) { + parts[0] = this._upperCaseFirstLetter(parts[0]) + } else { + parts[0] = `import('./${parts[0]}')` + } + return parts.join('.') + } + + _getComment(text) { + text = text.replace(/\n$/, '') + return '/** ' + text.split('\n').join('\n ') + ' */' + } + + _regexpToTemplateLiteral(regexp) { + // trim leading and trailing slashes + regexp = regexp.replace(/^\/|\/$/g, '') + // de-escape regexp special characters + regexp = regexp.replace(/\\([-[\]{}()*+?.,\\^$|#\s])/g, '$1') + // replate :type: with ${type} + // eslint-disable-next-line no-template-curly-in-string + regexp = regexp.replace(/:([^:]+):/g, '${$1}') + return '`' + regexp + '`' + } + + _validateType(definition, ...additionalProperties) { + this._validateDef(definition, 'type', ...additionalProperties) + } + + _validateDef(definition, ...additionalProperties) { + this._validateProperties(definition, 'description', 'nullable', ...additionalProperties) + } + + _validateProperties(definition, ...properties) { + if (Object.keys(definition).filter((key) => !properties.includes(key)).length) { + throw new Error(`unknown property in: '${JSON.stringify(definition)}'`) + } + } + + _upperCaseFirstLetter(string) { + return string.charAt(0).toUpperCase() + string.slice(1) + } } let inputDir = process.argv[2] diff --git a/tools/ci/type/gen-presets.cjs b/tools/ci/type/gen-presets.cjs index b3ae1da9c..42595de98 100644 --- a/tools/ci/type/gen-presets.cjs +++ b/tools/ci/type/gen-presets.cjs @@ -4,119 +4,119 @@ const prettier = require('prettier') const YAML = require('yaml') function capitalize(str) { - return str.charAt(0).toUpperCase() + str.slice(1) + return str.charAt(0).toUpperCase() + str.slice(1) } function collectUniqueValues(obj) { - let values = [] - for (const key in obj) { - const value = obj[key].set ? obj[key].set : obj[key] - if (typeof value === 'string') { - values.push(value) - } else if (Array.isArray(value)) { - values = values.concat(value) - } - } - return [...new Set(values)] + let values = [] + for (const key in obj) { + const value = obj[key].set ? obj[key].set : obj[key] + if (typeof value === 'string') { + values.push(value) + } else if (Array.isArray(value)) { + values = values.concat(value) + } + } + return [...new Set(values)] } function genPreset(presetName, preset) { - const properties = collectUniqueValues(preset.channels) - - const definition = { - type: 'object', - $extends: 'Preset', - description: `Configuration for the ${presetName} preset.`, - properties: {} - } - - for (let i = 0; i < properties.length; i++) { - const propertyName = properties[i] - definition.properties[propertyName] = { - description: `The ${propertyName} channel.`, - oneOf: [{ type: 'array', items: { type: 'string' } }, { type: 'string' }] - } - definition.required = definition.required || [] - definition.required.push(propertyName) - } - - return definition + const properties = collectUniqueValues(preset.channels) + + const definition = { + type: 'object', + $extends: 'Preset', + description: `Configuration for the ${presetName} preset.`, + properties: {} + } + + for (let i = 0; i < properties.length; i++) { + const propertyName = properties[i] + definition.properties[propertyName] = { + description: `The ${propertyName} channel.`, + oneOf: [{ type: 'array', items: { type: 'string' } }, { type: 'string' }] + } + definition.required = definition.required || [] + definition.required.push(propertyName) + } + + return definition } function genPresetClass(presets) { - const definition = { - type: 'object', - description: 'Collection of factory functions for creating preset chart configs.', - properties: {} - } - for (const name in presets) { - const methodName = name - const parameterType = capitalize(name) - definition.properties[methodName] = { - type: 'function', - description: `Creates a chart config for the ${name} preset.`, - arguments: { - config: { - description: 'The preset configuration.', - $ref: parameterType - } - }, - return: { - $ref: 'Config:Chart' - }, - required: ['config'] - } - } - return definition + const definition = { + type: 'object', + description: 'Collection of factory functions for creating preset chart configs.', + properties: {} + } + for (const name in presets) { + const methodName = name + const parameterType = capitalize(name) + definition.properties[methodName] = { + type: 'function', + description: `Creates a chart config for the ${name} preset.`, + arguments: { + config: { + description: 'The preset configuration.', + $ref: parameterType + } + }, + return: { + $ref: 'Config:Chart' + }, + required: ['config'] + } + } + return definition } function genSchema(presets) { - const schema = { - definitions: { - Preset: { - type: 'object', - properties: { - legend: { - type: 'string', - enum: ['color', 'lightness', 'size'], - nullable: true - }, - title: { - type: 'string', - nullable: true - }, - subtitle: { - type: 'string', - nullable: true - }, - caption: { - type: 'string', - nullable: true - }, - reverse: { - type: 'boolean' - }, - sort: { - type: 'string', - enum: ['none', 'byValue'] - } - } - } - } - } - - for (const presetName in presets) { - schema.definitions[capitalize(presetName)] = genPreset(presetName, presets[presetName]) - } - schema.definitions.Presets = genPresetClass(presets) - - return schema + const schema = { + definitions: { + Preset: { + type: 'object', + properties: { + legend: { + type: 'string', + enum: ['color', 'lightness', 'size'], + nullable: true + }, + title: { + type: 'string', + nullable: true + }, + subtitle: { + type: 'string', + nullable: true + }, + caption: { + type: 'string', + nullable: true + }, + reverse: { + type: 'boolean' + }, + sort: { + type: 'string', + enum: ['none', 'byValue'] + } + } + } + } + } + + for (const presetName in presets) { + schema.definitions[capitalize(presetName)] = genPreset(presetName, presets[presetName]) + } + schema.definitions.Presets = genPresetClass(presets) + + return schema } async function writeSchema(schema, outputPath) { - console.log('Writing to ' + outputPath) + console.log('Writing to ' + outputPath) - const warningText = ` + const warningText = ` # This file is auto-generated by preset-typeschema-gen.js # Do not edit this file directly. # Instead, edit the presets in src/apps/weblib/ts-api/plugins/presetconfigs.js @@ -127,26 +127,26 @@ $import: ` - const content = warningText + YAML.stringify(schema, null, 2) - const cfg = await prettier.resolveConfig(__dirname) - const formattedContent = await prettier.format(content, { ...cfg, parser: 'yaml' }) - fs.writeFileSync(outputPath, formattedContent) + const content = warningText + YAML.stringify(schema, null, 2) + const cfg = await prettier.resolveConfig(__dirname) + const formattedContent = await prettier.format(content, { ...cfg, parser: 'yaml' }) + fs.writeFileSync(outputPath, formattedContent) } let presetPath = process.argv[2] let outputPath = process.argv[3] if (!presetPath) - presetPath = path.join(__dirname, '../../..', 'src/apps/weblib/ts-api/plugins/presetconfigs.js') + presetPath = path.join(__dirname, '../../..', 'src/apps/weblib/ts-api/plugins/presetconfigs.js') if (!outputPath) - outputPath = path.join(__dirname, '../../..', 'src/apps/weblib/typeschema-api/presets.yaml') + outputPath = path.join(__dirname, '../../..', 'src/apps/weblib/typeschema-api/presets.yaml') import(presetPath) - .then((PresetsModule) => { - const presets = PresetsModule.presetConfigs - const schema = genSchema(presets) - return writeSchema(schema, outputPath) - }) - .catch((err) => { - console.error(err) - }) + .then((PresetsModule) => { + const presets = PresetsModule.presetConfigs + const schema = genSchema(presets) + return writeSchema(schema, outputPath) + }) + .catch((err) => { + console.error(err) + }) diff --git a/tools/ci/type/gen-simple.cjs b/tools/ci/type/gen-simple.cjs index 8b09cb913..78698e9bb 100644 --- a/tools/ci/type/gen-simple.cjs +++ b/tools/ci/type/gen-simple.cjs @@ -3,34 +3,34 @@ const path = require('path') const yaml = require('js-yaml') class Generator { - constructor(options) { - this.options = options - this.inputFile = path.join(__dirname, '../../..', 'src/apps/weblib/canvas.yaml') - } + constructor(options) { + this.options = options + this.inputFile = path.join(__dirname, '../../..', 'src/apps/weblib/canvas.yaml') + } - async generate(outputFile) { - const definition = yaml.load(fs.readFileSync(this.inputFile, 'utf8')) - const code = this.generateCode(definition) - const content = await this.options.formatCode(code) - console.log(`Writing ${outputFile}`) - fs.writeFileSync(outputFile, content) - } + async generate(outputFile) { + const definition = yaml.load(fs.readFileSync(this.inputFile, 'utf8')) + const code = this.generateCode(definition) + const content = await this.options.formatCode(code) + console.log(`Writing ${outputFile}`) + fs.writeFileSync(outputFile, content) + } - generateCode(def) { - const ifaceName = Object.keys(def)[0] - let code = this.options.prefix(ifaceName) - const declarations = [] - for (const [method, paramsObject] of Object.entries(def[ifaceName])) { - const params = this.options - .procParams(Object.entries(paramsObject)) - .map(([param, type]) => this.options.toParameter(param, type)) - .join(', ') - declarations.push(this.options.toDeclaration(method, params)) - } - code += this.options.toContent(declarations) - code += this.options.suffix() - return code - } + generateCode(def) { + const ifaceName = Object.keys(def)[0] + let code = this.options.prefix(ifaceName) + const declarations = [] + for (const [method, paramsObject] of Object.entries(def[ifaceName])) { + const params = this.options + .procParams(Object.entries(paramsObject)) + .map(([param, type]) => this.options.toParameter(param, type)) + .join(', ') + declarations.push(this.options.toDeclaration(method, params)) + } + code += this.options.toContent(declarations) + code += this.options.suffix() + return code + } } module.exports = Generator diff --git a/tools/ci/version.cjs b/tools/ci/version.cjs index 36e4f02f2..b467e2b26 100644 --- a/tools/ci/version.cjs +++ b/tools/ci/version.cjs @@ -10,12 +10,12 @@ const readme = path.join(__dirname, '../..', 'README.md') let content = fs.readFileSync(readme, { encoding: 'utf8', flag: 'r' }) content = content.replaceAll( - 'https://cdn.jsdelivr.net/npm/vizzu@latest/', - `https://cdn.jsdelivr.net/npm/vizzu@${version}/` + 'https://cdn.jsdelivr.net/npm/vizzu@latest/', + `https://cdn.jsdelivr.net/npm/vizzu@${version}/` ) content = content.replaceAll( - 'https://lib.vizzuhq.com/latest/', - `https://lib.vizzuhq.com/${version}/` + 'https://lib.vizzuhq.com/latest/', + `https://lib.vizzuhq.com/${version}/` ) fs.writeFileSync(readme, content) diff --git a/tools/docs/examples/gen_webcontent_hash.cjs b/tools/docs/examples/gen_webcontent_hash.cjs index a4213a082..2c8cb409f 100644 --- a/tools/docs/examples/gen_webcontent_hash.cjs +++ b/tools/docs/examples/gen_webcontent_hash.cjs @@ -2,35 +2,35 @@ const fs = require('fs') const crypto = require('crypto') async function getWebContentHash() { - const webcontentPrefixes = [ - 'web_content/analytical_operations/', - 'web_content/presets/', - 'web_content/static/' - ] - const fileContent = fs.readFileSync('./test/integration/test_cases/test_cases.json', 'utf8') + const webcontentPrefixes = [ + 'web_content/analytical_operations/', + 'web_content/presets/', + 'web_content/static/' + ] + const fileContent = fs.readFileSync('./test/integration/test_cases/test_cases.json', 'utf8') - const jsonContent = JSON.parse(fileContent) - let filteredItems = [] - for (const key in jsonContent.test) { - for (const prefix of webcontentPrefixes) { - if (key.startsWith(prefix)) { - filteredItems = filteredItems.concat(jsonContent.test[key].refs) - break - } - } - } - const joined = filteredItems.join('') - const buffer = new Uint16Array(new ArrayBuffer(filteredItems.length * 2)) - for (let i = 0, strLen = filteredItems.length; i < strLen; i++) { - buffer[i] = joined.charCodeAt(i) - } - const hashBuffer = await crypto.subtle.digest('SHA-256', buffer) - const hashArray = Array.from(new Uint8Array(hashBuffer)) - const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('') - const hash = hashHex.substring(0, 7) - return hash + const jsonContent = JSON.parse(fileContent) + let filteredItems = [] + for (const key in jsonContent.test) { + for (const prefix of webcontentPrefixes) { + if (key.startsWith(prefix)) { + filteredItems = filteredItems.concat(jsonContent.test[key].refs) + break + } + } + } + const joined = filteredItems.join('') + const buffer = new Uint16Array(new ArrayBuffer(filteredItems.length * 2)) + for (let i = 0, strLen = filteredItems.length; i < strLen; i++) { + buffer[i] = joined.charCodeAt(i) + } + const hashBuffer = await crypto.subtle.digest('SHA-256', buffer) + const hashArray = Array.from(new Uint8Array(hashBuffer)) + const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('') + const hash = hashHex.substring(0, 7) + return hash } getWebContentHash().then((hash) => { - console.log(hash) + console.log(hash) }) diff --git a/tools/docs/examples/mjs2csv.mjs b/tools/docs/examples/mjs2csv.mjs index bfa48b61a..0150429d7 100644 --- a/tools/docs/examples/mjs2csv.mjs +++ b/tools/docs/examples/mjs2csv.mjs @@ -1,48 +1,48 @@ class Js2csv { - constructor(data) { - this.data = data - } + constructor(data) { + this.data = data + } - getHeaderLine() { - const header = [] - for (const series in this.data.series) { - header.push(this.data.series[series].name) - } - return header.join(',') + '\n' - } + getHeaderLine() { + const header = [] + for (const series in this.data.series) { + header.push(this.data.series[series].name) + } + return header.join(',') + '\n' + } - getDataLine(i) { - const line = [] - for (const key in this.data.series) { - line.push(this.data.series[key].values[i]) - } - return line.join(',') + '\n' - } + getDataLine(i) { + const line = [] + for (const key in this.data.series) { + line.push(this.data.series[key].values[i]) + } + return line.join(',') + '\n' + } - getRecordLine(i) { - const line = this.data.records[i] - return line.join(',') + '\n' - } + getRecordLine(i) { + const line = this.data.records[i] + return line.join(',') + '\n' + } - convert() { - let csv = '' - csv += this.getHeaderLine() - if (this.data.series[0].values) { - for (let i = 0; i < this.data.series[0].values.length; i++) { - csv += this.getDataLine(i) - } - } else { - for (let i = 0; i < this.data.records.length; i++) { - csv += this.getRecordLine(i) - } - } - return csv - } + convert() { + let csv = '' + csv += this.getHeaderLine() + if (this.data.series[0].values) { + for (let i = 0; i < this.data.series[0].values.length; i++) { + csv += this.getDataLine(i) + } + } else { + for (let i = 0; i < this.data.records.length; i++) { + csv += this.getRecordLine(i) + } + } + return csv + } } const inputFilename = process.argv[2] import(inputFilename).then((module) => { - const js2csv = new Js2csv(module.data) - console.log(js2csv.convert()) + const js2csv = new Js2csv(module.data) + console.log(js2csv.convert()) }) diff --git a/tools/docs/examples/mjs2js.mjs b/tools/docs/examples/mjs2js.mjs index 5768fe8e7..09a1da1a7 100644 --- a/tools/docs/examples/mjs2js.mjs +++ b/tools/docs/examples/mjs2js.mjs @@ -4,7 +4,7 @@ const dataFileName = process.argv[4] const dataName = process.argv[5] import(inputFileName).then((module) => { - const test = ` + const test = ` const dataLoaded = import("${assetsPath}/assets/data/${dataFileName}.js"); const mdChartLoaded = import("${assetsPath}/assets/javascripts/mdchart.js"); @@ -22,5 +22,5 @@ Promise.all([dataLoaded, mdChartLoaded]).then((results) => { ]); }); ` - console.log(test) + console.log(test) }) diff --git a/tools/docs/examples/mjs2md.mjs b/tools/docs/examples/mjs2md.mjs index ab7d8c54d..3cceca0c7 100644 --- a/tools/docs/examples/mjs2md.mjs +++ b/tools/docs/examples/mjs2md.mjs @@ -1,23 +1,23 @@ class PresetsMock { - constructor() { - return new Proxy(this, { - get: (target, prop) => { - return function (obj) { - return `Vizzu.presets.${prop}(${JSON.stringify(obj, null, 2)})` - } - } - }) - } + constructor() { + return new Proxy(this, { + get: (target, prop) => { + return function (obj) { + return `Vizzu.presets.${prop}(${JSON.stringify(obj, null, 2)})` + } + } + }) + } } class VizzuMock { - constructor(title, description, data, assetsPath, dataFileName, dataName) { - this.description = '' - if (description) { - this.description = description - } - this.data = data - this.code = `--- + constructor(title, description, data, assetsPath, dataFileName, dataName) { + this.description = '' + if (description) { + this.description = description + } + this.data = data + this.code = `--- data_url: ${assetsPath}/assets/data/${dataFileName}.js --- @@ -59,64 +59,64 @@ ${this.description} \`\`\`javascript ` - this.end = ` + this.end = ` \`\`\` ` - } - - animate(chart, animOptions) { - const params = [] - const chartParams = [] - - if (chart.data && chart.data.filter) { - if (JSON.stringify(chart.data) !== JSON.stringify(this.data)) { - const fnCode = chart.data.filter.toString() - chartParams.push(`data: {filter: ${fnCode}}`) - } - } - if (chart.config) { - if (typeof chart.config === 'string' && chart.config.startsWith('Vizzu.')) { - chartParams.push('config: ' + chart.config) - } else { - chartParams.push('config: ' + JSON.stringify(chart.config, null, 2)) - } - } - if (chart.style) { - chartParams.push('style: ' + JSON.stringify(chart.style, null, 2)) - } - - params.push(`{${chartParams.join(', ')}}`) - - if (animOptions) { - if (typeof animOptions === 'object') { - params.push(`{${JSON.stringify(animOptions, null, 2)}}`) - } else { - params.push(`"${animOptions}"`) - } - } - - const args = params.join(', ') - const fullCode = `chart.animate(${args});\n\n` - this.code += fullCode - } - - feature(name, enabled) { - this.code += `chart.feature('${name}', ${enabled});\n\n` - } - - on(eventName, handler) { - this.code += `chart.on('${eventName}', ${handler});\n\n` - } - - static get presets() { - return new PresetsMock() - } - - getCode() { - return this.code + this.end - } + } + + animate(chart, animOptions) { + const params = [] + const chartParams = [] + + if (chart.data && chart.data.filter) { + if (JSON.stringify(chart.data) !== JSON.stringify(this.data)) { + const fnCode = chart.data.filter.toString() + chartParams.push(`data: {filter: ${fnCode}}`) + } + } + if (chart.config) { + if (typeof chart.config === 'string' && chart.config.startsWith('Vizzu.')) { + chartParams.push('config: ' + chart.config) + } else { + chartParams.push('config: ' + JSON.stringify(chart.config, null, 2)) + } + } + if (chart.style) { + chartParams.push('style: ' + JSON.stringify(chart.style, null, 2)) + } + + params.push(`{${chartParams.join(', ')}}`) + + if (animOptions) { + if (typeof animOptions === 'object') { + params.push(`{${JSON.stringify(animOptions, null, 2)}}`) + } else { + params.push(`"${animOptions}"`) + } + } + + const args = params.join(', ') + const fullCode = `chart.animate(${args});\n\n` + this.code += fullCode + } + + feature(name, enabled) { + this.code += `chart.feature('${name}', ${enabled});\n\n` + } + + on(eventName, handler) { + this.code += `chart.on('${eventName}', ${handler});\n\n` + } + + static get presets() { + return new PresetsMock() + } + + getCode() { + return this.code + this.end + } } const inputFileName = process.argv[2] @@ -128,15 +128,15 @@ let title = process.argv[7] const inputFileLoaded = import(inputFileName) const dataFileLoaded = import(dataFilePath + '/' + dataFileName + '.mjs') Promise.all([inputFileLoaded, dataFileLoaded]).then((results) => { - const module = results[0] - const description = module.description - if (module.title) { - title = module.title - } - const data = results[1][dataName] - const chart = new VizzuMock(title, description, data, assetsPath, dataFileName, dataName) - for (const testStep of module.default) { - testStep(chart) - } - console.log(chart.getCode()) + const module = results[0] + const description = module.description + if (module.title) { + title = module.title + } + const data = results[1][dataName] + const chart = new VizzuMock(title, description, data, assetsPath, dataFileName, dataName) + for (const testStep of module.default) { + testStep(chart) + } + console.log(chart.getCode()) }) diff --git a/tools/docs/mkdocs.yml b/tools/docs/mkdocs.yml index fcec7c01f..f377653be 100644 --- a/tools/docs/mkdocs.yml +++ b/tools/docs/mkdocs.yml @@ -12,135 +12,135 @@ edit_uri: https://github.com/vizzuhq/vizzu-lib/edit/main/docs use_directory_urls: true theme: - name: material - palette: - scheme: vizzu - font: - text: Roboto - code: Roboto Mono - logo: assets/logo-white.svg - favicon: assets/favicon.svg - custom_dir: ./overrides - features: - - toc.follow - - search.suggest - - search.highlight - - navigation.top - - navigation.footer - - content.code.copy - - content.action.edit + name: material + palette: + scheme: vizzu + font: + text: Roboto + code: Roboto Mono + logo: assets/logo-white.svg + favicon: assets/favicon.svg + custom_dir: ./overrides + features: + - toc.follow + - search.suggest + - search.highlight + - navigation.top + - navigation.footer + - content.code.copy + - content.action.edit extra_css: - - assets/stylesheets/vizzu.css - - assets/stylesheets/highlight.css - - assets/stylesheets/gallery.css - - assets/stylesheets/chart.css - - assets/stylesheets/style_reference.css + - assets/stylesheets/vizzu.css + - assets/stylesheets/highlight.css + - assets/stylesheets/gallery.css + - assets/stylesheets/chart.css + - assets/stylesheets/style_reference.css extra_javascript: - - assets/javascripts/extlinks.js - - //cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7/build/highlight.min.js - - //cdn.jsdelivr.net/npm/highlightjs-line-numbers.js@2.8.0/dist/highlightjs-line-numbers.min.js - - assets/javascripts/highlight.js + - assets/javascripts/extlinks.js + - //cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7/build/highlight.min.js + - //cdn.jsdelivr.net/npm/highlightjs-line-numbers.js@2.8.0/dist/highlightjs-line-numbers.min.js + - assets/javascripts/highlight.js extra: - version: - provider: mike - default: latest - social: - - icon: fontawesome/brands/slack - name: Vizzu on Slack - link: https://join.slack.com/t/vizzu-community/shared_invite/zt-w2nqhq44-2CCWL4o7qn2Ns1EFSf9kEg - - icon: fontawesome/brands/twitter - name: Vizzu on Twitter - link: https://twitter.com/VizzuHQ - - icon: fontawesome/brands/reddit - name: Vizzu on Reddit - link: https://www.reddit.com/user/VizzuHQ/?sort=top - - icon: fontawesome/brands/github - name: Vizzu on GitHub - link: https://github.com/vizzuhq/ + version: + provider: mike + default: latest + social: + - icon: fontawesome/brands/slack + name: Vizzu on Slack + link: https://join.slack.com/t/vizzu-community/shared_invite/zt-w2nqhq44-2CCWL4o7qn2Ns1EFSf9kEg + - icon: fontawesome/brands/twitter + name: Vizzu on Twitter + link: https://twitter.com/VizzuHQ + - icon: fontawesome/brands/reddit + name: Vizzu on Reddit + link: https://www.reddit.com/user/VizzuHQ/?sort=top + - icon: fontawesome/brands/github + name: Vizzu on GitHub + link: https://github.com/vizzuhq/ markdown_extensions: - - pymdownx.tasklist: - custom_checkbox: true - - mdx_truly_sane_lists - - attr_list - - md_in_html - - admonition - - pymdownx.highlight: - use_pygments: false - - pymdownx.details - - pymdownx.superfences + - pymdownx.tasklist: + custom_checkbox: true + - mdx_truly_sane_lists + - attr_list + - md_in_html + - admonition + - pymdownx.highlight: + use_pygments: false + - pymdownx.details + - pymdownx.superfences plugins: - - exclude: - glob: - - tutorial/assets/** - - mike: - version_selector: true - alias_type: symlink - canonical_version: latest - redirect_template: ./tools/docs/overrides/mike/redirect.html - - search - - section-index - - literate-nav: - implicit_index: true - - autorefs - - include-markdown - - placeholder - - gen-files: - scripts: - - pages/gen_pages.py - - examples/gen_examples.py - - reference/gen_reference.py - - style/gen_style_reference.py + - exclude: + glob: + - tutorial/assets/** + - mike: + version_selector: true + alias_type: symlink + canonical_version: latest + redirect_template: ./tools/docs/overrides/mike/redirect.html + - search + - section-index + - literate-nav: + implicit_index: true + - autorefs + - include-markdown + - placeholder + - gen-files: + scripts: + - pages/gen_pages.py + - examples/gen_examples.py + - reference/gen_reference.py + - style/gen_style_reference.py nav: - - Home: index.md - - installation.md - - Tutorial: - - tutorial/index.md - - tutorial/initialization.md - - tutorial/data.md - - Axes, title, tooltip: tutorial/axes_title_tooltip.md - - Aggregating data: tutorial/aggregating_data.md - - tutorial/geometry.md - - Channels & legend: tutorial/channels_legend.md - - Group/stack: tutorial/group_stack.md - - tutorial/stacking_explanation.md - - tutorial/sorting.md - - Align & range: tutorial/align_range.md - - Changing dimensions: tutorial/changing_dimensions.md - - Orientation, split & polar: tutorial/orientation_split_polar.md - - Filtering & adding new records: tutorial/filter_add_new_records.md - - Without coordinates & noop channel: tutorial/without_coordinates_noop_channel.md - - Color palette & fonts: tutorial/color_palette_fonts.md - - Chart layout: tutorial/chart_layout.md - - Animation options: tutorial/animation_options.md - - Animation control & keyframes: tutorial/animation_control_keyframes.md - - tutorial/events.md - - Shorthands & Store: tutorial/shorthands_store.md - - Chart presets: tutorial/chart_presets.md - - tutorial/style.md - - tutorial/writing_plugins.md - - Examples: - - examples/index.md - - Preset charts: examples/presets/ - - Analytical operations: - - examples/analytical_operations/index.md - - Drill down: examples/analytical_operations/drilldown/ - - Sum: examples/analytical_operations/sum/ - - Compare: examples/analytical_operations/compare/ - - Split: examples/analytical_operations/split/ - - Stretch to proportion: examples/analytical_operations/stretch_to_proportion/ - - Distribute: examples/analytical_operations/distribute/ - - Filter: examples/analytical_operations/filter/ - - Change dimension: examples/analytical_operations/change_dimension/ - - Miscellaneous: examples/analytical_operations/misc/ - - Static charts: examples/static/ - - Showcases: showcases/ - - Code reference: - - reference/README.md - - Vizzu: reference/modules.md - - License: LICENSE.md + - Home: index.md + - installation.md + - Tutorial: + - tutorial/index.md + - tutorial/initialization.md + - tutorial/data.md + - Axes, title, tooltip: tutorial/axes_title_tooltip.md + - Aggregating data: tutorial/aggregating_data.md + - tutorial/geometry.md + - Channels & legend: tutorial/channels_legend.md + - Group/stack: tutorial/group_stack.md + - tutorial/stacking_explanation.md + - tutorial/sorting.md + - Align & range: tutorial/align_range.md + - Changing dimensions: tutorial/changing_dimensions.md + - Orientation, split & polar: tutorial/orientation_split_polar.md + - Filtering & adding new records: tutorial/filter_add_new_records.md + - Without coordinates & noop channel: tutorial/without_coordinates_noop_channel.md + - Color palette & fonts: tutorial/color_palette_fonts.md + - Chart layout: tutorial/chart_layout.md + - Animation options: tutorial/animation_options.md + - Animation control & keyframes: tutorial/animation_control_keyframes.md + - tutorial/events.md + - Shorthands & Store: tutorial/shorthands_store.md + - Chart presets: tutorial/chart_presets.md + - tutorial/style.md + - tutorial/writing_plugins.md + - Examples: + - examples/index.md + - Preset charts: examples/presets/ + - Analytical operations: + - examples/analytical_operations/index.md + - Drill down: examples/analytical_operations/drilldown/ + - Sum: examples/analytical_operations/sum/ + - Compare: examples/analytical_operations/compare/ + - Split: examples/analytical_operations/split/ + - Stretch to proportion: examples/analytical_operations/stretch_to_proportion/ + - Distribute: examples/analytical_operations/distribute/ + - Filter: examples/analytical_operations/filter/ + - Change dimension: examples/analytical_operations/change_dimension/ + - Miscellaneous: examples/analytical_operations/misc/ + - Static charts: examples/static/ + - Showcases: showcases/ + - Code reference: + - reference/README.md + - Vizzu: reference/modules.md + - License: LICENSE.md diff --git a/tools/docs/overrides/main.html b/tools/docs/overrides/main.html index c1a5e0189..393dc968e 100644 --- a/tools/docs/overrides/main.html +++ b/tools/docs/overrides/main.html @@ -4,8 +4,8 @@ @@ -15,8 +15,8 @@ @@ -24,14 +24,14 @@ {% endblock %} {% block outdated %} You're not viewing the latest version. - Click here to go to latest. + Click here to go to latest. {% endblock %} {% block content %} {% if page.meta.data_url %} - {% include ".icons/material/database.svg" %} + {% include ".icons/material/database.svg" %} {% endif %} {% if page.meta.csv_url %} - {% include ".icons/fontawesome/solid/file-csv.svg" %} + {% include ".icons/fontawesome/solid/file-csv.svg" %} {% endif %}{{ super() }} {% endblock content %} diff --git a/tools/docs/overrides/mike/redirect.html b/tools/docs/overrides/mike/redirect.html index c032fbd7a..c47ce475c 100644 --- a/tools/docs/overrides/mike/redirect.html +++ b/tools/docs/overrides/mike/redirect.html @@ -1,38 +1,38 @@ - - - - - - - - - - - - - - - - - - - Redirecting - - - - - Redirecting to {{href}}... - + + + + + + + + + + + + + + + + + + + Redirecting + + + + + Redirecting to {{href}}... + diff --git a/tools/docs/reference/gen_reference.cjs b/tools/docs/reference/gen_reference.cjs index 09107e2da..05c0451e2 100644 --- a/tools/docs/reference/gen_reference.cjs +++ b/tools/docs/reference/gen_reference.cjs @@ -8,32 +8,32 @@ const genPath = path.join(mkdocsPath, 'reference') const srcPath = path.join(repoPath, 'src', 'apps', 'weblib', 'ts-api') async function reference() { - const app = await TypeDoc.Application.bootstrapWithPlugins( - { - plugin: ['typedoc-plugin-markdown', 'typedoc-plugin-rename-defaults'], - entryPoints: [ - path.join(srcPath, '*.ts'), - path.join(srcPath, 'module', '*.ts'), - path.join(srcPath, 'types', '*.ts') - ], - entryPointStrategy: 'expand', - tsconfig: path.join(srcPath, 'tsconfig.json'), - name: 'Vizzu', - hideInPageTOC: true, - disableSources: true, - excludeNotDocumented: true, - excludePrivate: true, - readme: path.join(repoPath, 'docs', 'reference', 'index.md') - }, - [new TypeDoc.TSConfigReader()] - ) + const app = await TypeDoc.Application.bootstrapWithPlugins( + { + plugin: ['typedoc-plugin-markdown', 'typedoc-plugin-rename-defaults'], + entryPoints: [ + path.join(srcPath, '*.ts'), + path.join(srcPath, 'module', '*.ts'), + path.join(srcPath, 'types', '*.ts') + ], + entryPointStrategy: 'expand', + tsconfig: path.join(srcPath, 'tsconfig.json'), + name: 'Vizzu', + hideInPageTOC: true, + disableSources: true, + excludeNotDocumented: true, + excludePrivate: true, + readme: path.join(repoPath, 'docs', 'reference', 'index.md') + }, + [new TypeDoc.TSConfigReader()] + ) - const project = await app.convert() + const project = await app.convert() - if (project) { - const outputDir = path.join(genPath, 'tmp') - return app.generateDocs(project, outputDir) - } + if (project) { + const outputDir = path.join(genPath, 'tmp') + return app.generateDocs(project, outputDir) + } } reference() diff --git a/tools/docs/style/gen_style_reference.mjs b/tools/docs/style/gen_style_reference.mjs index 489b4f773..2d447a890 100644 --- a/tools/docs/style/gen_style_reference.mjs +++ b/tools/docs/style/gen_style_reference.mjs @@ -5,64 +5,66 @@ import express from 'express' import { fileURLToPath } from 'url' async function createServer(workspacePath) { - return new Promise((resolve, reject) => { - const app = express() - app.use(serveStatic(workspacePath)) - app.use(express.json()) - const server = app.listen(0, 'localhost', () => { - return resolve(server) - }) - }) + return new Promise((resolve, reject) => { + const app = express() + app.use(serveStatic(workspacePath)) + app.use(express.json()) + const server = app.listen(0, 'localhost', () => { + return resolve(server) + }) + }) } async function createStyleReference(serverPort) { - const browser = await puppeteer.launch({ - headless: 'new', - args: ['--no-sandbox', '--disable-web-security'] - }) - const page = await browser.newPage() + const browser = await puppeteer.launch({ + headless: 'new', + args: ['--no-sandbox', '--disable-web-security'] + }) + const page = await browser.newPage() - const style = await page.evaluate(async (serverPort) => { - const VizzuModule = await import(`http://127.0.0.1:${serverPort}/docs/assets/dist/vizzu.min.js`) - const Vizzu = VizzuModule.default - const div = document.createElement('div') - const chart = await new Vizzu(div).initializing - const style = await chart.getComputedStyle() - return JSON.stringify(style) - }, serverPort) + const style = await page.evaluate(async (serverPort) => { + const VizzuModule = await import( + `http://127.0.0.1:${serverPort}/docs/assets/dist/vizzu.min.js` + ) + const Vizzu = VizzuModule.default + const div = document.createElement('div') + const chart = await new Vizzu(div).initializing + const style = await chart.getComputedStyle() + return JSON.stringify(style) + }, serverPort) - let content = '' - content += `

` - content += appendContent(JSON.parse(style), 0) - content += `` - content += `` - console.log(content) + let content = '' + content += `

` + content += appendContent(JSON.parse(style), 0) + content += `` + content += `` + console.log(content) - browser.close() + browser.close() } function appendContent(obj, level) { - const tab = ' ' - let content = '' - if (level) { - content += `
` - } - for (const [key, value] of Object.entries(obj)) { - if (typeof value === 'object') { - content += `

` - content += appendContent(value, level + 1) - } else { - content += `

${tab.repeat( - level - )}${key}: ${value}

` - } - } - if (level) { - content += `
` - } - return content + const tab = ' ' + let content = '' + if (level) { + content += `
` + } + for (const [key, value] of Object.entries(obj)) { + if (typeof value === 'object') { + content += `

` + content += appendContent(value, level + 1) + } else { + content += `

${tab.repeat( + level + )}${key}: ${value}

` + } + } + if (level) { + content += `
` + } + return content } const __filename = fileURLToPath(import.meta.url) From dc599f493aaab922a84fffc2bc3a987b69fe36c2 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 12:35:37 +0100 Subject: [PATCH 123/180] Using shared vizzu eslint config --- .eslintrc.cjs | 32 +- package-lock.json | 17613 ++++++++++++++++++++++---------------------- package.json | 5 +- 3 files changed, 8826 insertions(+), 8824 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index f20d9e195..55b31d475 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,31 +1,25 @@ module.exports = { - env: { - browser: true, - jest: true - }, - extends: ['standard', 'prettier'], - root: true, - parserOptions: { - ecmaVersion: 'latest' - }, overrides: [ - { - files: ['test/integration/test_cases/**', 'test/integration/test_data/**'], - rules: { - camelcase: 'off' - } - }, { files: ['*.ts', '*.tsx'], - extends: ['standard', 'prettier', 'plugin:@typescript-eslint/recommended'], - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], + extends: ['@vizzu/eslint-config/typescript'], rules: { 'no-use-before-define': 'off', '@typescript-eslint/no-use-before-define': 'error', '@typescript-eslint/explicit-function-return-type': ['error'] } + }, + { + files: ['*.js', '*.mjs', '*.cjs'], + extends: ['@vizzu/eslint-config/standard'] + }, + { + files: ['test/integration/test_cases/**', 'test/integration/test_data/**'], + extends: ['@vizzu/eslint-config/standard'], + rules: { + camelcase: 'off' + } } ], - ignorePatterns: ['**/dist/**', '!.puppeteerrc.cjs'] + ignorePatterns: ['**/dist/**'] } diff --git a/package-lock.json b/package-lock.json index ea54a7d8b..255fad620 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8805 +1,8812 @@ { - "name": "vizzu", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "vizzu", - "license": "Apache-2.0", - "dependencies": { - "type-fest": "^4.6.0" - }, - "devDependencies": { - "@rollup/plugin-terser": "^0.4.3", - "@tsconfig/strictest": "^2.0.2", - "@typescript-eslint/eslint-plugin": "^6.7.5", - "@typescript-eslint/parser": "^6.7.5", - "@vizzu/prettier-config": "^0.1.0", - "aggregate-error": "^5.0.0", - "ajv": "8.12.0", - "axios": "^1.5.1", - "check-dts": "^0.7.2", - "colors": "^1.4.0", - "eslint": "^8.49.0", - "eslint-config-prettier": "^9.0.0", - "eslint-config-standard": "^17.1.0", - "express": "^4.18.2", - "jest": "^29.7.0", - "jest-extended": "^4.0.1", - "js-yaml": "^4.1.0", - "node-fetch": "<3.0.0", - "npm-run-all": "^4.1.5", - "p-limit": "^4.0.0", - "pngjs": "^7.0.0", - "prettier": "^3.0.3", - "puppeteer": "^21.3.6", - "puppeteer-extra": "^3.3.6", - "puppeteer-extra-plugin-user-preferences": "^2.4.1", - "rollup": "^3.29.2", - "serve-static": "^1.15.0", - "strip-color": "^0.1.0", - "typedoc": "~0.25.2", - "typedoc-plugin-markdown": "~3.16.0", - "typedoc-plugin-rename-defaults": "~0.6.4", - "typescript": "^5.2.2", - "yaml": "^2.3.2", - "yargs": "^17.7.2" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", - "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", - "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.4", - "@babel/generator": "^7.23.4", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.4", - "@babel/types": "^7.23.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@puppeteer/browsers": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.8.0.tgz", - "integrity": "sha512-TkRHIV6k2D8OlUe8RtG+5jgOF/H98Myx0M6AOafC8DdNVOFiBSFa5cpRDtpm8LXOa9sVwe0+e6Q3FC56X/DZfg==", - "dev": true, - "dependencies": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "progress": "2.0.3", - "proxy-agent": "6.3.1", - "tar-fs": "3.0.4", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=16.3.0" - } - }, - "node_modules/@rollup/plugin-terser": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", - "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", - "dev": true, - "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true - }, - "node_modules/@tsconfig/strictest": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/strictest/-/strictest-2.0.2.tgz", - "integrity": "sha512-jt4jIsWKvUvuY6adJnQJlb/UR7DdjC8CjHI/OaSQruj2yX9/K6+KOvDt/vD6udqos/FUk5Op66CvYT7TBLYO5Q==", - "dev": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", - "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dev": true, - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "peer": true - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", - "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.31", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", - "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", - "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/type-utils": "6.11.0", - "@typescript-eslint/utils": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", - "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", - "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", - "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.11.0", - "@typescript-eslint/utils": "6.11.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", - "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", - "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/visitor-keys": "6.11.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", - "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.11.0", - "@typescript-eslint/types": "6.11.0", - "@typescript-eslint/typescript-estree": "6.11.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", - "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.11.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vizzu/prettier-config": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@vizzu/prettier-config/-/prettier-config-0.1.0.tgz", - "integrity": "sha512-q+wW9v8u7tr+DDZ01EeHX2FIP255RF05o9WA+E+K6xweD+2aLeJae5/P4OcPJa3gqc168/6+8ZNfpbWS1kpgtw==", - "dev": true, - "peerDependencies": { - "prettier": "^3.1.0" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/aggregate-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", - "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", - "dev": true, - "dependencies": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-sequence-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", - "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", - "dev": true - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dev": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", - "dev": true - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/basic-ftp": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz", - "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "peer": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001563", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", - "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/check-dts": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/check-dts/-/check-dts-0.7.2.tgz", - "integrity": "sha512-ZflsEhv7SXlgNECrNIw1WmMJZ1787KtS62anWknLPI+k9g9OY2eA/UfT+Tsb0i0eWLUZHtFfznrNtGlQJrGaKw==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.12", - "nanospinner": "^1.1.0", - "picocolors": "^1.0.0", - "vfile-location": "^4.1.0" - }, - "bin": { - "check-dts": "bin.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "typescript": ">=4.0.0" - } - }, - "node_modules/chromium-bidi": { - "version": "0.4.33", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.33.tgz", - "integrity": "sha512-IxoFM5WGQOIAd95qrSXzJUv4eXIrh+RvU3rwwqIiwYuvfE7U/Llj4fejbsJnjJMUYCuGtVQsY2gv7oGl4aTNSQ==", - "dev": true, - "dependencies": { - "mitt": "3.0.1", - "urlpattern-polyfill": "9.0.0" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", - "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone-deep": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==", - "dev": true, - "dependencies": { - "for-own": "^0.1.3", - "is-plain-object": "^2.0.1", - "kind-of": "^3.0.2", - "lazy-cache": "^1.0.3", - "shallow-clone": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz", - "integrity": "sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "dev": true, - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.1203626", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1203626.tgz", - "integrity": "sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g==", - "dev": true - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.588", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz", - "integrity": "sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "peer": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-config-standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", - "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", - "eslint-plugin-promise": "^6.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "peer": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "peer": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-es-x": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.3.0.tgz", - "integrity": "sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==", - "dev": true, - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.6.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "eslint": ">=8" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", - "dev": true, - "peer": true, - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-n": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz", - "integrity": "sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==", - "dev": true, - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "builtins": "^5.0.1", - "eslint-plugin-es-x": "^7.1.0", - "get-tsconfig": "^4.7.0", - "ignore": "^5.2.4", - "is-builtin-module": "^3.2.1", - "is-core-module": "^2.12.1", - "minimatch": "^3.1.2", - "resolve": "^1.22.2", - "semver": "^7.5.3" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-promise": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", - "dev": true, - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", - "dev": true, - "peer": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/get-uri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz", - "integrity": "sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==", - "dev": true, - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.0", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", - "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", - "dev": true, - "peer": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-changed-files/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-circus/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-extended": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-4.0.2.tgz", - "integrity": "sha512-FH7aaPgtGYHc9mRjriS0ZEHYM5/W69tLrFTIdzm+yJgeoCmmrSB/luSfMSqWP9O29QWHPEmJ4qmU6EwsZideog==", - "dev": true, - "dependencies": { - "jest-diff": "^29.0.0", - "jest-get-type": "^29.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "jest": ">=27.2.5" - }, - "peerDependenciesMeta": { - "jest": { - "optional": true - } - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runner/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-deep": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", - "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true - }, - "node_modules/mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", - "dev": true, - "dependencies": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object/node_modules/for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanospinner": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", - "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", - "dev": true, - "dependencies": { - "picocolors": "^1.0.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/npm-run-all/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/npm-run-all/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npm-run-all/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "peer": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pac-proxy-agent": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", - "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", - "dev": true, - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "pac-resolver": "^7.0.0", - "socks-proxy-agent": "^8.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", - "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", - "dev": true, - "dependencies": { - "degenerator": "^5.0.0", - "ip": "^1.1.8", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pngjs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", - "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", - "dev": true, - "engines": { - "node": ">=14.19.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-agent": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", - "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.1", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/puppeteer": { - "version": "21.5.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.5.2.tgz", - "integrity": "sha512-BaAGJOq8Fl6/cck6obmwaNLksuY0Bg/lIahCLhJPGXBFUD2mCffypa4A592MaWnDcye7eaHmSK9yot0pxctY8A==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@puppeteer/browsers": "1.8.0", - "cosmiconfig": "8.3.6", - "puppeteer-core": "21.5.2" - }, - "engines": { - "node": ">=16.13.2" - } - }, - "node_modules/puppeteer-core": { - "version": "21.5.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.5.2.tgz", - "integrity": "sha512-v4T0cWnujSKs+iEfmb8ccd7u4/x8oblEyKqplqKnJ582Kw8PewYAWvkH4qUWhitN3O2q9RF7dzkvjyK5HbzjLA==", - "dev": true, - "dependencies": { - "@puppeteer/browsers": "1.8.0", - "chromium-bidi": "0.4.33", - "cross-fetch": "4.0.0", - "debug": "4.3.4", - "devtools-protocol": "0.0.1203626", - "ws": "8.14.2" - }, - "engines": { - "node": ">=16.13.2" - } - }, - "node_modules/puppeteer-extra": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.3.6.tgz", - "integrity": "sha512-rsLBE/6mMxAjlLd06LuGacrukP2bqbzKCLzV1vrhHFavqQE/taQ2UXv3H5P0Ls7nsrASa+6x3bDbXHpqMwq+7A==", - "dev": true, - "dependencies": { - "@types/debug": "^4.1.0", - "debug": "^4.1.1", - "deepmerge": "^4.2.2" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "@types/puppeteer": "*", - "puppeteer": "*", - "puppeteer-core": "*" - }, - "peerDependenciesMeta": { - "@types/puppeteer": { - "optional": true - }, - "puppeteer": { - "optional": true - }, - "puppeteer-core": { - "optional": true - } - } - }, - "node_modules/puppeteer-extra-plugin": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin/-/puppeteer-extra-plugin-3.2.3.tgz", - "integrity": "sha512-6RNy0e6pH8vaS3akPIKGg28xcryKscczt4wIl0ePciZENGE2yoaQJNd17UiEbdmh5/6WW6dPcfRWT9lxBwCi2Q==", - "dev": true, - "dependencies": { - "@types/debug": "^4.1.0", - "debug": "^4.1.1", - "merge-deep": "^3.0.1" - }, - "engines": { - "node": ">=9.11.2" - }, - "peerDependencies": { - "playwright-extra": "*", - "puppeteer-extra": "*" - }, - "peerDependenciesMeta": { - "playwright-extra": { - "optional": true - }, - "puppeteer-extra": { - "optional": true - } - } - }, - "node_modules/puppeteer-extra-plugin-user-data-dir": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-data-dir/-/puppeteer-extra-plugin-user-data-dir-2.4.1.tgz", - "integrity": "sha512-kH1GnCcqEDoBXO7epAse4TBPJh9tEpVEK/vkedKfjOVOhZAvLkHGc9swMs5ChrJbRnf8Hdpug6TJlEuimXNQ+g==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^10.0.0", - "puppeteer-extra-plugin": "^3.2.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "playwright-extra": "*", - "puppeteer-extra": "*" - }, - "peerDependenciesMeta": { - "playwright-extra": { - "optional": true - }, - "puppeteer-extra": { - "optional": true - } - } - }, - "node_modules/puppeteer-extra-plugin-user-data-dir/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/puppeteer-extra-plugin-user-data-dir/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/puppeteer-extra-plugin-user-data-dir/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/puppeteer-extra-plugin-user-preferences": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-preferences/-/puppeteer-extra-plugin-user-preferences-2.4.1.tgz", - "integrity": "sha512-i1oAZxRbc1bk8MZufKCruCEC3CCafO9RKMkkodZltI4OqibLFXF3tj6HZ4LZ9C5vCXZjYcDWazgtY69mnmrQ9A==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "deepmerge": "^4.2.2", - "puppeteer-extra-plugin": "^3.2.3", - "puppeteer-extra-plugin-user-data-dir": "^2.4.1" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "playwright-extra": "*", - "puppeteer-extra": "*" - }, - "peerDependenciesMeta": { - "playwright-extra": { - "optional": true - }, - "puppeteer-extra": { - "optional": true - } - } - }, - "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "peer": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.1", - "kind-of": "^2.0.1", - "lazy-cache": "^0.2.3", - "mixin-object": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shallow-clone/node_modules/kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==", - "dev": true, - "dependencies": { - "is-buffer": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shallow-clone/node_modules/lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shiki": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz", - "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==", - "dev": true, - "dependencies": { - "ansi-sequence-parser": "^1.1.0", - "jsonc-parser": "^3.2.0", - "vscode-oniguruma": "^1.7.0", - "vscode-textmate": "^8.0.0" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/smob": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", - "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", - "dev": true - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/socks/node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/streamx": { - "version": "2.15.5", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", - "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", - "dev": true, - "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", - "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-color": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz", - "integrity": "sha512-p9LsUieSjWNNAxVCXLeilaDlmuUOrDS5/dF9znM1nZc7EGX5+zEFC0bEevsNIaldjlks+2jns5Siz6F9iK6jwA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar-fs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", - "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", - "dev": true, - "dependencies": { - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - } - }, - "node_modules/tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", - "dev": true, - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", - "dev": true, - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "peer": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.1.tgz", - "integrity": "sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q==", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedoc": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.3.tgz", - "integrity": "sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw==", - "dev": true, - "dependencies": { - "lunr": "^2.3.9", - "marked": "^4.3.0", - "minimatch": "^9.0.3", - "shiki": "^0.14.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 16" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" - } - }, - "node_modules/typedoc-plugin-markdown": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.16.0.tgz", - "integrity": "sha512-eeiC78fDNGFwemPIHiwRC+mEC7W5jwt3fceUev2gJ2nFnXpVHo8eRrpC9BLWZDee6ehnz/sPmNjizbXwpfaTBw==", - "dev": true, - "dependencies": { - "handlebars": "^4.7.7" - }, - "peerDependencies": { - "typedoc": ">=0.24.0" - } - }, - "node_modules/typedoc-plugin-rename-defaults": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/typedoc-plugin-rename-defaults/-/typedoc-plugin-rename-defaults-0.6.7.tgz", - "integrity": "sha512-b+j0qQCdE69IUP6ZJgS6zonG59AcaKM8B8zdNlj1jnv6XefDLkIWdFxXfS3KhFOpVzW22pNCfdOCCym9ryS3wA==", - "dev": true, - "peerDependencies": { - "typedoc": "0.22.x || 0.23.x || 0.24.x || 0.25.x" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urlpattern-polyfill": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", - "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", - "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", - "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", - "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", - "dev": true - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } + "name": "vizzu", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vizzu", + "license": "Apache-2.0", + "dependencies": { + "type-fest": "^4.6.0" + }, + "devDependencies": { + "@rollup/plugin-terser": "^0.4.3", + "@tsconfig/strictest": "^2.0.2", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", + "@vizzu/eslint-config": "^0.2.0", + "@vizzu/prettier-config": "^0.1.0", + "aggregate-error": "^5.0.0", + "ajv": "8.12.0", + "axios": "^1.5.1", + "check-dts": "^0.7.2", + "colors": "^1.4.0", + "eslint": "^8.49.0", + "eslint-config-prettier": "^9.0.0", + "eslint-config-standard": "^17.1.0", + "express": "^4.18.2", + "jest": "^29.7.0", + "jest-extended": "^4.0.1", + "js-yaml": "^4.1.0", + "node-fetch": "<3.0.0", + "npm-run-all": "^4.1.5", + "p-limit": "^4.0.0", + "pngjs": "^7.0.0", + "prettier": "^3.0.3", + "puppeteer": "^21.3.6", + "puppeteer-extra": "^3.3.6", + "puppeteer-extra-plugin-user-preferences": "^2.4.1", + "rollup": "^3.29.2", + "serve-static": "^1.15.0", + "strip-color": "^0.1.0", + "typedoc": "~0.25.2", + "typedoc-plugin-markdown": "~3.16.0", + "typedoc-plugin-rename-defaults": "~0.6.4", + "typescript": "^5.2.2", + "yaml": "^2.3.2", + "yargs": "^17.7.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", + "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", + "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", + "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", + "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.4", + "@babel/generator": "^7.23.4", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.4", + "@babel/types": "^7.23.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/@eslint/js": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@puppeteer/browsers": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.8.0.tgz", + "integrity": "sha512-TkRHIV6k2D8OlUe8RtG+5jgOF/H98Myx0M6AOafC8DdNVOFiBSFa5cpRDtpm8LXOa9sVwe0+e6Q3FC56X/DZfg==", + "dev": true, + "dependencies": { + "debug": "4.3.4", + "extract-zip": "2.0.1", + "progress": "2.0.3", + "proxy-agent": "6.3.1", + "tar-fs": "3.0.4", + "unbzip2-stream": "1.4.3", + "yargs": "17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=16.3.0" + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true + }, + "node_modules/@tsconfig/strictest": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/strictest/-/strictest-2.0.2.tgz", + "integrity": "sha512-jt4jIsWKvUvuY6adJnQJlb/UR7DdjC8CjHI/OaSQruj2yX9/K6+KOvDt/vD6udqos/FUk5Op66CvYT7TBLYO5Q==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "peer": true + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz", + "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/semver": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", + "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.31", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.31.tgz", + "integrity": "sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", + "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/type-utils": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", + "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", + "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", + "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vizzu/eslint-config": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@vizzu/eslint-config/-/eslint-config-0.2.0.tgz", + "integrity": "sha512-pp9mVyl7gYuDcX75pHvE3/UUUSZmQ3Hfs1r9FFV/yreSJsCpDWvgyJ83B+HazLclStxTCjy5gRwlGO3iJ2ONqA==", + "dev": true + }, + "node_modules/@vizzu/prettier-config": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@vizzu/prettier-config/-/prettier-config-0.1.0.tgz", + "integrity": "sha512-q+wW9v8u7tr+DDZ01EeHX2FIP255RF05o9WA+E+K6xweD+2aLeJae5/P4OcPJa3gqc168/6+8ZNfpbWS1kpgtw==", + "dev": true, + "peerDependencies": { + "prettier": "^3.1.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "dev": true, + "dependencies": { + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", + "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", + "dev": true + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", + "dev": true + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/basic-ftp": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz", + "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "peer": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/check-dts": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/check-dts/-/check-dts-0.7.2.tgz", + "integrity": "sha512-ZflsEhv7SXlgNECrNIw1WmMJZ1787KtS62anWknLPI+k9g9OY2eA/UfT+Tsb0i0eWLUZHtFfznrNtGlQJrGaKw==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.12", + "nanospinner": "^1.1.0", + "picocolors": "^1.0.0", + "vfile-location": "^4.1.0" + }, + "bin": { + "check-dts": "bin.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, + "node_modules/chromium-bidi": { + "version": "0.4.33", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.33.tgz", + "integrity": "sha512-IxoFM5WGQOIAd95qrSXzJUv4eXIrh+RvU3rwwqIiwYuvfE7U/Llj4fejbsJnjJMUYCuGtVQsY2gv7oGl4aTNSQ==", + "dev": true, + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "9.0.0" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", + "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==", + "dev": true, + "dependencies": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz", + "integrity": "sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.1203626", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1203626.tgz", + "integrity": "sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.588", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz", + "integrity": "sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "peer": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint": { + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.54.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.3.0.tgz", + "integrity": "sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dev": true, + "peer": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "peer": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-n": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz", + "integrity": "sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==", + "dev": true, + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "dev": true, + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "peer": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/get-uri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz", + "integrity": "sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==", + "dev": true, + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.0", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "peer": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", + "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-circus/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-extended": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-4.0.2.tgz", + "integrity": "sha512-FH7aaPgtGYHc9mRjriS0ZEHYM5/W69tLrFTIdzm+yJgeoCmmrSB/luSfMSqWP9O29QWHPEmJ4qmU6EwsZideog==", + "dev": true, + "dependencies": { + "jest-diff": "^29.0.0", + "jest-get-type": "^29.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "jest": ">=27.2.5" + }, + "peerDependenciesMeta": { + "jest": { + "optional": true + } + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runner/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge-deep": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", + "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, + "node_modules/mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", + "dev": true, + "dependencies": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/node_modules/for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanospinner": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nanospinner/-/nanospinner-1.1.0.tgz", + "integrity": "sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "peer": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", + "dev": true, + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "pac-resolver": "^7.0.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", + "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", + "dev": true, + "dependencies": { + "degenerator": "^5.0.0", + "ip": "^1.1.8", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pngjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", + "dev": true, + "engines": { + "node": ">=14.19.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-agent": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", + "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "21.5.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-21.5.2.tgz", + "integrity": "sha512-BaAGJOq8Fl6/cck6obmwaNLksuY0Bg/lIahCLhJPGXBFUD2mCffypa4A592MaWnDcye7eaHmSK9yot0pxctY8A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@puppeteer/browsers": "1.8.0", + "cosmiconfig": "8.3.6", + "puppeteer-core": "21.5.2" + }, + "engines": { + "node": ">=16.13.2" + } + }, + "node_modules/puppeteer-core": { + "version": "21.5.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.5.2.tgz", + "integrity": "sha512-v4T0cWnujSKs+iEfmb8ccd7u4/x8oblEyKqplqKnJ582Kw8PewYAWvkH4qUWhitN3O2q9RF7dzkvjyK5HbzjLA==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "1.8.0", + "chromium-bidi": "0.4.33", + "cross-fetch": "4.0.0", + "debug": "4.3.4", + "devtools-protocol": "0.0.1203626", + "ws": "8.14.2" + }, + "engines": { + "node": ">=16.13.2" + } + }, + "node_modules/puppeteer-extra": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.3.6.tgz", + "integrity": "sha512-rsLBE/6mMxAjlLd06LuGacrukP2bqbzKCLzV1vrhHFavqQE/taQ2UXv3H5P0Ls7nsrASa+6x3bDbXHpqMwq+7A==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.0", + "debug": "^4.1.1", + "deepmerge": "^4.2.2" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "@types/puppeteer": "*", + "puppeteer": "*", + "puppeteer-core": "*" + }, + "peerDependenciesMeta": { + "@types/puppeteer": { + "optional": true + }, + "puppeteer": { + "optional": true + }, + "puppeteer-core": { + "optional": true + } + } + }, + "node_modules/puppeteer-extra-plugin": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin/-/puppeteer-extra-plugin-3.2.3.tgz", + "integrity": "sha512-6RNy0e6pH8vaS3akPIKGg28xcryKscczt4wIl0ePciZENGE2yoaQJNd17UiEbdmh5/6WW6dPcfRWT9lxBwCi2Q==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.0", + "debug": "^4.1.1", + "merge-deep": "^3.0.1" + }, + "engines": { + "node": ">=9.11.2" + }, + "peerDependencies": { + "playwright-extra": "*", + "puppeteer-extra": "*" + }, + "peerDependenciesMeta": { + "playwright-extra": { + "optional": true + }, + "puppeteer-extra": { + "optional": true + } + } + }, + "node_modules/puppeteer-extra-plugin-user-data-dir": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-data-dir/-/puppeteer-extra-plugin-user-data-dir-2.4.1.tgz", + "integrity": "sha512-kH1GnCcqEDoBXO7epAse4TBPJh9tEpVEK/vkedKfjOVOhZAvLkHGc9swMs5ChrJbRnf8Hdpug6TJlEuimXNQ+g==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^10.0.0", + "puppeteer-extra-plugin": "^3.2.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "playwright-extra": "*", + "puppeteer-extra": "*" + }, + "peerDependenciesMeta": { + "playwright-extra": { + "optional": true + }, + "puppeteer-extra": { + "optional": true + } + } + }, + "node_modules/puppeteer-extra-plugin-user-data-dir/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/puppeteer-extra-plugin-user-data-dir/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/puppeteer-extra-plugin-user-data-dir/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/puppeteer-extra-plugin-user-preferences": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-preferences/-/puppeteer-extra-plugin-user-preferences-2.4.1.tgz", + "integrity": "sha512-i1oAZxRbc1bk8MZufKCruCEC3CCafO9RKMkkodZltI4OqibLFXF3tj6HZ4LZ9C5vCXZjYcDWazgtY69mnmrQ9A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "deepmerge": "^4.2.2", + "puppeteer-extra-plugin": "^3.2.3", + "puppeteer-extra-plugin-user-data-dir": "^2.4.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "playwright-extra": "*", + "puppeteer-extra": "*" + }, + "peerDependenciesMeta": { + "playwright-extra": { + "optional": true + }, + "puppeteer-extra": { + "optional": true + } + } + }, + "node_modules/pure-rand": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==", + "dev": true, + "dependencies": { + "is-buffer": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shiki": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz", + "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==", + "dev": true, + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/smob": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", + "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", + "dev": true + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks/node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamx": { + "version": "2.15.5", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", + "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", + "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-color": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz", + "integrity": "sha512-p9LsUieSjWNNAxVCXLeilaDlmuUOrDS5/dF9znM1nZc7EGX5+zEFC0bEevsNIaldjlks+2jns5Siz6F9iK6jwA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar-fs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "dev": true, + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "peer": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.1.tgz", + "integrity": "sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedoc": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.3.tgz", + "integrity": "sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw==", + "dev": true, + "dependencies": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.3", + "shiki": "^0.14.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 16" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" + } + }, + "node_modules/typedoc-plugin-markdown": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.16.0.tgz", + "integrity": "sha512-eeiC78fDNGFwemPIHiwRC+mEC7W5jwt3fceUev2gJ2nFnXpVHo8eRrpC9BLWZDee6ehnz/sPmNjizbXwpfaTBw==", + "dev": true, + "dependencies": { + "handlebars": "^4.7.7" + }, + "peerDependencies": { + "typedoc": ">=0.24.0" + } + }, + "node_modules/typedoc-plugin-rename-defaults": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/typedoc-plugin-rename-defaults/-/typedoc-plugin-rename-defaults-0.6.7.tgz", + "integrity": "sha512-b+j0qQCdE69IUP6ZJgS6zonG59AcaKM8B8zdNlj1jnv6XefDLkIWdFxXfS3KhFOpVzW22pNCfdOCCym9ryS3wA==", + "dev": true, + "peerDependencies": { + "typedoc": "0.22.x || 0.23.x || 0.24.x || 0.25.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", + "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", + "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } } diff --git a/package.json b/package.json index 3cad47f02..01cab2d85 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "lint:docs": "npm-run-all lint-docs:*", "lint-docs:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", "lint:tools": "npm-run-all lint-tools:*", - "lint-tools:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", + "lint-tools:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs", "lint-tools:py": "./tools/ci/run/lint-pylint-py.sh tools", "type": "npm-run-all type:*", "type:src": "npm-run-all type-src:*", @@ -101,7 +101,7 @@ "fix-lint:docs": "npm-run-all fix-lint-docs:*", "fix-lint-docs:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", "fix-lint:tools": "npm-run-all fix-lint-tools:*", - "fix-lint-tools:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs", + "fix-lint-tools:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs", "gen-thumbnail": "./tools/ci/run/docs-gen-thumbnail.sh", "gen-thumbnail-gsutil": "./tools/ci/run/docs-gen-thumbnail-gsutil.sh", "build-docs": "./tools/ci/run/docs-build.sh", @@ -126,6 +126,7 @@ "@tsconfig/strictest": "^2.0.2", "@typescript-eslint/eslint-plugin": "^6.7.5", "@typescript-eslint/parser": "^6.7.5", + "@vizzu/eslint-config": "^0.2.0", "@vizzu/prettier-config": "^0.1.0", "aggregate-error": "^5.0.0", "ajv": "8.12.0", From 7788c2156f24269d2140da1394c8b2608ee1ac32 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 12:39:40 +0100 Subject: [PATCH 124/180] Rename integration test to e2e test --- test/{integration => e2e}/accept-changes.cjs | 0 test/{integration => e2e}/man.cjs | 0 test/{integration => e2e}/modules/browser/browsers-chrome.cjs | 0 test/{integration => e2e}/modules/browser/puppeteer-chrome.cjs | 0 test/{integration => e2e}/modules/browser/selenium-chrome.cjs | 0 test/{integration => e2e}/modules/console/assert.cjs | 0 test/{integration => e2e}/modules/console/assert.test.cjs | 0 test/{integration => e2e}/modules/console/console.cjs | 0 test/{integration => e2e}/modules/console/console.test.cjs | 0 test/{integration => e2e}/modules/img/imgdiff.js | 0 .../modules/integration-test/client/index.html | 0 .../{integration => e2e}/modules/integration-test/client/index.js | 0 .../modules/integration-test/test-case/test-case-result.cjs | 0 .../modules/integration-test/test-case/test-case.cjs | 0 .../modules/integration-test/test-case/test-cases-config.cjs | 0 .../modules/integration-test/test-case/test-cases-config.test.cjs | 0 .../test-case/test-cases-config.test/test-cases-1.json | 0 .../test-case/test-cases-config.test/test-cases-2.json | 0 .../test-case/test-cases-config.test/test-cases-3.json | 0 .../test-case/test-cases-config.test/test-cases-notjson.json | 0 .../test-cases-notschema/test-cases-notschema-1.json | 0 .../test-cases-notschema/test-cases-notschema-2.json | 0 .../test-cases-notschema/test-cases-notschema-3.json | 0 .../test-cases-notschema/test-cases-notschema-4.json | 0 .../test-cases-notschema/test-cases-notschema-5.json | 0 .../test-cases-notschema/test-cases-notschema-6.json | 0 .../test-cases-notschema/test-cases-notschema-7.json | 0 .../test-case/test-cases-config.test/test-cases-result.cjs | 0 .../modules/integration-test/test-case/test-cases.cjs | 0 .../modules/integration-test/test-case/test-cases.test.cjs | 0 .../modules/integration-test/test-console.cjs | 0 .../modules/integration-test/test-console.test.cjs | 0 test/{integration => e2e}/modules/integration-test/test-env.cjs | 0 .../modules/integration-test/test-env.test.cjs | 0 .../modules/integration-test/test-suite-result.cjs | 0 test/{integration => e2e}/modules/integration-test/test-suite.cjs | 0 test/{integration => e2e}/modules/jest.config.cjs | 0 test/{integration => e2e}/modules/videorecorder/.gitignore | 0 test/{integration => e2e}/modules/videorecorder/client/index.html | 0 test/{integration => e2e}/modules/videorecorder/client/index.js | 0 .../modules/videorecorder/client/videorecorder.js | 0 test/{integration => e2e}/modules/videorecorder/generate.cjs | 0 test/{integration => e2e}/modules/videorecorder/resize.cjs | 0 test/{integration => e2e}/modules/vizzu/vizzu-cloudfunctions.cjs | 0 .../modules/vizzu/vizzu-cloudfunctions.test.cjs | 0 test/{integration => e2e}/modules/vizzu/vizzu-url.cjs | 0 test/{integration => e2e}/modules/vizzu/vizzu-url.test.cjs | 0 .../modules/vizzu/vizzu-version-client/index.html | 0 .../modules/vizzu/vizzu-version-client/index.js | 0 test/{integration => e2e}/modules/vizzu/vizzu-version.cjs | 0 test/{integration => e2e}/modules/workspace/workspace-host.cjs | 0 test/{integration => e2e}/modules/workspace/workspace-path.cjs | 0 .../modules/workspace/workspace-path.test.cjs | 0 test/{integration => e2e}/test.cjs | 0 .../anim_order/circle_without_2_carte_horizontal.mjs | 0 .../anim_order/circle_without_2_carte_vertical.mjs | 0 .../basic_animations/anim_order/rectangle_without_2_carte_bar.mjs | 0 .../anim_order/rectangle_without_2_carte_column.mjs | 0 .../basic_animations/anim_order/rectangle_without_2_polar_bar.mjs | 0 .../anim_order/rectangle_without_2_polar_column.mjs | 0 .../basic_animations/coordsystems/area_carte_2_polar.mjs | 0 .../basic_animations/coordsystems/circle_without_2_carte.mjs | 0 .../basic_animations/coordsystems/rectangle_carte_2_polar.mjs | 0 .../basic_animations/coordsystems/rectangle_without_2_carte.mjs | 0 .../basic_animations/coordsystems/rectangle_without_2_polar.mjs | 0 .../basic_animations/labels/axis/circle_negative_2dis_3con.mjs | 0 .../test_cases/basic_animations/labels/marker/area_2dis_3con.mjs | 0 .../basic_animations/labels/marker/circle_negative_2dis_3con.mjs | 0 .../test_cases/basic_animations/labels/marker/line_2dis_3con.mjs | 0 .../labels/marker/padding_test_rectangle_negative_2dis_3con.mjs | 0 .../labels/marker/rectangle_negative_2dis_3con.mjs | 0 .../basic_animations/labels/rectangle_labels_rotated_charts.mjs | 0 .../basic_animations/legend_transitions/color_2discrete_anim.mjs | 0 .../basic_animations/legend_transitions/color_conti_anim.mjs | 0 .../legend_transitions/color_conti_changes_anim.mjs | 0 .../legend_transitions/color_conti_discrete_anim.mjs | 0 .../basic_animations/legend_transitions/color_discrete_anim.mjs | 0 .../legend_transitions/color_discrete_changes_anim.mjs | 0 .../basic_animations/legend_transitions/color_off_on_anim.mjs | 0 .../legend_transitions/color_off_on_series_anim.mjs | 0 .../legend_transitions/lightness_2discrete_anim.mjs | 0 .../basic_animations/legend_transitions/lightness_conti_anim.mjs | 0 .../legend_transitions/lightness_conti_discrete_anim.mjs | 0 .../legend_transitions/lightness_discrete_anim.mjs | 0 .../basic_animations/legend_transitions/lightness_on_off_anim.mjs | 0 .../basic_animations/legend_transitions/size_2discrete_anim.mjs | 0 .../basic_animations/legend_transitions/size_conti_anim.mjs | 0 .../legend_transitions/size_conti_discrete_anim.mjs | 0 .../basic_animations/legend_transitions/size_discrete_anim.mjs | 0 .../basic_animations/legend_transitions/size_on_off_anim.mjs | 0 .../basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs | 0 .../basic_animations/markers_morph/marker_trans_polar.mjs | 0 .../someOtherTests/merge_split_area_stream_2dis_1con.mjs | 0 .../basic_animations/someOtherTests/total_time_area_bar.mjs | 0 .../basic_animations/someOtherTests/total_time_area_column.mjs | 0 .../basic_animations/someOtherTests/total_time_bar_line.mjs | 0 .../basic_animations/someOtherTests/total_time_column_line.mjs | 0 .../test_cases/chart_precision/area_negative_x.mjs | 0 .../test_cases/chart_precision/area_negative_y.mjs | 0 test/{integration => e2e}/test_cases/chart_precision/area_x.mjs | 0 test/{integration => e2e}/test_cases/chart_precision/area_y.mjs | 0 test/{integration => e2e}/test_cases/chart_precision/bubble.mjs | 0 test/{integration => e2e}/test_cases/chart_precision/circle.mjs | 0 .../test_cases/chart_precision/circle_negative.mjs | 0 .../test_cases/chart_precision/column_color_gradient.mjs | 0 .../test_cases/chart_precision/column_lightness.mjs | 0 .../test_cases/chart_precision/line_negative_x.mjs | 0 .../test_cases/chart_precision/line_negative_y.mjs | 0 test/{integration => e2e}/test_cases/chart_precision/line_x.mjs | 0 test/{integration => e2e}/test_cases/chart_precision/line_y.mjs | 0 .../test_cases/chart_precision/rectangle_negative_x.mjs | 0 .../test_cases/chart_precision/rectangle_negative_y.mjs | 0 .../test_cases/chart_precision/rectangle_x.mjs | 0 .../test_cases/chart_precision/rectangle_y.mjs | 0 test/{integration => e2e}/test_cases/chart_precision/treemap.mjs | 0 .../test_cases/color_palettes/color_conti_gradient.mjs | 0 .../data_fault_and_formats/column_rectangle_less_disc.mjs | 0 .../data_fault_and_formats/column_rectangle_more_conti.mjs | 0 .../data_fault_and_formats/column_rectangle_more_disc.mjs | 0 .../test_cases/data_fault_and_formats/rectangle_data_cube.mjs | 0 .../test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs | 0 .../test_cases/lay_out/full_line_negative_2dis_1con.mjs | 0 .../lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs | 0 .../test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs | 0 .../test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs | 0 .../test_cases/lay_out/plot_line_negative_2dis_1con.mjs | 0 .../test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs | 0 .../test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs | 0 .../{integration => e2e}/test_cases/operations/all_operations.mjs | 0 .../test_cases/operations/all_operations_sizeing.mjs | 0 .../area_drilldown_aggregate.mjs | 0 .../circle_drilldown_aggregate.mjs | 0 .../circle_drilldown_aggregate_bubble.mjs | 0 .../line_drilldown_aggregate_x.mjs | 0 .../line_drilldown_aggregate_y.mjs | 0 .../rectangle_drilldown_aggregate_X.mjs | 0 .../rectangle_drilldown_aggregate_Y.mjs | 0 .../rectangle_drilldown_aggregate_treemap.mjs | 0 .../test_cases/operations/filter_tutorial_data/area_filter_x.mjs | 0 .../test_cases/operations/filter_tutorial_data/area_filter_y.mjs | 0 .../test_cases/operations/filter_tutorial_data/circle_filter.mjs | 0 .../operations/filter_tutorial_data/circle_filter_bubble.mjs | 0 .../operations/filter_tutorial_data/filter_off_anim.mjs | 0 .../test_cases/operations/filter_tutorial_data/line_filter_x.mjs | 0 .../test_cases/operations/filter_tutorial_data/line_filter_y.mjs | 0 .../operations/filter_tutorial_data/rectangle_filter_treemap.mjs | 0 .../operations/filter_tutorial_data/rectangle_filter_x.mjs | 0 .../operations/filter_tutorial_data/rectangle_filter_y.mjs | 0 .../operations/group_stack_tutorial_data/area_group_stack.mjs | 0 .../operations/group_stack_tutorial_data/bubble_group_stack.mjs | 0 .../operations/group_stack_tutorial_data/line_group_stack.mjs | 0 .../operations/group_stack_tutorial_data/treemap_group_stack.mjs | 0 .../operations/histogram_2_drilldown_negative_1dis_1con.mjs | 0 .../operations/orientation_tutorial_data/area_orientation.mjs | 0 .../operations/orientation_tutorial_data/line_orientation.mjs | 0 .../orientation_tutorial_data/rectangle_orientation.mjs | 0 .../operations/split_merge_tutorial_data/area_split_merge.mjs | 0 .../operations/split_merge_tutorial_data/circle_split_merge.mjs | 0 .../operations/split_merge_tutorial_data/line_split_merge.mjs | 0 .../split_merge_tutorial_data/rectangle_split_merge.mjs | 0 .../test_cases/shorthands/column_shorthands.mjs | 0 .../static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs | 0 .../cartesian_coo_sys/area_negative_1dis_1con.mjs | 0 .../cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs | 0 .../bar_stacked_rectangle_negative_2dis_1con.mjs | 0 .../column_grouped_rectangle_negative_2dis_1con.mjs | 0 .../cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs | 0 .../column_stacked_rectangle_negative_2dis_1con.mjs | 0 .../column_stacked_rectangle_negative_3dis_1con.mjs | 0 .../cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs | 0 .../cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs | 0 .../cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs | 0 .../cartesian_coo_sys/line_negative_1dis_1con.mjs | 0 .../cartesian_coo_sys/line_negative_2dis_1con.mjs | 0 .../cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs | 0 .../cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs | 0 .../cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs | 0 .../cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs | 0 .../cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs | 0 .../cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs | 0 .../waterfall_rectangle_bar_negative_2dis_2con.mjs | 0 .../cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs | 0 .../polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs | 0 .../polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs | 0 .../polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs | 0 .../polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs | 0 .../polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs | 0 .../polar_coo_sys/radial_rectangle_1dis_1con.mjs | 0 .../polar_coo_sys/radial_rectangle_2dis_1con.mjs | 0 .../polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs | 0 .../static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs | 0 .../static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs | 0 .../polar_coo_sys/sunburst_rectangle_2dis_1con.mjs | 0 .../polar_coo_sys/sunburst_rectangle_2dis_2con.mjs | 0 .../without_coo_sys/bubble_circle_1dis_2con.mjs | 0 .../without_coo_sys/bubble_circle_2dis_1con.mjs | 0 .../without_coo_sys/bubble_circle_2dis_2con.mjs | 0 .../without_coo_sys/treemap_rectangle_2dis_1con.mjs | 0 .../without_coo_sys/treemap_rectangle_2dis_2con.mjs | 0 test/{integration => e2e}/test_cases/test_cases.json | 0 .../analytical_operations/change_dimension/area_polar_stacked.mjs | 0 .../analytical_operations/change_dimension/area_stacked.mjs | 0 .../analytical_operations/change_dimension/column_stacked.mjs | 0 .../analytical_operations/change_dimension/dotplot_1.mjs | 0 .../analytical_operations/change_dimension/dotplot_2.mjs | 0 .../analytical_operations/change_dimension/dotplot_polar.mjs | 0 .../web_content/analytical_operations/change_dimension/line.mjs | 0 .../analytical_operations/change_dimension/line_polar.mjs | 0 .../analytical_operations/compare/area_100percent_stacked.mjs | 0 .../analytical_operations/compare/area_polar_split.mjs | 0 .../analytical_operations/compare/area_polar_stacked.mjs | 0 .../analytical_operations/compare/area_split_stacked.mjs | 0 .../web_content/analytical_operations/compare/area_stacked.mjs | 0 .../analytical_operations/compare/column_100percent_stacked.mjs | 0 .../analytical_operations/compare/column_groupped_1.mjs | 0 .../analytical_operations/compare/column_groupped_2.mjs | 0 .../analytical_operations/compare/column_split_stacked_1.mjs | 0 .../analytical_operations/compare/column_split_stacked_2.mjs | 0 .../analytical_operations/compare/column_stacked_1.mjs | 0 .../analytical_operations/compare/column_stacked_2.mjs | 0 .../web_content/analytical_operations/compare/coxcomb_1.mjs | 0 .../web_content/analytical_operations/compare/coxcomb_2.mjs | 0 .../test_cases/web_content/analytical_operations/compare/line.mjs | 0 .../web_content/analytical_operations/compare/line_polar.mjs | 0 .../web_content/analytical_operations/compare/stream_stacked.mjs | 0 .../web_content/analytical_operations/compare/waterfall.mjs | 0 .../distribute/existingmeasure_area_stacked.mjs | 0 .../analytical_operations/distribute/existingmeasure_bubble.mjs | 0 .../distribute/existingmeasure_bubble_stacked_1.mjs | 0 .../distribute/existingmeasure_bubble_stacked_2.mjs | 0 .../distribute/existingmeasure_column_stacked.mjs | 0 .../analytical_operations/distribute/existingmeasure_coxcomb.mjs | 0 .../analytical_operations/distribute/existingmeasure_dotplot.mjs | 0 .../distribute/existingmeasure_scatterplot.mjs | 0 .../distribute/existingmeasure_scatterplot_split.mjs | 0 .../distribute/existingmeasure_treemap_stacked.mjs | 0 .../analytical_operations/distribute/newmeasure_column.mjs | 0 .../distribute/newmeasure_column_split_stacked.mjs | 0 .../distribute/newmeasure_column_stacked.mjs | 0 .../analytical_operations/distribute/newmeasure_dotplot_1.mjs | 0 .../analytical_operations/distribute/newmeasure_dotplot_2.mjs | 0 .../analytical_operations/distribute/newmeasure_dotplot_3.mjs | 0 .../analytical_operations/distribute/newmeasure_dotplot_4.mjs | 0 .../web_content/analytical_operations/drilldown/area.mjs | 0 .../web_content/analytical_operations/drilldown/area_polar.mjs | 0 .../analytical_operations/drilldown/bubble_and_distribution.mjs | 0 .../web_content/analytical_operations/drilldown/column_1.mjs | 0 .../web_content/analytical_operations/drilldown/column_2.mjs | 0 .../web_content/analytical_operations/drilldown/column_3.mjs | 0 .../web_content/analytical_operations/drilldown/column_4.mjs | 0 .../analytical_operations/drilldown/column_stacked.mjs | 0 .../web_content/analytical_operations/drilldown/donut.mjs | 0 .../web_content/analytical_operations/drilldown/line_1.mjs | 0 .../web_content/analytical_operations/drilldown/line_2.mjs | 0 .../web_content/analytical_operations/drilldown/line_polar_1.mjs | 0 .../web_content/analytical_operations/drilldown/line_polar_2.mjs | 0 .../web_content/analytical_operations/drilldown/radial.mjs | 0 .../web_content/analytical_operations/drilldown/scatterplot.mjs | 0 .../analytical_operations/filter/area_polar_stacked.mjs | 0 .../web_content/analytical_operations/filter/area_stacked.mjs | 0 .../test_cases/web_content/analytical_operations/filter/line.mjs | 0 .../web_content/analytical_operations/filter/line_polar.mjs | 0 .../web_content/analytical_operations/filter/stream_1.mjs | 0 .../web_content/analytical_operations/filter/stream_2.mjs | 0 .../web_content/analytical_operations/misc/donut_to_coxcomb.mjs | 0 .../analytical_operations/misc/make_space_with_polar.mjs | 0 .../analytical_operations/misc/orientation_marimekko.mjs | 0 .../web_content/analytical_operations/misc/pie_to_donut.mjs | 0 .../analytical_operations/split/area_polar_stacked.mjs | 0 .../web_content/analytical_operations/split/area_stacked.mjs | 0 .../analytical_operations/split/column_100percent_stacked.mjs | 0 .../web_content/analytical_operations/split/column_stacked.mjs | 0 .../web_content/analytical_operations/split/coxcomb.mjs | 0 .../web_content/analytical_operations/split/radial_stacked.mjs | 0 .../web_content/analytical_operations/split/scatterplot_1.mjs | 0 .../web_content/analytical_operations/split/scatterplot_2.mjs | 0 .../analytical_operations/stretch_to_proportion/area_stacked.mjs | 0 .../stretch_to_proportion/column_groupped.mjs | 0 .../stretch_to_proportion/column_split_stacked.mjs | 0 .../stretch_to_proportion/column_stacked.mjs | 0 .../analytical_operations/stretch_to_proportion/line.mjs | 0 .../analytical_operations/sum/area_100percent_stacked.mjs | 0 .../web_content/analytical_operations/sum/area_polar_split.mjs | 0 .../web_content/analytical_operations/sum/area_polar_stacked.mjs | 0 .../web_content/analytical_operations/sum/area_split.mjs | 0 .../web_content/analytical_operations/sum/area_stacked.mjs | 0 .../test_cases/web_content/analytical_operations/sum/bubble.mjs | 0 .../web_content/analytical_operations/sum/bubble_to_column.mjs | 0 .../web_content/analytical_operations/sum/bubble_to_coxcomb.mjs | 0 .../web_content/analytical_operations/sum/bubble_to_radial.mjs | 0 .../web_content/analytical_operations/sum/bubbleplot_1.mjs | 0 .../web_content/analytical_operations/sum/bubbleplot_2.mjs | 0 .../analytical_operations/sum/bubbleplot_to_radial.mjs | 0 .../test_cases/web_content/analytical_operations/sum/column_1.mjs | 0 .../analytical_operations/sum/column_100percent_stacked.mjs | 0 .../test_cases/web_content/analytical_operations/sum/column_2.mjs | 0 .../web_content/analytical_operations/sum/column_groupped.mjs | 0 .../analytical_operations/sum/column_split_stacked.mjs | 0 .../web_content/analytical_operations/sum/column_stacked_1.mjs | 0 .../web_content/analytical_operations/sum/column_stacked_2.mjs | 0 .../web_content/analytical_operations/sum/column_to_bar.mjs | 0 .../web_content/analytical_operations/sum/column_to_waterfall.mjs | 0 .../web_content/analytical_operations/sum/coxcomb_1.mjs | 0 .../web_content/analytical_operations/sum/coxcomb_2.mjs | 0 .../web_content/analytical_operations/sum/coxcomb_split.mjs | 0 .../test_cases/web_content/analytical_operations/sum/dotplot.mjs | 0 .../test_cases/web_content/analytical_operations/sum/line_1.mjs | 0 .../test_cases/web_content/analytical_operations/sum/line_2.mjs | 0 .../web_content/analytical_operations/sum/line_polar_1.mjs | 0 .../web_content/analytical_operations/sum/line_polar_2.mjs | 0 .../web_content/analytical_operations/sum/scatterplot.mjs | 0 .../web_content/analytical_operations/sum/scatterplot_polar.mjs | 0 .../web_content/analytical_operations/sum/stream_stacked.mjs | 0 .../test_cases/web_content/analytical_operations/sum/treemap.mjs | 0 .../web_content/cookbook/chart_types/annotation_editor.mjs | 0 .../test_cases/web_content/cookbook/chart_types/annotations.mjs | 0 .../web_content/cookbook/chart_types/exploded_pie_chart.mjs | 0 .../test_cases/web_content/cookbook/chart_types/gant_chart.mjs | 0 .../test_cases/web_content/cookbook/chart_types/historgram.mjs | 0 .../test_cases/web_content/cookbook/chart_types/map.mjs | 0 .../test_cases/web_content/cookbook/chart_types/multilayer.mjs | 0 .../test_cases/web_content/cookbook/chart_types/network_graph.mjs | 0 .../web_content/cookbook/chart_types/step_line_chart.mjs | 0 .../test_cases/web_content/cookbook/chart_types/trendline.mjs | 0 .../test_cases/web_content/cookbook/data_source/csv_load.mjs | 0 .../web_content/cookbook/data_source/data_from_model.mjs | 0 .../web_content/cookbook/data_source/data_from_model2.mjs | 0 .../test_cases/web_content/cookbook/data_source/paint.mjs | 0 .../test_cases/web_content/cookbook/data_source/realtime_data.mjs | 0 .../web_content/cookbook/exports/animated_gif_export.mjs | 0 .../test_cases/web_content/cookbook/exports/pptx-export.mjs | 0 .../test_cases/web_content/cookbook/exports/video_export.mjs | 0 .../web_content/cookbook/interactive/data_selector_combobox.mjs | 0 .../web_content/cookbook/interactive/filter_on_click.mjs | 0 .../test_cases/web_content/cookbook/interactive/filter_slider.mjs | 0 .../test_cases/web_content/cookbook/interactive/fullscreen.mjs | 0 .../web_content/cookbook/interactive/marker_label_on_mouseon.mjs | 0 .../test_cases/web_content/cookbook/interactive/mouse_scroll.mjs | 0 .../web_content/cookbook/interactive/mouse_wheel_zoom.mjs | 0 .../web_content/cookbook/interactive/range_slider_zoom.mjs | 0 .../test_cases/web_content/cookbook/interactive/seeker_slider.mjs | 0 .../test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs | 0 .../test_cases/web_content/cookbook/interactive/window_zoom.mjs | 0 .../test_cases/web_content/cookbook/rendering/3d_chart.mjs | 0 .../web_content/cookbook/rendering/background_image.mjs | 0 .../test_cases/web_content/cookbook/rendering/custom_linetype.mjs | 0 .../test_cases/web_content/cookbook/rendering/custom_markers.mjs | 0 .../web_content/cookbook/rendering/dropshadow_on_marker.mjs | 0 .../web_content/cookbook/rendering/gradient_on_marker.mjs | 0 .../test_cases/web_content/cookbook/rendering/grid_lines.mjs | 0 .../web_content/cookbook/rendering/image_axis_labels.mjs | 0 .../test_cases/web_content/cookbook/rendering/motion_blur.mjs | 0 .../web_content/cookbook/rendering/random_gradient_pattern.mjs | 0 .../test_cases/web_content/cookbook/rendering/rounded_bars.mjs | 0 .../web_content/cookbook/rendering/smooth_line_chart.mjs | 0 .../web_content/cookbook/rendering/sparse_axis_labels.mjs | 0 .../test_cases/web_content/cookbook/responsive-size.mjs.bak | 0 .../test_cases/web_content/cookbook/style/colorfilter.mjs | 0 .../test_cases/web_content/cookbook/style/d3_color_palette.mjs | 0 .../test_cases/web_content/cookbook/style/dark_theme.mjs | 0 .../test_cases/web_content/cookbook/style/highligh_markers.mjs | 0 test/{integration => e2e}/test_cases/web_content/infinite.mjs | 0 .../test_cases/web_content/presets/chart/area.mjs | 0 .../test_cases/web_content/presets/chart/area_percentage.mjs | 0 .../test_cases/web_content/presets/chart/area_splitted.mjs | 0 .../test_cases/web_content/presets/chart/area_stacked.mjs | 0 .../test_cases/web_content/presets/chart/bar.mjs | 0 .../test_cases/web_content/presets/chart/bar_grouped.mjs | 0 .../test_cases/web_content/presets/chart/bar_percentage.mjs | 0 .../test_cases/web_content/presets/chart/bar_radial.mjs | 0 .../test_cases/web_content/presets/chart/bar_radial_stacked.mjs | 0 .../test_cases/web_content/presets/chart/bar_splitted.mjs | 0 .../test_cases/web_content/presets/chart/bar_stacked.mjs | 0 .../test_cases/web_content/presets/chart/bubble.mjs | 0 .../test_cases/web_content/presets/chart/bubble_stacked.mjs | 0 .../test_cases/web_content/presets/chart/column.mjs | 0 .../test_cases/web_content/presets/chart/column_grouped.mjs | 0 .../test_cases/web_content/presets/chart/column_percentage.mjs | 0 .../test_cases/web_content/presets/chart/column_polar.mjs | 0 .../test_cases/web_content/presets/chart/column_polar_stacked.mjs | 0 .../test_cases/web_content/presets/chart/column_splitted.mjs | 0 .../test_cases/web_content/presets/chart/column_stacked.mjs | 0 .../test_cases/web_content/presets/chart/donut.mjs | 0 .../test_cases/web_content/presets/chart/donut_nested.mjs | 0 .../test_cases/web_content/presets/chart/line.mjs | 0 .../test_cases/web_content/presets/chart/line_polar.mjs | 0 .../test_cases/web_content/presets/chart/line_vertical.mjs | 0 .../test_cases/web_content/presets/chart/lollipop.mjs | 0 .../test_cases/web_content/presets/chart/marimekko.mjs | 0 .../test_cases/web_content/presets/chart/mekko_stacked.mjs | 0 .../test_cases/web_content/presets/chart/pie.mjs | 0 .../test_cases/web_content/presets/chart/pie_variable_radius.mjs | 0 .../test_cases/web_content/presets/chart/waterfall.mjs | 0 .../test_cases/web_content/presets/graph/stream.mjs | 0 .../test_cases/web_content/presets/graph/stream_vertical.mjs | 0 .../test_cases/web_content/presets/graph/violin.mjs | 0 .../test_cases/web_content/presets/graph/violin_vertical.mjs | 0 .../test_cases/web_content/presets/heatmap.mjs | 0 .../test_cases/web_content/presets/plot/bubble.mjs | 0 .../test_cases/web_content/presets/plot/scatter.mjs | 0 .../test_cases/web_content/presets/plot/scatter_polar.mjs | 0 .../test_cases/web_content/presets/treemap.mjs | 0 .../test_cases/web_content/presets/treemap_stacked.mjs | 0 .../test_cases/web_content/presets_config/chart/bar_radial.mjs | 0 .../web_content/presets_config/chart/bar_radial_stacked.mjs | 0 .../test_cases/web_content/presets_config/chart/bar_stacked.mjs | 0 .../web_content/presets_config/chart/bubble_stacked.mjs | 0 .../test_cases/web_content/presets_config/chart/column_polar.mjs | 0 .../web_content/presets_config/chart/column_polar_stacked.mjs | 0 .../web_content/presets_config/chart/column_stacked.mjs | 0 .../web_content/presets_config/chart/pie_variable_radius.mjs | 0 .../test_cases/web_content/presets_config/treemap.mjs | 0 .../test_cases/web_content/static/chart/area.mjs | 0 .../test_cases/web_content/static/chart/area_polar.mjs | 0 .../test_cases/web_content/static/chart/area_stacked.mjs | 0 .../test_cases/web_content/static/chart/bar.mjs | 0 .../test_cases/web_content/static/chart/bar_radial.mjs | 0 .../test_cases/web_content/static/chart/bar_stacked_radial.mjs | 0 .../test_cases/web_content/static/chart/bubble.mjs | 0 .../test_cases/web_content/static/chart/bubble_stacked.mjs | 0 .../test_cases/web_content/static/chart/column.mjs | 0 .../test_cases/web_content/static/chart/column_grouped.mjs | 0 .../test_cases/web_content/static/chart/column_single_stacked.mjs | 0 .../test_cases/web_content/static/chart/column_stacked.mjs | 0 .../test_cases/web_content/static/chart/coxcomb.mjs | 0 .../test_cases/web_content/static/chart/donut.mjs | 0 .../test_cases/web_content/static/chart/line.mjs | 0 .../test_cases/web_content/static/chart/line_polar.mjs | 0 .../test_cases/web_content/static/chart/line_single.mjs | 0 .../test_cases/web_content/static/chart/line_single_polar.mjs | 0 .../test_cases/web_content/static/chart/marimekko.mjs | 0 .../test_cases/web_content/static/chart/mekko.mjs | 0 .../test_cases/web_content/static/chart/mekko_stacked.mjs | 0 .../test_cases/web_content/static/chart/pie.mjs | 0 .../test_cases/web_content/static/chart/waterfall.mjs | 0 .../test_cases/web_content/static/graph/stream_stacked.mjs | 0 .../test_cases/web_content/static/histogram.mjs | 0 .../test_cases/web_content/static/plot/bubble.mjs | 0 .../test_cases/web_content/static/plot/dot.mjs | 0 .../test_cases/web_content/static/plot/scatter.mjs | 0 .../test_cases/web_content/static/treemap.mjs | 0 .../test_cases/web_content/static/treemap_stacked.mjs | 0 .../composition_comparison_pie_coxcomb_column_2dis_2con.mjs | 0 .../composition_comparison_waterfall_column_2dis_1con.mjs | 0 .../animated/composition_percentage_area_stream_3dis_1con.mjs | 0 .../animated/composition_percentage_column_3dis_1con.mjs | 0 .../animated/composition_percentage_column_stream_3dis_1con.mjs | 0 .../animated/distribution_relationship_dotplot_dotplot.mjs | 0 .../web_content_removed/animated/drill_aggreg_improve_line.mjs | 0 .../web_content_removed/animated/drilldown_aggregate_line.mjs | 0 .../animated/merge_split_area_stream_3dis_1con.mjs | 0 .../test_cases/web_content_removed/animated/merge_split_bar.mjs | 0 .../animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs | 0 .../web_content_removed/animated/orientation_circle.mjs | 0 .../web_content_removed/animated/orientation_dot_circle.mjs | 0 .../animated/orientation_marimekko_rectangle_2dis_2con.mjs | 0 .../web_content_removed/animated/orientation_rectangle.mjs | 0 .../animated/pie_donut2_rectangle_1dis_1con.mjs | 0 .../animated/relationship_comparison_circle_2_bubble_plot.mjs | 0 .../animated/relationship_total_bubble_plot_column.mjs | 0 .../web_content_removed/animated/stack_group_area_line.mjs | 0 .../web_content_removed/animated/stack_group_circle.mjs | 0 .../web_content_removed/animated/stack_group_treemap.mjs | 0 .../web_content_removed/animated/total_element_bubble_2_bar.mjs | 0 .../web_content_removed/animated/total_element_bubble_column.mjs | 0 .../test_cases/web_content_removed/animated/treemap_radial.mjs | 0 .../test_cases/web_content_removed/animated/zoom_area.mjs | 0 .../test_cases/web_content_removed/animated/zoom_area_polar.mjs | 0 .../test_cases/web_content_removed/animated/zoom_line.mjs | 0 .../test_cases/web_content_removed/animated/zoom_line_polar.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs | 0 .../test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs | 0 .../ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs | 0 .../ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs | 0 .../ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs | 0 .../ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs | 0 .../ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs | 0 .../ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs | 0 .../ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs | 0 .../ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs | 0 .../ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs | 0 .../ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs | 0 .../ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs | 0 .../ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs | 0 .../ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs | 0 .../ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs | 0 .../ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs | 0 .../ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs | 0 .../test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs | 0 .../test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs | 0 .../test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs | 0 .../test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs | 0 .../test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs | 0 .../test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs | 0 .../test_cases/ww_animTiming/descartes/easing_test.mjs | 0 .../ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs | 0 .../ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs | 0 .../ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs | 0 .../ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs | 0 .../ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs | 0 .../descartes_orientation/04_d-d_o_l-r-l_stacked.mjs | 0 .../ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs | 0 .../ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs | 0 .../ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs | 0 .../ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs | 0 .../ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs | 0 .../ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs | 0 .../ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs | 0 .../ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs | 0 .../ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs | 0 .../ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs | 0 .../ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs | 0 .../ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs | 0 .../test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs | 0 .../test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs | 0 .../test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs | 0 .../test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs | 0 .../test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs | 0 .../test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs | 0 .../test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs | 0 .../test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs | 0 .../test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs | 0 .../test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs | 0 .../test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs | 0 .../test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs | 0 .../test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs | 0 .../test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs | 0 .../test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs | 0 .../without-descartes_orientation/01_w-d_o_r-r-r.mjs | 0 .../without-descartes_orientation/02_w-d_o_c-r-c.mjs | 0 .../without-descartes_orientation/05_w-d_o_r-c-r.mjs | 0 .../without-descartes_orientation/06_w-d_o_c-c-c.mjs | 0 .../without-descartes_orientation/09_w-d_o_r-a-r.mjs | 0 .../without-descartes_orientation/10_w-d_o_c-a-c.mjs | 0 .../without-descartes_orientation/13_w-d_o_r-l-r.mjs | 0 .../without-descartes_orientation/14_w-d_o_c-l-c.mjs | 0 .../test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs | 0 .../test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs | 0 .../test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs | 0 .../test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs | 0 .../test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs | 0 .../test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs | 0 .../test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs | 0 .../test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs | 0 .../ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs | 0 .../ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs | 0 .../ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs | 0 .../ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs | 0 .../ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs | 0 .../ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs | 0 .../ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs | 0 .../ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs | 0 .../test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs | 0 .../ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs | 0 .../ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs | 0 .../test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs | 0 .../test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs | 0 .../test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs | 0 .../test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs | 0 .../test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs | 0 .../test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs | 0 .../test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs | 0 .../descartes_orientation/03_d-d_o_a-r-a_split.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs | 0 .../descartes_orientation/04_d-d_o_l-r-l_stacked.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs | 0 .../ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs | 0 .../test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs | 0 .../test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs | 0 .../test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs | 0 .../test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs | 0 .../test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs | 0 .../test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs | 0 .../ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs | 0 .../ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs | 0 .../ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs | 0 .../ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs | 0 .../ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs | 0 .../ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs | 0 .../ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs | 0 .../ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs | 0 .../ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs | 0 .../without-descartes_orientation/01_w-d_o_r-r-r.mjs | 0 .../without-descartes_orientation/02_w-d_o_c-r-c.mjs | 0 .../without-descartes_orientation/05_w-d_o_r-c-r.mjs | 0 .../without-descartes_orientation/06_w-d_o_c-c-c.mjs | 0 .../without-descartes_orientation/09_w-d_o_r-a-r.mjs | 0 .../without-descartes_orientation/10_w-d_o_c-a-c.mjs | 0 .../without-descartes_orientation/13_w-d_o_r-l-r.mjs | 0 .../without-descartes_orientation/14_w-d_o_c-l-c.mjs | 0 .../test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs | 0 .../test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs | 0 .../test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs | 0 .../test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs | 0 .../test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs | 0 .../test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs | 0 .../test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs | 0 .../test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs | 0 .../without-polar_orientation/01_w-p_o_r-r-r.mjs | 0 .../without-polar_orientation/02_w-p_o_c-r-c.mjs | 0 .../without-polar_orientation/05_w-p_o_r-c-r.mjs | 0 .../without-polar_orientation/06_w-p_o_c-c-c.mjs | 0 .../without-polar_orientation/09_w-p_o_r-a-r.mjs | 0 .../without-polar_orientation/10_w-p_o_c-a-c.mjs | 0 .../without-polar_orientation/13_w-p_o_r-l-r.mjs | 0 .../without-polar_orientation/14_w-p_o_c-l-c.mjs | 0 .../test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs | 0 .../test_cases/ww_next_steps/next_steps/02_C_R.mjs | 0 .../ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs | 0 .../test_cases/ww_next_steps/next_steps/03_C_R.mjs | 0 .../test_cases/ww_next_steps/next_steps/04_C_R.mjs | 0 .../test_cases/ww_next_steps/next_steps/05_C_R.mjs | 0 .../test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs | 0 .../test_cases/ww_next_steps/next_steps/22_C_C.mjs | 0 .../test_cases/ww_next_steps/next_steps/28_C_A.mjs | 0 .../test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs | 0 .../test_cases/ww_next_steps/next_steps/38_C_L_line.mjs | 0 .../test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs | 0 .../next_steps_Tests/02_C_R_water_comparison_sum.mjs | 0 .../test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs | 0 .../test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs | 0 .../test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs | 0 .../test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs | 0 .../test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs | 0 .../test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs | 0 .../test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs | 0 .../ww_next_steps/next_steps_Tests/axisLabel_problem.mjs | 0 .../next_steps_byOperations/compare/comparison_01.mjs | 0 .../next_steps_byOperations/compare/comparison_02.mjs | 0 .../next_steps_byOperations/compare/comparison_03.mjs | 0 .../next_steps_byOperations/compare/comparison_04.mjs | 0 .../next_steps_byOperations/compare/comparison_05.mjs | 0 .../next_steps_byOperations/compare/comparison_06.mjs | 0 .../next_steps_byOperations/compare/comparison_09.mjs | 0 .../next_steps_byOperations/compare/comparison_10.mjs | 0 .../next_steps_byOperations/compare/comparison_11.mjs | 0 .../next_steps_byOperations/components/components_01.mjs | 0 .../next_steps_byOperations/components/components_02.mjs | 0 .../next_steps_byOperations/components/components_03.mjs | 0 .../next_steps_byOperations/components/components_04.mjs | 0 .../next_steps_byOperations/components/components_05.mjs | 0 .../next_steps_byOperations/components/components_06.mjs | 0 .../next_steps_byOperations/components/components_07.mjs | 0 .../next_steps_byOperations/distribute/distribution_01.mjs | 0 .../next_steps_byOperations/distribute/distribution_02.mjs | 0 .../next_steps_byOperations/distribute/distribution_03.mjs | 0 .../next_steps_byOperations/distribute/distribution_04.mjs | 0 .../next_steps_byOperations/distribute/distribution_05.mjs | 0 .../next_steps_byOperations/distribute/distribution_06.mjs | 0 .../next_steps_byOperations/distribute/distribution_07.mjs | 0 .../next_steps_byOperations/distribute/distribution_08.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_01.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_02.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_03.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_04.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_05.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_06.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_07.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_10.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_11.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_12.mjs | 0 .../next_steps_byOperations/drilldown/drilldown_13.mjs | 0 .../next_steps_byOperations/other/other_add_measure_01.mjs | 0 .../ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs | 0 .../ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs | 0 .../ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs | 0 .../ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs | 0 .../ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs | 0 .../ww_next_steps/next_steps_byOperations/remove/remove_01.mjs | 0 .../ww_next_steps/next_steps_byOperations/remove/remove_02.mjs | 0 .../ww_next_steps/next_steps_byOperations/remove/remove_03.mjs | 0 .../ww_next_steps/next_steps_byOperations/remove/remove_04.mjs | 0 .../ww_next_steps/next_steps_byOperations/remove/remove_05.mjs | 0 .../ww_next_steps/next_steps_byOperations/remove/remove_07.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs | 0 .../next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs | 0 .../ww_next_steps/next_steps_byOperations/total/total_01.mjs | 0 .../ww_next_steps/next_steps_byOperations/total/total_02.mjs | 0 .../ww_next_steps/next_steps_byOperations/total/total_03.mjs | 0 .../ww_next_steps/next_steps_byOperations/total/total_04.mjs | 0 .../ww_next_steps/next_steps_byOperations/total/total_05.mjs | 0 .../composition_comparison_pie_coxcomb_column_2dis_2con.mjs | 0 .../wOld_animated/distribution_relationship_dotplot_dotplot.mjs | 0 .../wOld_animated/drill_aggreg_improve_line.mjs | 0 .../merge_split_radial_stacked_rectangle_2dis_1con.mjs | 0 .../wOld_animated/orientation_dot_circle.mjs | 0 .../wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs | 0 .../wOld_animated/other_cartesian_radial_02.mjs | 0 .../next_steps_byOperations/wOld_animated/treemap_radial.mjs | 0 .../next_steps_byOperations/wOld_animated/zoom_area.mjs | 0 .../next_steps_byOperations/wOld_animated/zoom_area_polar.mjs | 0 .../next_steps_byOperations/wOld_animated/zoom_line.mjs | 0 .../next_steps_byOperations/wOld_animated/zoom_line_polar.mjs | 0 .../ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs | 0 .../next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs | 0 .../next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs | 0 .../next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs | 0 .../next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs | 0 .../next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs | 0 .../next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs | 0 .../next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs | 0 .../ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs | 0 .../next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs | 0 .../wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs | 0 .../wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs | 0 .../wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs | 0 .../wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs | 0 .../wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs | 0 .../wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs | 0 .../wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs | 0 .../wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs | 0 .../wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs | 0 .../wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs | 0 .../wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs | 0 .../wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs | 0 .../wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs | 0 .../ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs | 0 .../2_des_pol-without/area-rectangle/04a_d-w_are.mjs | 0 .../2_des_pol-without/area-rectangle/04b_d-w_are.mjs | 0 .../2_des_pol-without/area-rectangle/06a_d-w_are.mjs | 0 .../2_des_pol-without/area-rectangle/06b_d-w_are.mjs | 0 .../area-rectangle/10_d-w_are_temporal_bubble.mjs | 0 .../ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs | 0 .../wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs | 0 .../wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs | 0 .../wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs | 0 .../wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs | 0 .../2_des_pol-without/area/06b_d-w_are_V1_filter.mjs | 0 .../2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs | 0 .../wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/04a_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/04b_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/05a_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/05b_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/06a_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/06b_d-w_lin.mjs | 0 .../ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs | 0 .../ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs | 0 .../wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs | 0 .../wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs | 0 .../wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs | 0 .../wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs | 0 .../wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs | 0 .../wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs | 0 .../wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs | 0 .../wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs | 0 .../Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs | 0 .../Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs | 0 .../Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs | 0 .../Marker_transition_problem/area_column_time_sum.mjs | 0 .../wNoFade_Tests/Marker_transition_problem/area_orientation.mjs | 0 .../wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs | 0 .../Marker_transition_problem/line_column_time_sum.mjs | 0 .../Marker_transition_problem/line_drilldown_aggregate_x.mjs | 0 .../wNoFade_Tests/Marker_transition_problem/line_orientation.mjs | 0 .../wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs | 0 .../pie_coxcomb_drilldown.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs | 0 .../wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs | 0 .../wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs | 0 .../wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs | 0 .../wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs | 0 .../ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs | 0 .../1_des_pol/rectangle/09_rec_TemporalDistribution.mjs | 0 .../wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs | 0 .../wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs | 0 .../wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs | 0 .../wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs | 0 .../wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs | 0 .../wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs | 0 .../wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs | 0 .../wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs | 0 .../wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs | 0 .../2_des_pol-without/area-rectangle/04a_d-w_are.mjs | 0 .../2_des_pol-without/area-rectangle/04b_d-w_are.mjs | 0 .../2_des_pol-without/area-rectangle/06a_d-w_are.mjs | 0 .../2_des_pol-without/area-rectangle/06b_d-w_are.mjs | 0 .../area-rectangle/10_d-w_are_temporal_bubble.mjs | 0 .../ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs | 0 .../wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs | 0 .../wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs | 0 .../wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs | 0 .../wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs | 0 .../2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs | 0 .../wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs | 0 .../2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs | 0 .../2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs | 0 .../2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs | 0 .../2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs | 0 .../2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs | 0 .../2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs | 0 .../2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs | 0 .../2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs | 0 .../2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs | 0 .../2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs | 0 .../2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs | 0 .../wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs | 0 .../wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/04a_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/04b_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/05a_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/05b_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/06a_d-w_lin.mjs | 0 .../2_des_pol-without/line-rectangle/06b_d-w_lin.mjs | 0 .../ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs | 0 .../ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs | 0 .../wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs | 0 .../wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs | 0 .../wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs | 0 .../wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs | 0 .../wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs | 0 .../wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs | 0 .../wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs | 0 .../wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs | 0 .../2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs | 0 .../2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs | 0 .../2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs | 0 .../2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs | 0 .../2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs | 0 .../2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs | 0 .../2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs | 0 .../2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs | 0 .../2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs | 0 .../2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs | 0 .../2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs | 0 .../2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs | 0 .../2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs | 0 .../2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs | 0 .../2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs | 0 .../2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs | 0 .../2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs | 0 .../2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs | 0 .../2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs | 0 .../test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs | 0 .../ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs | 0 .../cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs | 0 .../cartesian_coo_sys/05_C_R_split_column_chart.mjs | 0 .../cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs | 0 .../cartesian_coo_sys/07_C_R_range_column_chart.mjs | 0 .../ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs | 0 .../cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs | 0 .../cartesian_coo_sys/10_C_R_marimekko_chart.mjs | 0 .../cartesian_coo_sys/112_C_R_icicle_chart.mjs | 0 .../cartesian_coo_sys/11_C_R_icicle_chart.mjs | 0 .../cartesian_coo_sys/12_C_R_matrix_chart.mjs | 0 .../cartesian_coo_sys/13_C_R_bar_chart_negative.mjs | 0 .../cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs | 0 .../cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs | 0 .../cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs | 0 .../cartesian_coo_sys/19_C_R_range_bar_chart.mjs | 0 .../cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs | 0 .../cartesian_coo_sys/20_C_C_lollipop_chart.mjs | 0 .../cartesian_coo_sys/21_C_C_dot_plot_chart.mjs | 0 .../cartesian_coo_sys/22_C_C_scatter_plot.mjs | 0 .../cartesian_coo_sys/24_C_C_bubble_plot.mjs | 0 .../cartesian_coo_sys/25_C_C_correlogram.mjs | 0 .../cartesian_coo_sys/27_C_A_area_chart.mjs | 0 .../cartesian_coo_sys/27_C_A_area_chart_negative.mjs | 0 .../29_C_A_stacked_area_chart_percentage_labels.mjs | 0 .../cartesian_coo_sys/30_C_A_overlay_area_chart.mjs | 0 .../cartesian_coo_sys/31_C_A_splitted_area_chart.mjs | 0 .../cartesian_coo_sys/32_C_A_stream_graph.mjs | 0 .../cartesian_coo_sys/33_C_A_stream_graph_vert.mjs | 0 .../cartesian_coo_sys/34_C_A_violin_graph.mjs | 0 .../cartesian_coo_sys/35_C_A_violin_graph_vert.mjs | 0 .../cartesian_coo_sys/36_C_A_range_area_chart.mjs | 0 .../cartesian_coo_sys/371_C_L_line_chart_nega.mjs | 0 .../ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs | 0 .../cartesian_coo_sys/38_C_L_line_chart_nega.mjs | 0 .../cartesian_coo_sys/39_C_L_line_chart_vert.mjs | 0 .../polar_coo_sys/41_P_R_multi-level_pie_chart.mjs | 0 .../polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs | 0 .../polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs | 0 .../polar_coo_sys/47_P_R_polar_area_chart.mjs | 0 .../polar_coo_sys/48_P_R_polar_range_column_chart.mjs | 0 .../polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs | 0 .../polar_coo_sys/53_P_C_polar_scatter_plot.mjs | 0 .../polar_coo_sys/54_P_A_area_trump_chart.mjs | 0 .../polar_coo_sys/551_P_A_polar_stream_graph.mjs | 0 .../polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs | 0 .../polar_coo_sys/56_P_A_polar_line_chart.mjs | 0 .../without_coo_sys/601_W_R_heatmap_gradient.mjs | 0 .../ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs | 0 .../ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs | 0 .../operations/01_drilldown/Bar_Bar.mjs | 0 .../operations/01_drilldown/Column_Stacked_Column.mjs | 0 .../operations/02_sum/Area_Stacked_Area.mjs | 0 .../operations/02_sum/Bubble_Bubble.mjs | 0 .../operations/02_sum/Column_Groupped_Column_1.mjs | 0 .../operations/02_sum/Column_Groupped_Column_2.mjs | 0 .../operations/02_sum/Column_Groupped_Column_to_Bar.mjs | 0 .../operations/02_sum/Column_Stacked_Column_1.mjs | 0 .../operations/02_sum/Column_Stacked_Column_2.mjs | 0 .../operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs | 0 .../operations/02_sum/Line_Line_3.mjs | 0 .../operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs | 0 .../operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs | 0 .../operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs | 0 test/{integration => e2e}/test_data/IMDB_data.mjs | 0 test/{integration => e2e}/test_data/capitals.mjs | 0 test/{integration => e2e}/test_data/chart_precision.mjs | 0 test/{integration => e2e}/test_data/chart_types_eu.mjs | 0 test/{integration => e2e}/test_data/correlogram_data.mjs | 0 test/{integration => e2e}/test_data/cube_test_data.mjs | 0 test/{integration => e2e}/test_data/data_missing_long.mjs | 0 .../test_data/data_missing_long_more_conti.mjs | 0 .../test_data/data_missing_long_more_disc.mjs | 0 test/{integration => e2e}/test_data/funnel_data.mjs | 0 test/{integration => e2e}/test_data/icicle.mjs | 0 test/{integration => e2e}/test_data/icicle2.mjs | 0 test/{integration => e2e}/test_data/infinite_data.mjs | 0 test/{integration => e2e}/test_data/music_data.mjs | 0 test/{integration => e2e}/test_data/music_industry_history_1.mjs | 0 test/{integration => e2e}/test_data/sunburst.mjs | 0 test/{integration => e2e}/test_data/sunburst2.mjs | 0 test/{integration => e2e}/test_data/tutorial.mjs | 0 test/{integration => e2e}/tests/chart.mjs | 0 test/{integration => e2e}/tests/config.mjs | 0 test/{integration => e2e}/tests/config_tests.json | 0 .../tests/config_tests/dimension_axis_title.mjs | 0 test/{integration => e2e}/tests/config_tests/geometry.mjs | 0 test/{integration => e2e}/tests/data.mjs | 0 test/{integration => e2e}/tests/features.json | 0 .../tests/features/aggregators/aggregators.mjs | 0 .../tests/features/aggregators/aggregators_together.mjs | 0 test/{integration => e2e}/tests/features/anim/speed.mjs | 0 .../tests/features/axis_title_positioning.mjs | 0 test/{integration => e2e}/tests/features/cssproperties.mjs | 0 .../tests/features/data_input/object_records.mjs | 0 .../{integration => e2e}/tests/features/events/drawing_events.mjs | 0 test/{integration => e2e}/tests/features/presets.mjs | 0 test/{integration => e2e}/tests/features/subtitle_caption.mjs | 0 test/{integration => e2e}/tests/fixes.json | 0 test/{integration => e2e}/tests/fixes/144.mjs | 0 test/{integration => e2e}/tests/fixes/146.mjs | 0 test/{integration => e2e}/tests/fixes/163.mjs | 0 test/{integration => e2e}/tests/fixes/32303048.mjs | 0 test/{integration => e2e}/tests/fixes/333.mjs | 0 test/{integration => e2e}/tests/fixes/38072036.mjs | 0 test/{integration => e2e}/tests/fixes/41932946.mjs | 0 test/{integration => e2e}/tests/fixes/42836788.mjs | 0 test/{integration => e2e}/tests/fixes/450.mjs | 0 test/{integration => e2e}/tests/fixes/75.mjs | 0 test/{integration => e2e}/tests/fixes/91.mjs | 0 test/{integration => e2e}/tests/style_tests.json | 0 .../tests/style_tests/plot/backgroundColor/err.mjs | 0 .../tests/style_tests/plot/backgroundColor/hex.mjs | 0 .../tests/style_tests/plot/backgroundColor/hexa.mjs | 0 .../tests/style_tests/plot/backgroundColor/hexshort.mjs | 0 .../tests/style_tests/plot/backgroundColor/rgb.mjs | 0 .../tests/style_tests/plot/backgroundColor/rgba.mjs | 0 .../tests/style_tests/plot/borderColor/hexa.mjs | 0 test/{integration => e2e}/tests/style_tests/plot/borderWidth.mjs | 0 .../{integration => e2e}/tests/style_tests/plot/paddingBottom.mjs | 0 test/{integration => e2e}/tests/style_tests/plot/paddingLeft.mjs | 0 test/{integration => e2e}/tests/style_tests/plot/paddingRight.mjs | 0 test/{integration => e2e}/tests/style_tests/plot/paddingTop.mjs | 0 .../tests/style_tests/plot/xAxis/color/hexa.mjs | 0 .../tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs | 0 .../tests/style_tests/plot/xAxis/label/angle/deg.mjs | 0 .../tests/style_tests/plot/xAxis/label/angle/grad.mjs | 0 .../tests/style_tests/plot/xAxis/label/angle/number.mjs | 0 .../tests/style_tests/plot/xAxis/label/angle/rad.mjs | 0 .../tests/style_tests/plot/xAxis/label/angle/turn.mjs | 0 .../tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs | 0 .../tests/style_tests/plot/xAxis/label/color/hexa.mjs | 0 .../plot/xAxis/label/fontSize/elementFontPercentage.mjs | 0 .../style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs | 0 .../tests/style_tests/plot/xAxis/label/fontSize/number.mjs | 0 .../tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs | 0 .../tests/style_tests/plot/xAxis/label/fontStyle.mjs | 0 .../tests/style_tests/plot/xAxis/label/fontWeight.mjs | 0 .../tests/style_tests/plot/xAxis/label/orientation.mjs | 0 .../tests/style_tests/plot/xAxis/label/paddingBottom.mjs | 0 .../tests/style_tests/plot/xAxis/label/paddingLeft.mjs | 0 .../tests/style_tests/plot/xAxis/label/paddingRight.mjs | 0 .../tests/style_tests/plot/xAxis/label/paddingTop.mjs | 0 .../tests/style_tests/plot/xAxis/label/position.mjs | 0 .../tests/style_tests/plot/xAxis/label/side.mjs | 0 .../tests/style_tests/plot/xAxis/label/textAlign.mjs | 0 .../tests/style_tests/plot/xAxis/ticks/color/hexa.mjs | 0 .../style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs | 0 .../style_tests/plot/xAxis/ticks/length/elementPercentage.mjs | 0 .../tests/style_tests/plot/xAxis/ticks/length/number.mjs | 0 .../tests/style_tests/plot/xAxis/ticks/length/pixel.mjs | 0 .../tests/style_tests/plot/xAxis/ticks/lineWidth.mjs | 0 .../tests/style_tests/plot/xAxis/ticks/position.mjs | 0 .../tests/style_tests/plot/yAxis/color/hexa.mjs | 0 .../tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs | 0 .../tests/style_tests/plot/yAxis/ticks/color/hexa.mjs | 0 .../style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs | 0 .../style_tests/plot/yAxis/ticks/length/elementPercentage.mjs | 0 .../tests/style_tests/plot/yAxis/ticks/length/number.mjs | 0 .../tests/style_tests/plot/yAxis/ticks/length/pixel.mjs | 0 .../tests/style_tests/plot/yAxis/ticks/lineWidth.mjs | 0 .../tests/style_tests/plot/yAxis/ticks/position.mjs | 0 test/{integration => e2e}/tools/manual/client/frame.html | 0 test/{integration => e2e}/tools/manual/client/frame.js | 0 test/{integration => e2e}/tools/manual/client/index.html | 0 test/{integration => e2e}/tools/manual/client/index.js | 0 test/{integration => e2e}/tools/manual/client/test-case.js | 0 test/{integration => e2e}/tools/manual/client/test-lib.js | 0 test/{integration => e2e}/tools/manual/client/url.js | 0 test/{integration => e2e}/tools/manual/server/handlers/libs.cjs | 0 .../tools/manual/server/handlers/test-case.cjs | 0 test/{integration => e2e}/tools/manual/server/handlers/tests.cjs | 0 test/{integration => e2e}/tools/manual/server/main.cjs | 0 test/{integration => e2e}/tools/manual/shared/test-case.js | 0 test/{integration => e2e}/utils/lastanimation.mjs | 0 test/{integration => e2e}/utils/mouse.mjs | 0 test/{integration => e2e}/utils/testcontrol.mjs | 0 test/{integration => e2e}/utils/vizzu-markerdropshadow.mjs | 0 test/{integration => e2e}/utils/vizzu-pptxgen.mjs | 0 test/{integration => e2e}/utils/vizzu-videocapture.mjs | 0 1283 files changed, 0 insertions(+), 0 deletions(-) rename test/{integration => e2e}/accept-changes.cjs (100%) rename test/{integration => e2e}/man.cjs (100%) rename test/{integration => e2e}/modules/browser/browsers-chrome.cjs (100%) rename test/{integration => e2e}/modules/browser/puppeteer-chrome.cjs (100%) rename test/{integration => e2e}/modules/browser/selenium-chrome.cjs (100%) rename test/{integration => e2e}/modules/console/assert.cjs (100%) rename test/{integration => e2e}/modules/console/assert.test.cjs (100%) rename test/{integration => e2e}/modules/console/console.cjs (100%) rename test/{integration => e2e}/modules/console/console.test.cjs (100%) rename test/{integration => e2e}/modules/img/imgdiff.js (100%) rename test/{integration => e2e}/modules/integration-test/client/index.html (100%) rename test/{integration => e2e}/modules/integration-test/client/index.js (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-case-result.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-case.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-case/test-cases.test.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-console.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-console.test.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-env.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-env.test.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-suite-result.cjs (100%) rename test/{integration => e2e}/modules/integration-test/test-suite.cjs (100%) rename test/{integration => e2e}/modules/jest.config.cjs (100%) rename test/{integration => e2e}/modules/videorecorder/.gitignore (100%) rename test/{integration => e2e}/modules/videorecorder/client/index.html (100%) rename test/{integration => e2e}/modules/videorecorder/client/index.js (100%) rename test/{integration => e2e}/modules/videorecorder/client/videorecorder.js (100%) rename test/{integration => e2e}/modules/videorecorder/generate.cjs (100%) rename test/{integration => e2e}/modules/videorecorder/resize.cjs (100%) rename test/{integration => e2e}/modules/vizzu/vizzu-cloudfunctions.cjs (100%) rename test/{integration => e2e}/modules/vizzu/vizzu-cloudfunctions.test.cjs (100%) rename test/{integration => e2e}/modules/vizzu/vizzu-url.cjs (100%) rename test/{integration => e2e}/modules/vizzu/vizzu-url.test.cjs (100%) rename test/{integration => e2e}/modules/vizzu/vizzu-version-client/index.html (100%) rename test/{integration => e2e}/modules/vizzu/vizzu-version-client/index.js (100%) rename test/{integration => e2e}/modules/vizzu/vizzu-version.cjs (100%) rename test/{integration => e2e}/modules/workspace/workspace-host.cjs (100%) rename test/{integration => e2e}/modules/workspace/workspace-path.cjs (100%) rename test/{integration => e2e}/modules/workspace/workspace-path.test.cjs (100%) rename test/{integration => e2e}/test.cjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/anim_order/circle_without_2_carte_horizontal.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/anim_order/circle_without_2_carte_vertical.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/anim_order/rectangle_without_2_carte_bar.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/anim_order/rectangle_without_2_carte_column.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/anim_order/rectangle_without_2_polar_bar.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/anim_order/rectangle_without_2_polar_column.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/coordsystems/area_carte_2_polar.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/coordsystems/circle_without_2_carte.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/coordsystems/rectangle_carte_2_polar.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/coordsystems/rectangle_without_2_carte.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/coordsystems/rectangle_without_2_polar.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/labels/axis/circle_negative_2dis_3con.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/labels/marker/area_2dis_3con.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/labels/marker/circle_negative_2dis_3con.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/labels/marker/line_2dis_3con.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/color_2discrete_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/color_conti_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/color_conti_changes_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/color_conti_discrete_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/color_discrete_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/color_discrete_changes_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/color_off_on_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/color_off_on_series_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/lightness_2discrete_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/lightness_conti_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/lightness_conti_discrete_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/lightness_discrete_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/lightness_on_off_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/size_2discrete_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/size_conti_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/size_conti_discrete_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/size_discrete_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/legend_transitions/size_on_off_anim.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/markers_morph/marker_trans_polar.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/someOtherTests/merge_split_area_stream_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/someOtherTests/total_time_area_bar.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/someOtherTests/total_time_area_column.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/someOtherTests/total_time_bar_line.mjs (100%) rename test/{integration => e2e}/test_cases/basic_animations/someOtherTests/total_time_column_line.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/area_negative_x.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/area_negative_y.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/area_x.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/area_y.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/bubble.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/circle.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/circle_negative.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/column_color_gradient.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/column_lightness.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/line_negative_x.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/line_negative_y.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/line_x.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/line_y.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/rectangle_negative_x.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/rectangle_negative_y.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/rectangle_x.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/rectangle_y.mjs (100%) rename test/{integration => e2e}/test_cases/chart_precision/treemap.mjs (100%) rename test/{integration => e2e}/test_cases/color_palettes/color_conti_gradient.mjs (100%) rename test/{integration => e2e}/test_cases/data_fault_and_formats/column_rectangle_less_disc.mjs (100%) rename test/{integration => e2e}/test_cases/data_fault_and_formats/column_rectangle_more_conti.mjs (100%) rename test/{integration => e2e}/test_cases/data_fault_and_formats/column_rectangle_more_disc.mjs (100%) rename test/{integration => e2e}/test_cases/data_fault_and_formats/rectangle_data_cube.mjs (100%) rename test/{integration => e2e}/test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/lay_out/full_line_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/lay_out/plot_line_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/operations/all_operations.mjs (100%) rename test/{integration => e2e}/test_cases/operations/all_operations_sizeing.mjs (100%) rename test/{integration => e2e}/test_cases/operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate.mjs (100%) rename test/{integration => e2e}/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate.mjs (100%) rename test/{integration => e2e}/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble.mjs (100%) rename test/{integration => e2e}/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x.mjs (100%) rename test/{integration => e2e}/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y.mjs (100%) rename test/{integration => e2e}/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X.mjs (100%) rename test/{integration => e2e}/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y.mjs (100%) rename test/{integration => e2e}/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/area_filter_x.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/area_filter_y.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/circle_filter.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/circle_filter_bubble.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/filter_off_anim.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/line_filter_x.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/line_filter_y.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/rectangle_filter_treemap.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/rectangle_filter_x.mjs (100%) rename test/{integration => e2e}/test_cases/operations/filter_tutorial_data/rectangle_filter_y.mjs (100%) rename test/{integration => e2e}/test_cases/operations/group_stack_tutorial_data/area_group_stack.mjs (100%) rename test/{integration => e2e}/test_cases/operations/group_stack_tutorial_data/bubble_group_stack.mjs (100%) rename test/{integration => e2e}/test_cases/operations/group_stack_tutorial_data/line_group_stack.mjs (100%) rename test/{integration => e2e}/test_cases/operations/group_stack_tutorial_data/treemap_group_stack.mjs (100%) rename test/{integration => e2e}/test_cases/operations/histogram_2_drilldown_negative_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/operations/orientation_tutorial_data/area_orientation.mjs (100%) rename test/{integration => e2e}/test_cases/operations/orientation_tutorial_data/line_orientation.mjs (100%) rename test/{integration => e2e}/test_cases/operations/orientation_tutorial_data/rectangle_orientation.mjs (100%) rename test/{integration => e2e}/test_cases/operations/split_merge_tutorial_data/area_split_merge.mjs (100%) rename test/{integration => e2e}/test_cases/operations/split_merge_tutorial_data/circle_split_merge.mjs (100%) rename test/{integration => e2e}/test_cases/operations/split_merge_tutorial_data/line_split_merge.mjs (100%) rename test/{integration => e2e}/test_cases/operations/split_merge_tutorial_data/rectangle_split_merge.mjs (100%) rename test/{integration => e2e}/test_cases/shorthands/column_shorthands.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/area_negative_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/line_negative_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/line_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/without_coo_sys/bubble_circle_1dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/test_cases.json (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/change_dimension/area_polar_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/change_dimension/area_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/change_dimension/column_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/change_dimension/dotplot_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/change_dimension/dotplot_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/change_dimension/dotplot_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/change_dimension/line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/change_dimension/line_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/area_100percent_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/area_polar_split.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/area_polar_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/area_split_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/area_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/column_100percent_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/column_groupped_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/column_groupped_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/column_split_stacked_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/column_split_stacked_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/column_stacked_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/column_stacked_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/coxcomb_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/coxcomb_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/line_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/compare/waterfall.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_area_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_column_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_coxcomb.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_dotplot.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot_split.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/existingmeasure_treemap_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/newmeasure_column.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/newmeasure_column_split_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/newmeasure_column_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_3.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_4.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/area.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/area_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/bubble_and_distribution.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/column_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/column_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/column_3.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/column_4.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/column_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/donut.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/line_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/line_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/line_polar_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/line_polar_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/radial.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/drilldown/scatterplot.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/filter/area_polar_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/filter/area_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/filter/line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/filter/line_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/filter/stream_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/filter/stream_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/misc/donut_to_coxcomb.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/misc/make_space_with_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/misc/orientation_marimekko.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/misc/pie_to_donut.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/split/area_polar_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/split/area_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/split/column_100percent_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/split/column_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/split/coxcomb.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/split/radial_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/split/scatterplot_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/split/scatterplot_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/stretch_to_proportion/area_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/stretch_to_proportion/column_groupped.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/stretch_to_proportion/column_split_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/stretch_to_proportion/column_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/stretch_to_proportion/line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/area_100percent_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/area_polar_split.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/area_polar_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/area_split.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/area_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/bubble.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/bubble_to_column.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/bubble_to_coxcomb.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/bubble_to_radial.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/bubbleplot_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/bubbleplot_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/bubbleplot_to_radial.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/column_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/column_100percent_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/column_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/column_groupped.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/column_split_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/column_stacked_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/column_stacked_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/column_to_bar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/column_to_waterfall.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/coxcomb_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/coxcomb_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/coxcomb_split.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/dotplot.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/line_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/line_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/line_polar_1.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/line_polar_2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/scatterplot.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/scatterplot_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/analytical_operations/sum/treemap.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/annotation_editor.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/annotations.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/exploded_pie_chart.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/gant_chart.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/historgram.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/map.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/multilayer.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/network_graph.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/step_line_chart.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/chart_types/trendline.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/data_source/csv_load.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/data_source/data_from_model.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/data_source/data_from_model2.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/data_source/paint.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/data_source/realtime_data.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/exports/animated_gif_export.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/exports/pptx-export.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/exports/video_export.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/data_selector_combobox.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/filter_on_click.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/filter_slider.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/fullscreen.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/marker_label_on_mouseon.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/mouse_scroll.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/mouse_wheel_zoom.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/range_slider_zoom.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/seeker_slider.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/interactive/window_zoom.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/3d_chart.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/background_image.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/custom_linetype.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/custom_markers.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/dropshadow_on_marker.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/gradient_on_marker.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/grid_lines.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/image_axis_labels.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/motion_blur.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/random_gradient_pattern.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/rounded_bars.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/smooth_line_chart.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/responsive-size.mjs.bak (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/style/colorfilter.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/style/d3_color_palette.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/style/dark_theme.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/cookbook/style/highligh_markers.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/infinite.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/area.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/area_percentage.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/area_splitted.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/area_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/bar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/bar_grouped.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/bar_percentage.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/bar_radial.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/bar_radial_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/bar_splitted.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/bar_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/bubble.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/bubble_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/column.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/column_grouped.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/column_percentage.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/column_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/column_polar_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/column_splitted.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/column_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/donut.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/donut_nested.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/line_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/line_vertical.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/lollipop.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/marimekko.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/mekko_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/pie.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/pie_variable_radius.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/chart/waterfall.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/graph/stream.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/graph/stream_vertical.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/graph/violin.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/graph/violin_vertical.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/heatmap.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/plot/bubble.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/plot/scatter.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/plot/scatter_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/treemap.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets/treemap_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets_config/chart/bar_radial.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets_config/chart/bar_radial_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets_config/chart/bar_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets_config/chart/bubble_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets_config/chart/column_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets_config/chart/column_polar_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets_config/chart/column_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets_config/chart/pie_variable_radius.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/presets_config/treemap.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/area.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/area_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/area_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/bar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/bar_radial.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/bar_stacked_radial.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/bubble.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/bubble_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/column.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/column_grouped.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/column_single_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/column_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/coxcomb.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/donut.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/line_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/line_single.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/line_single_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/marimekko.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/mekko.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/mekko_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/pie.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/chart/waterfall.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/graph/stream_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/histogram.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/plot/bubble.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/plot/dot.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/plot/scatter.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/treemap.mjs (100%) rename test/{integration => e2e}/test_cases/web_content/static/treemap_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/composition_percentage_area_stream_3dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/composition_percentage_column_3dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/composition_percentage_column_stream_3dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/distribution_relationship_dotplot_dotplot.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/drill_aggreg_improve_line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/drilldown_aggregate_line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/merge_split_area_stream_3dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/merge_split_bar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/orientation_circle.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/orientation_dot_circle.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/orientation_rectangle.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/pie_donut2_rectangle_1dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/relationship_comparison_circle_2_bubble_plot.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/relationship_total_bubble_plot_column.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/stack_group_area_line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/stack_group_circle.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/stack_group_treemap.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/total_element_bubble_2_bar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/total_element_bubble_column.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/treemap_radial.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/zoom_area.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/zoom_area_polar.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/zoom_line.mjs (100%) rename test/{integration => e2e}/test_cases/web_content_removed/animated/zoom_line_polar.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes/easing_test.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/02_C_R.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/03_C_R.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/04_C_R.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/05_C_R.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/22_C_C.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/28_C_A.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps/38_C_L_line.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_Tests/axisLabel_problem.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_01.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_02.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_03.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_04.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_05.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_06.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_09.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_10.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_11.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/components/components_01.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/components/components_02.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/components/components_03.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/components/components_04.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/components/components_05.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/components/components_06.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/components/components_07.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_01.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_02.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_03.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_04.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_05.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_06.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_07.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_08.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_01.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_02.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_03.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_04.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_05.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_06.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_07.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_10.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_11.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_12.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_13.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/other/other_add_measure_01.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_01.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_02.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_03.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_04.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_05.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_07.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/total/total_01.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/total/total_02.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/total/total_03.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/total/total_04.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/total/total_05.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs (100%) rename test/{integration => e2e}/test_cases/ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/01_drilldown/Bar_Bar.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/02_sum/Area_Stacked_Area.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/02_sum/Bubble_Bubble.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/02_sum/Line_Line_3.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs (100%) rename test/{integration => e2e}/test_cases/www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs (100%) rename test/{integration => e2e}/test_data/IMDB_data.mjs (100%) rename test/{integration => e2e}/test_data/capitals.mjs (100%) rename test/{integration => e2e}/test_data/chart_precision.mjs (100%) rename test/{integration => e2e}/test_data/chart_types_eu.mjs (100%) rename test/{integration => e2e}/test_data/correlogram_data.mjs (100%) rename test/{integration => e2e}/test_data/cube_test_data.mjs (100%) rename test/{integration => e2e}/test_data/data_missing_long.mjs (100%) rename test/{integration => e2e}/test_data/data_missing_long_more_conti.mjs (100%) rename test/{integration => e2e}/test_data/data_missing_long_more_disc.mjs (100%) rename test/{integration => e2e}/test_data/funnel_data.mjs (100%) rename test/{integration => e2e}/test_data/icicle.mjs (100%) rename test/{integration => e2e}/test_data/icicle2.mjs (100%) rename test/{integration => e2e}/test_data/infinite_data.mjs (100%) rename test/{integration => e2e}/test_data/music_data.mjs (100%) rename test/{integration => e2e}/test_data/music_industry_history_1.mjs (100%) rename test/{integration => e2e}/test_data/sunburst.mjs (100%) rename test/{integration => e2e}/test_data/sunburst2.mjs (100%) rename test/{integration => e2e}/test_data/tutorial.mjs (100%) rename test/{integration => e2e}/tests/chart.mjs (100%) rename test/{integration => e2e}/tests/config.mjs (100%) rename test/{integration => e2e}/tests/config_tests.json (100%) rename test/{integration => e2e}/tests/config_tests/dimension_axis_title.mjs (100%) rename test/{integration => e2e}/tests/config_tests/geometry.mjs (100%) rename test/{integration => e2e}/tests/data.mjs (100%) rename test/{integration => e2e}/tests/features.json (100%) rename test/{integration => e2e}/tests/features/aggregators/aggregators.mjs (100%) rename test/{integration => e2e}/tests/features/aggregators/aggregators_together.mjs (100%) rename test/{integration => e2e}/tests/features/anim/speed.mjs (100%) rename test/{integration => e2e}/tests/features/axis_title_positioning.mjs (100%) rename test/{integration => e2e}/tests/features/cssproperties.mjs (100%) rename test/{integration => e2e}/tests/features/data_input/object_records.mjs (100%) rename test/{integration => e2e}/tests/features/events/drawing_events.mjs (100%) rename test/{integration => e2e}/tests/features/presets.mjs (100%) rename test/{integration => e2e}/tests/features/subtitle_caption.mjs (100%) rename test/{integration => e2e}/tests/fixes.json (100%) rename test/{integration => e2e}/tests/fixes/144.mjs (100%) rename test/{integration => e2e}/tests/fixes/146.mjs (100%) rename test/{integration => e2e}/tests/fixes/163.mjs (100%) rename test/{integration => e2e}/tests/fixes/32303048.mjs (100%) rename test/{integration => e2e}/tests/fixes/333.mjs (100%) rename test/{integration => e2e}/tests/fixes/38072036.mjs (100%) rename test/{integration => e2e}/tests/fixes/41932946.mjs (100%) rename test/{integration => e2e}/tests/fixes/42836788.mjs (100%) rename test/{integration => e2e}/tests/fixes/450.mjs (100%) rename test/{integration => e2e}/tests/fixes/75.mjs (100%) rename test/{integration => e2e}/tests/fixes/91.mjs (100%) rename test/{integration => e2e}/tests/style_tests.json (100%) rename test/{integration => e2e}/tests/style_tests/plot/backgroundColor/err.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/backgroundColor/hex.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/backgroundColor/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/backgroundColor/hexshort.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/backgroundColor/rgb.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/backgroundColor/rgba.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/borderColor/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/borderWidth.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/paddingBottom.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/paddingLeft.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/paddingRight.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/paddingTop.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/color/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/angle/deg.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/angle/grad.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/angle/number.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/angle/rad.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/angle/turn.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/color/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/fontSize/elementFontPercentage.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/fontSize/number.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/fontStyle.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/fontWeight.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/orientation.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/paddingBottom.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/paddingLeft.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/paddingRight.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/paddingTop.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/position.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/side.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/label/textAlign.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/ticks/color/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/ticks/length/elementPercentage.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/ticks/length/number.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/ticks/length/pixel.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/ticks/lineWidth.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/xAxis/ticks/position.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/yAxis/color/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/yAxis/ticks/color/hexa.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/yAxis/ticks/length/elementPercentage.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/yAxis/ticks/length/number.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/yAxis/ticks/length/pixel.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/yAxis/ticks/lineWidth.mjs (100%) rename test/{integration => e2e}/tests/style_tests/plot/yAxis/ticks/position.mjs (100%) rename test/{integration => e2e}/tools/manual/client/frame.html (100%) rename test/{integration => e2e}/tools/manual/client/frame.js (100%) rename test/{integration => e2e}/tools/manual/client/index.html (100%) rename test/{integration => e2e}/tools/manual/client/index.js (100%) rename test/{integration => e2e}/tools/manual/client/test-case.js (100%) rename test/{integration => e2e}/tools/manual/client/test-lib.js (100%) rename test/{integration => e2e}/tools/manual/client/url.js (100%) rename test/{integration => e2e}/tools/manual/server/handlers/libs.cjs (100%) rename test/{integration => e2e}/tools/manual/server/handlers/test-case.cjs (100%) rename test/{integration => e2e}/tools/manual/server/handlers/tests.cjs (100%) rename test/{integration => e2e}/tools/manual/server/main.cjs (100%) rename test/{integration => e2e}/tools/manual/shared/test-case.js (100%) rename test/{integration => e2e}/utils/lastanimation.mjs (100%) rename test/{integration => e2e}/utils/mouse.mjs (100%) rename test/{integration => e2e}/utils/testcontrol.mjs (100%) rename test/{integration => e2e}/utils/vizzu-markerdropshadow.mjs (100%) rename test/{integration => e2e}/utils/vizzu-pptxgen.mjs (100%) rename test/{integration => e2e}/utils/vizzu-videocapture.mjs (100%) diff --git a/test/integration/accept-changes.cjs b/test/e2e/accept-changes.cjs similarity index 100% rename from test/integration/accept-changes.cjs rename to test/e2e/accept-changes.cjs diff --git a/test/integration/man.cjs b/test/e2e/man.cjs similarity index 100% rename from test/integration/man.cjs rename to test/e2e/man.cjs diff --git a/test/integration/modules/browser/browsers-chrome.cjs b/test/e2e/modules/browser/browsers-chrome.cjs similarity index 100% rename from test/integration/modules/browser/browsers-chrome.cjs rename to test/e2e/modules/browser/browsers-chrome.cjs diff --git a/test/integration/modules/browser/puppeteer-chrome.cjs b/test/e2e/modules/browser/puppeteer-chrome.cjs similarity index 100% rename from test/integration/modules/browser/puppeteer-chrome.cjs rename to test/e2e/modules/browser/puppeteer-chrome.cjs diff --git a/test/integration/modules/browser/selenium-chrome.cjs b/test/e2e/modules/browser/selenium-chrome.cjs similarity index 100% rename from test/integration/modules/browser/selenium-chrome.cjs rename to test/e2e/modules/browser/selenium-chrome.cjs diff --git a/test/integration/modules/console/assert.cjs b/test/e2e/modules/console/assert.cjs similarity index 100% rename from test/integration/modules/console/assert.cjs rename to test/e2e/modules/console/assert.cjs diff --git a/test/integration/modules/console/assert.test.cjs b/test/e2e/modules/console/assert.test.cjs similarity index 100% rename from test/integration/modules/console/assert.test.cjs rename to test/e2e/modules/console/assert.test.cjs diff --git a/test/integration/modules/console/console.cjs b/test/e2e/modules/console/console.cjs similarity index 100% rename from test/integration/modules/console/console.cjs rename to test/e2e/modules/console/console.cjs diff --git a/test/integration/modules/console/console.test.cjs b/test/e2e/modules/console/console.test.cjs similarity index 100% rename from test/integration/modules/console/console.test.cjs rename to test/e2e/modules/console/console.test.cjs diff --git a/test/integration/modules/img/imgdiff.js b/test/e2e/modules/img/imgdiff.js similarity index 100% rename from test/integration/modules/img/imgdiff.js rename to test/e2e/modules/img/imgdiff.js diff --git a/test/integration/modules/integration-test/client/index.html b/test/e2e/modules/integration-test/client/index.html similarity index 100% rename from test/integration/modules/integration-test/client/index.html rename to test/e2e/modules/integration-test/client/index.html diff --git a/test/integration/modules/integration-test/client/index.js b/test/e2e/modules/integration-test/client/index.js similarity index 100% rename from test/integration/modules/integration-test/client/index.js rename to test/e2e/modules/integration-test/client/index.js diff --git a/test/integration/modules/integration-test/test-case/test-case-result.cjs b/test/e2e/modules/integration-test/test-case/test-case-result.cjs similarity index 100% rename from test/integration/modules/integration-test/test-case/test-case-result.cjs rename to test/e2e/modules/integration-test/test-case/test-case-result.cjs diff --git a/test/integration/modules/integration-test/test-case/test-case.cjs b/test/e2e/modules/integration-test/test-case/test-case.cjs similarity index 100% rename from test/integration/modules/integration-test/test-case/test-case.cjs rename to test/e2e/modules/integration-test/test-case/test-case.cjs diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.cjs b/test/e2e/modules/integration-test/test-case/test-cases-config.cjs similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.cjs rename to test/e2e/modules/integration-test/test-case/test-cases-config.cjs diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test.cjs b/test/e2e/modules/integration-test/test-case/test-cases-config.test.cjs similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test.cjs rename to test/e2e/modules/integration-test/test-case/test-cases-config.test.cjs diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json diff --git a/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs b/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs rename to test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs diff --git a/test/integration/modules/integration-test/test-case/test-cases.cjs b/test/e2e/modules/integration-test/test-case/test-cases.cjs similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases.cjs rename to test/e2e/modules/integration-test/test-case/test-cases.cjs diff --git a/test/integration/modules/integration-test/test-case/test-cases.test.cjs b/test/e2e/modules/integration-test/test-case/test-cases.test.cjs similarity index 100% rename from test/integration/modules/integration-test/test-case/test-cases.test.cjs rename to test/e2e/modules/integration-test/test-case/test-cases.test.cjs diff --git a/test/integration/modules/integration-test/test-console.cjs b/test/e2e/modules/integration-test/test-console.cjs similarity index 100% rename from test/integration/modules/integration-test/test-console.cjs rename to test/e2e/modules/integration-test/test-console.cjs diff --git a/test/integration/modules/integration-test/test-console.test.cjs b/test/e2e/modules/integration-test/test-console.test.cjs similarity index 100% rename from test/integration/modules/integration-test/test-console.test.cjs rename to test/e2e/modules/integration-test/test-console.test.cjs diff --git a/test/integration/modules/integration-test/test-env.cjs b/test/e2e/modules/integration-test/test-env.cjs similarity index 100% rename from test/integration/modules/integration-test/test-env.cjs rename to test/e2e/modules/integration-test/test-env.cjs diff --git a/test/integration/modules/integration-test/test-env.test.cjs b/test/e2e/modules/integration-test/test-env.test.cjs similarity index 100% rename from test/integration/modules/integration-test/test-env.test.cjs rename to test/e2e/modules/integration-test/test-env.test.cjs diff --git a/test/integration/modules/integration-test/test-suite-result.cjs b/test/e2e/modules/integration-test/test-suite-result.cjs similarity index 100% rename from test/integration/modules/integration-test/test-suite-result.cjs rename to test/e2e/modules/integration-test/test-suite-result.cjs diff --git a/test/integration/modules/integration-test/test-suite.cjs b/test/e2e/modules/integration-test/test-suite.cjs similarity index 100% rename from test/integration/modules/integration-test/test-suite.cjs rename to test/e2e/modules/integration-test/test-suite.cjs diff --git a/test/integration/modules/jest.config.cjs b/test/e2e/modules/jest.config.cjs similarity index 100% rename from test/integration/modules/jest.config.cjs rename to test/e2e/modules/jest.config.cjs diff --git a/test/integration/modules/videorecorder/.gitignore b/test/e2e/modules/videorecorder/.gitignore similarity index 100% rename from test/integration/modules/videorecorder/.gitignore rename to test/e2e/modules/videorecorder/.gitignore diff --git a/test/integration/modules/videorecorder/client/index.html b/test/e2e/modules/videorecorder/client/index.html similarity index 100% rename from test/integration/modules/videorecorder/client/index.html rename to test/e2e/modules/videorecorder/client/index.html diff --git a/test/integration/modules/videorecorder/client/index.js b/test/e2e/modules/videorecorder/client/index.js similarity index 100% rename from test/integration/modules/videorecorder/client/index.js rename to test/e2e/modules/videorecorder/client/index.js diff --git a/test/integration/modules/videorecorder/client/videorecorder.js b/test/e2e/modules/videorecorder/client/videorecorder.js similarity index 100% rename from test/integration/modules/videorecorder/client/videorecorder.js rename to test/e2e/modules/videorecorder/client/videorecorder.js diff --git a/test/integration/modules/videorecorder/generate.cjs b/test/e2e/modules/videorecorder/generate.cjs similarity index 100% rename from test/integration/modules/videorecorder/generate.cjs rename to test/e2e/modules/videorecorder/generate.cjs diff --git a/test/integration/modules/videorecorder/resize.cjs b/test/e2e/modules/videorecorder/resize.cjs similarity index 100% rename from test/integration/modules/videorecorder/resize.cjs rename to test/e2e/modules/videorecorder/resize.cjs diff --git a/test/integration/modules/vizzu/vizzu-cloudfunctions.cjs b/test/e2e/modules/vizzu/vizzu-cloudfunctions.cjs similarity index 100% rename from test/integration/modules/vizzu/vizzu-cloudfunctions.cjs rename to test/e2e/modules/vizzu/vizzu-cloudfunctions.cjs diff --git a/test/integration/modules/vizzu/vizzu-cloudfunctions.test.cjs b/test/e2e/modules/vizzu/vizzu-cloudfunctions.test.cjs similarity index 100% rename from test/integration/modules/vizzu/vizzu-cloudfunctions.test.cjs rename to test/e2e/modules/vizzu/vizzu-cloudfunctions.test.cjs diff --git a/test/integration/modules/vizzu/vizzu-url.cjs b/test/e2e/modules/vizzu/vizzu-url.cjs similarity index 100% rename from test/integration/modules/vizzu/vizzu-url.cjs rename to test/e2e/modules/vizzu/vizzu-url.cjs diff --git a/test/integration/modules/vizzu/vizzu-url.test.cjs b/test/e2e/modules/vizzu/vizzu-url.test.cjs similarity index 100% rename from test/integration/modules/vizzu/vizzu-url.test.cjs rename to test/e2e/modules/vizzu/vizzu-url.test.cjs diff --git a/test/integration/modules/vizzu/vizzu-version-client/index.html b/test/e2e/modules/vizzu/vizzu-version-client/index.html similarity index 100% rename from test/integration/modules/vizzu/vizzu-version-client/index.html rename to test/e2e/modules/vizzu/vizzu-version-client/index.html diff --git a/test/integration/modules/vizzu/vizzu-version-client/index.js b/test/e2e/modules/vizzu/vizzu-version-client/index.js similarity index 100% rename from test/integration/modules/vizzu/vizzu-version-client/index.js rename to test/e2e/modules/vizzu/vizzu-version-client/index.js diff --git a/test/integration/modules/vizzu/vizzu-version.cjs b/test/e2e/modules/vizzu/vizzu-version.cjs similarity index 100% rename from test/integration/modules/vizzu/vizzu-version.cjs rename to test/e2e/modules/vizzu/vizzu-version.cjs diff --git a/test/integration/modules/workspace/workspace-host.cjs b/test/e2e/modules/workspace/workspace-host.cjs similarity index 100% rename from test/integration/modules/workspace/workspace-host.cjs rename to test/e2e/modules/workspace/workspace-host.cjs diff --git a/test/integration/modules/workspace/workspace-path.cjs b/test/e2e/modules/workspace/workspace-path.cjs similarity index 100% rename from test/integration/modules/workspace/workspace-path.cjs rename to test/e2e/modules/workspace/workspace-path.cjs diff --git a/test/integration/modules/workspace/workspace-path.test.cjs b/test/e2e/modules/workspace/workspace-path.test.cjs similarity index 100% rename from test/integration/modules/workspace/workspace-path.test.cjs rename to test/e2e/modules/workspace/workspace-path.test.cjs diff --git a/test/integration/test.cjs b/test/e2e/test.cjs similarity index 100% rename from test/integration/test.cjs rename to test/e2e/test.cjs diff --git a/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_horizontal.mjs b/test/e2e/test_cases/basic_animations/anim_order/circle_without_2_carte_horizontal.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_horizontal.mjs rename to test/e2e/test_cases/basic_animations/anim_order/circle_without_2_carte_horizontal.mjs diff --git a/test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_vertical.mjs b/test/e2e/test_cases/basic_animations/anim_order/circle_without_2_carte_vertical.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/anim_order/circle_without_2_carte_vertical.mjs rename to test/e2e/test_cases/basic_animations/anim_order/circle_without_2_carte_vertical.mjs diff --git a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_bar.mjs b/test/e2e/test_cases/basic_animations/anim_order/rectangle_without_2_carte_bar.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_bar.mjs rename to test/e2e/test_cases/basic_animations/anim_order/rectangle_without_2_carte_bar.mjs diff --git a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_column.mjs b/test/e2e/test_cases/basic_animations/anim_order/rectangle_without_2_carte_column.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_carte_column.mjs rename to test/e2e/test_cases/basic_animations/anim_order/rectangle_without_2_carte_column.mjs diff --git a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_bar.mjs b/test/e2e/test_cases/basic_animations/anim_order/rectangle_without_2_polar_bar.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_bar.mjs rename to test/e2e/test_cases/basic_animations/anim_order/rectangle_without_2_polar_bar.mjs diff --git a/test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_column.mjs b/test/e2e/test_cases/basic_animations/anim_order/rectangle_without_2_polar_column.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/anim_order/rectangle_without_2_polar_column.mjs rename to test/e2e/test_cases/basic_animations/anim_order/rectangle_without_2_polar_column.mjs diff --git a/test/integration/test_cases/basic_animations/coordsystems/area_carte_2_polar.mjs b/test/e2e/test_cases/basic_animations/coordsystems/area_carte_2_polar.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/coordsystems/area_carte_2_polar.mjs rename to test/e2e/test_cases/basic_animations/coordsystems/area_carte_2_polar.mjs diff --git a/test/integration/test_cases/basic_animations/coordsystems/circle_without_2_carte.mjs b/test/e2e/test_cases/basic_animations/coordsystems/circle_without_2_carte.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/coordsystems/circle_without_2_carte.mjs rename to test/e2e/test_cases/basic_animations/coordsystems/circle_without_2_carte.mjs diff --git a/test/integration/test_cases/basic_animations/coordsystems/rectangle_carte_2_polar.mjs b/test/e2e/test_cases/basic_animations/coordsystems/rectangle_carte_2_polar.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/coordsystems/rectangle_carte_2_polar.mjs rename to test/e2e/test_cases/basic_animations/coordsystems/rectangle_carte_2_polar.mjs diff --git a/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_carte.mjs b/test/e2e/test_cases/basic_animations/coordsystems/rectangle_without_2_carte.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_carte.mjs rename to test/e2e/test_cases/basic_animations/coordsystems/rectangle_without_2_carte.mjs diff --git a/test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_polar.mjs b/test/e2e/test_cases/basic_animations/coordsystems/rectangle_without_2_polar.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/coordsystems/rectangle_without_2_polar.mjs rename to test/e2e/test_cases/basic_animations/coordsystems/rectangle_without_2_polar.mjs diff --git a/test/integration/test_cases/basic_animations/labels/axis/circle_negative_2dis_3con.mjs b/test/e2e/test_cases/basic_animations/labels/axis/circle_negative_2dis_3con.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/labels/axis/circle_negative_2dis_3con.mjs rename to test/e2e/test_cases/basic_animations/labels/axis/circle_negative_2dis_3con.mjs diff --git a/test/integration/test_cases/basic_animations/labels/marker/area_2dis_3con.mjs b/test/e2e/test_cases/basic_animations/labels/marker/area_2dis_3con.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/labels/marker/area_2dis_3con.mjs rename to test/e2e/test_cases/basic_animations/labels/marker/area_2dis_3con.mjs diff --git a/test/integration/test_cases/basic_animations/labels/marker/circle_negative_2dis_3con.mjs b/test/e2e/test_cases/basic_animations/labels/marker/circle_negative_2dis_3con.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/labels/marker/circle_negative_2dis_3con.mjs rename to test/e2e/test_cases/basic_animations/labels/marker/circle_negative_2dis_3con.mjs diff --git a/test/integration/test_cases/basic_animations/labels/marker/line_2dis_3con.mjs b/test/e2e/test_cases/basic_animations/labels/marker/line_2dis_3con.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/labels/marker/line_2dis_3con.mjs rename to test/e2e/test_cases/basic_animations/labels/marker/line_2dis_3con.mjs diff --git a/test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs b/test/e2e/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs rename to test/e2e/test_cases/basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con.mjs diff --git a/test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs b/test/e2e/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs rename to test/e2e/test_cases/basic_animations/labels/marker/rectangle_negative_2dis_3con.mjs diff --git a/test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs b/test/e2e/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs rename to test/e2e/test_cases/basic_animations/labels/rectangle_labels_rotated_charts.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_2discrete_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/color_2discrete_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/color_2discrete_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/color_2discrete_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_conti_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/color_conti_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/color_conti_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/color_conti_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_conti_changes_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/color_conti_changes_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/color_conti_changes_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/color_conti_changes_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_conti_discrete_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/color_conti_discrete_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/color_conti_discrete_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/color_conti_discrete_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/color_discrete_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/color_discrete_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/color_discrete_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_discrete_changes_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/color_discrete_changes_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/color_discrete_changes_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/color_discrete_changes_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/color_off_on_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/color_off_on_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/color_off_on_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/color_off_on_series_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/color_off_on_series_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/color_off_on_series_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/color_off_on_series_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_2discrete_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/lightness_2discrete_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/lightness_2discrete_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/lightness_2discrete_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/lightness_conti_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/lightness_conti_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_discrete_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/lightness_conti_discrete_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/lightness_conti_discrete_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/lightness_conti_discrete_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_discrete_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/lightness_discrete_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/lightness_discrete_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/lightness_discrete_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/lightness_on_off_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/lightness_on_off_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/lightness_on_off_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/lightness_on_off_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_2discrete_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/size_2discrete_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/size_2discrete_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/size_2discrete_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_conti_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/size_conti_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/size_conti_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/size_conti_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_conti_discrete_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/size_conti_discrete_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/size_conti_discrete_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/size_conti_discrete_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_discrete_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/size_discrete_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/size_discrete_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/size_discrete_anim.mjs diff --git a/test/integration/test_cases/basic_animations/legend_transitions/size_on_off_anim.mjs b/test/e2e/test_cases/basic_animations/legend_transitions/size_on_off_anim.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/legend_transitions/size_on_off_anim.mjs rename to test/e2e/test_cases/basic_animations/legend_transitions/size_on_off_anim.mjs diff --git a/test/integration/test_cases/basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs b/test/e2e/test_cases/basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs rename to test/e2e/test_cases/basic_animations/markers_morph/marker_trans_neg_1dis_1con.mjs diff --git a/test/integration/test_cases/basic_animations/markers_morph/marker_trans_polar.mjs b/test/e2e/test_cases/basic_animations/markers_morph/marker_trans_polar.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/markers_morph/marker_trans_polar.mjs rename to test/e2e/test_cases/basic_animations/markers_morph/marker_trans_polar.mjs diff --git a/test/integration/test_cases/basic_animations/someOtherTests/merge_split_area_stream_2dis_1con.mjs b/test/e2e/test_cases/basic_animations/someOtherTests/merge_split_area_stream_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/someOtherTests/merge_split_area_stream_2dis_1con.mjs rename to test/e2e/test_cases/basic_animations/someOtherTests/merge_split_area_stream_2dis_1con.mjs diff --git a/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_bar.mjs b/test/e2e/test_cases/basic_animations/someOtherTests/total_time_area_bar.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/someOtherTests/total_time_area_bar.mjs rename to test/e2e/test_cases/basic_animations/someOtherTests/total_time_area_bar.mjs diff --git a/test/integration/test_cases/basic_animations/someOtherTests/total_time_area_column.mjs b/test/e2e/test_cases/basic_animations/someOtherTests/total_time_area_column.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/someOtherTests/total_time_area_column.mjs rename to test/e2e/test_cases/basic_animations/someOtherTests/total_time_area_column.mjs diff --git a/test/integration/test_cases/basic_animations/someOtherTests/total_time_bar_line.mjs b/test/e2e/test_cases/basic_animations/someOtherTests/total_time_bar_line.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/someOtherTests/total_time_bar_line.mjs rename to test/e2e/test_cases/basic_animations/someOtherTests/total_time_bar_line.mjs diff --git a/test/integration/test_cases/basic_animations/someOtherTests/total_time_column_line.mjs b/test/e2e/test_cases/basic_animations/someOtherTests/total_time_column_line.mjs similarity index 100% rename from test/integration/test_cases/basic_animations/someOtherTests/total_time_column_line.mjs rename to test/e2e/test_cases/basic_animations/someOtherTests/total_time_column_line.mjs diff --git a/test/integration/test_cases/chart_precision/area_negative_x.mjs b/test/e2e/test_cases/chart_precision/area_negative_x.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/area_negative_x.mjs rename to test/e2e/test_cases/chart_precision/area_negative_x.mjs diff --git a/test/integration/test_cases/chart_precision/area_negative_y.mjs b/test/e2e/test_cases/chart_precision/area_negative_y.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/area_negative_y.mjs rename to test/e2e/test_cases/chart_precision/area_negative_y.mjs diff --git a/test/integration/test_cases/chart_precision/area_x.mjs b/test/e2e/test_cases/chart_precision/area_x.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/area_x.mjs rename to test/e2e/test_cases/chart_precision/area_x.mjs diff --git a/test/integration/test_cases/chart_precision/area_y.mjs b/test/e2e/test_cases/chart_precision/area_y.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/area_y.mjs rename to test/e2e/test_cases/chart_precision/area_y.mjs diff --git a/test/integration/test_cases/chart_precision/bubble.mjs b/test/e2e/test_cases/chart_precision/bubble.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/bubble.mjs rename to test/e2e/test_cases/chart_precision/bubble.mjs diff --git a/test/integration/test_cases/chart_precision/circle.mjs b/test/e2e/test_cases/chart_precision/circle.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/circle.mjs rename to test/e2e/test_cases/chart_precision/circle.mjs diff --git a/test/integration/test_cases/chart_precision/circle_negative.mjs b/test/e2e/test_cases/chart_precision/circle_negative.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/circle_negative.mjs rename to test/e2e/test_cases/chart_precision/circle_negative.mjs diff --git a/test/integration/test_cases/chart_precision/column_color_gradient.mjs b/test/e2e/test_cases/chart_precision/column_color_gradient.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/column_color_gradient.mjs rename to test/e2e/test_cases/chart_precision/column_color_gradient.mjs diff --git a/test/integration/test_cases/chart_precision/column_lightness.mjs b/test/e2e/test_cases/chart_precision/column_lightness.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/column_lightness.mjs rename to test/e2e/test_cases/chart_precision/column_lightness.mjs diff --git a/test/integration/test_cases/chart_precision/line_negative_x.mjs b/test/e2e/test_cases/chart_precision/line_negative_x.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/line_negative_x.mjs rename to test/e2e/test_cases/chart_precision/line_negative_x.mjs diff --git a/test/integration/test_cases/chart_precision/line_negative_y.mjs b/test/e2e/test_cases/chart_precision/line_negative_y.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/line_negative_y.mjs rename to test/e2e/test_cases/chart_precision/line_negative_y.mjs diff --git a/test/integration/test_cases/chart_precision/line_x.mjs b/test/e2e/test_cases/chart_precision/line_x.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/line_x.mjs rename to test/e2e/test_cases/chart_precision/line_x.mjs diff --git a/test/integration/test_cases/chart_precision/line_y.mjs b/test/e2e/test_cases/chart_precision/line_y.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/line_y.mjs rename to test/e2e/test_cases/chart_precision/line_y.mjs diff --git a/test/integration/test_cases/chart_precision/rectangle_negative_x.mjs b/test/e2e/test_cases/chart_precision/rectangle_negative_x.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/rectangle_negative_x.mjs rename to test/e2e/test_cases/chart_precision/rectangle_negative_x.mjs diff --git a/test/integration/test_cases/chart_precision/rectangle_negative_y.mjs b/test/e2e/test_cases/chart_precision/rectangle_negative_y.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/rectangle_negative_y.mjs rename to test/e2e/test_cases/chart_precision/rectangle_negative_y.mjs diff --git a/test/integration/test_cases/chart_precision/rectangle_x.mjs b/test/e2e/test_cases/chart_precision/rectangle_x.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/rectangle_x.mjs rename to test/e2e/test_cases/chart_precision/rectangle_x.mjs diff --git a/test/integration/test_cases/chart_precision/rectangle_y.mjs b/test/e2e/test_cases/chart_precision/rectangle_y.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/rectangle_y.mjs rename to test/e2e/test_cases/chart_precision/rectangle_y.mjs diff --git a/test/integration/test_cases/chart_precision/treemap.mjs b/test/e2e/test_cases/chart_precision/treemap.mjs similarity index 100% rename from test/integration/test_cases/chart_precision/treemap.mjs rename to test/e2e/test_cases/chart_precision/treemap.mjs diff --git a/test/integration/test_cases/color_palettes/color_conti_gradient.mjs b/test/e2e/test_cases/color_palettes/color_conti_gradient.mjs similarity index 100% rename from test/integration/test_cases/color_palettes/color_conti_gradient.mjs rename to test/e2e/test_cases/color_palettes/color_conti_gradient.mjs diff --git a/test/integration/test_cases/data_fault_and_formats/column_rectangle_less_disc.mjs b/test/e2e/test_cases/data_fault_and_formats/column_rectangle_less_disc.mjs similarity index 100% rename from test/integration/test_cases/data_fault_and_formats/column_rectangle_less_disc.mjs rename to test/e2e/test_cases/data_fault_and_formats/column_rectangle_less_disc.mjs diff --git a/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_conti.mjs b/test/e2e/test_cases/data_fault_and_formats/column_rectangle_more_conti.mjs similarity index 100% rename from test/integration/test_cases/data_fault_and_formats/column_rectangle_more_conti.mjs rename to test/e2e/test_cases/data_fault_and_formats/column_rectangle_more_conti.mjs diff --git a/test/integration/test_cases/data_fault_and_formats/column_rectangle_more_disc.mjs b/test/e2e/test_cases/data_fault_and_formats/column_rectangle_more_disc.mjs similarity index 100% rename from test/integration/test_cases/data_fault_and_formats/column_rectangle_more_disc.mjs rename to test/e2e/test_cases/data_fault_and_formats/column_rectangle_more_disc.mjs diff --git a/test/integration/test_cases/data_fault_and_formats/rectangle_data_cube.mjs b/test/e2e/test_cases/data_fault_and_formats/rectangle_data_cube.mjs similarity index 100% rename from test/integration/test_cases/data_fault_and_formats/rectangle_data_cube.mjs rename to test/e2e/test_cases/data_fault_and_formats/rectangle_data_cube.mjs diff --git a/test/integration/test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs b/test/e2e/test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/lay_out/full_coxcomb_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/lay_out/full_line_negative_2dis_1con.mjs b/test/e2e/test_cases/lay_out/full_line_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/lay_out/full_line_negative_2dis_1con.mjs rename to test/e2e/test_cases/lay_out/full_line_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs b/test/e2e/test_cases/lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/lay_out/legend_plot_coxcomb_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs b/test/e2e/test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs rename to test/e2e/test_cases/lay_out/legend_plot_line_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs b/test/e2e/test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/lay_out/plot_coxcomb_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/lay_out/plot_line_negative_2dis_1con.mjs b/test/e2e/test_cases/lay_out/plot_line_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/lay_out/plot_line_negative_2dis_1con.mjs rename to test/e2e/test_cases/lay_out/plot_line_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs b/test/e2e/test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/lay_out/title_plot_coxcomb_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs b/test/e2e/test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs rename to test/e2e/test_cases/lay_out/title_plot_line_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/operations/all_operations.mjs b/test/e2e/test_cases/operations/all_operations.mjs similarity index 100% rename from test/integration/test_cases/operations/all_operations.mjs rename to test/e2e/test_cases/operations/all_operations.mjs diff --git a/test/integration/test_cases/operations/all_operations_sizeing.mjs b/test/e2e/test_cases/operations/all_operations_sizeing.mjs similarity index 100% rename from test/integration/test_cases/operations/all_operations_sizeing.mjs rename to test/e2e/test_cases/operations/all_operations_sizeing.mjs diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate.mjs b/test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate.mjs similarity index 100% rename from test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate.mjs rename to test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate.mjs diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate.mjs b/test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate.mjs similarity index 100% rename from test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate.mjs rename to test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate.mjs diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble.mjs b/test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble.mjs similarity index 100% rename from test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble.mjs rename to test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/circle_drilldown_aggregate_bubble.mjs diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x.mjs b/test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x.mjs similarity index 100% rename from test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x.mjs rename to test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_x.mjs diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y.mjs b/test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y.mjs similarity index 100% rename from test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y.mjs rename to test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/line_drilldown_aggregate_y.mjs diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X.mjs b/test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X.mjs similarity index 100% rename from test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X.mjs rename to test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_X.mjs diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y.mjs b/test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y.mjs similarity index 100% rename from test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y.mjs rename to test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_Y.mjs diff --git a/test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap.mjs b/test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap.mjs similarity index 100% rename from test/integration/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap.mjs rename to test/e2e/test_cases/operations/drilldown_aggregate_tutorial_data/rectangle_drilldown_aggregate_treemap.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/area_filter_x.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/area_filter_x.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/area_filter_x.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/area_filter_x.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/area_filter_y.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/area_filter_y.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/area_filter_y.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/area_filter_y.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/circle_filter.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/circle_filter.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/circle_filter.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/circle_filter.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/circle_filter_bubble.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/circle_filter_bubble.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/circle_filter_bubble.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/circle_filter_bubble.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/filter_off_anim.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/filter_off_anim.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/filter_off_anim.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/filter_off_anim.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/line_filter_x.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/line_filter_x.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/line_filter_x.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/line_filter_x.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/line_filter_y.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/line_filter_y.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/line_filter_y.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/line_filter_y.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_treemap.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/rectangle_filter_treemap.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_treemap.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/rectangle_filter_treemap.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_x.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/rectangle_filter_x.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_x.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/rectangle_filter_x.mjs diff --git a/test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_y.mjs b/test/e2e/test_cases/operations/filter_tutorial_data/rectangle_filter_y.mjs similarity index 100% rename from test/integration/test_cases/operations/filter_tutorial_data/rectangle_filter_y.mjs rename to test/e2e/test_cases/operations/filter_tutorial_data/rectangle_filter_y.mjs diff --git a/test/integration/test_cases/operations/group_stack_tutorial_data/area_group_stack.mjs b/test/e2e/test_cases/operations/group_stack_tutorial_data/area_group_stack.mjs similarity index 100% rename from test/integration/test_cases/operations/group_stack_tutorial_data/area_group_stack.mjs rename to test/e2e/test_cases/operations/group_stack_tutorial_data/area_group_stack.mjs diff --git a/test/integration/test_cases/operations/group_stack_tutorial_data/bubble_group_stack.mjs b/test/e2e/test_cases/operations/group_stack_tutorial_data/bubble_group_stack.mjs similarity index 100% rename from test/integration/test_cases/operations/group_stack_tutorial_data/bubble_group_stack.mjs rename to test/e2e/test_cases/operations/group_stack_tutorial_data/bubble_group_stack.mjs diff --git a/test/integration/test_cases/operations/group_stack_tutorial_data/line_group_stack.mjs b/test/e2e/test_cases/operations/group_stack_tutorial_data/line_group_stack.mjs similarity index 100% rename from test/integration/test_cases/operations/group_stack_tutorial_data/line_group_stack.mjs rename to test/e2e/test_cases/operations/group_stack_tutorial_data/line_group_stack.mjs diff --git a/test/integration/test_cases/operations/group_stack_tutorial_data/treemap_group_stack.mjs b/test/e2e/test_cases/operations/group_stack_tutorial_data/treemap_group_stack.mjs similarity index 100% rename from test/integration/test_cases/operations/group_stack_tutorial_data/treemap_group_stack.mjs rename to test/e2e/test_cases/operations/group_stack_tutorial_data/treemap_group_stack.mjs diff --git a/test/integration/test_cases/operations/histogram_2_drilldown_negative_1dis_1con.mjs b/test/e2e/test_cases/operations/histogram_2_drilldown_negative_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/operations/histogram_2_drilldown_negative_1dis_1con.mjs rename to test/e2e/test_cases/operations/histogram_2_drilldown_negative_1dis_1con.mjs diff --git a/test/integration/test_cases/operations/orientation_tutorial_data/area_orientation.mjs b/test/e2e/test_cases/operations/orientation_tutorial_data/area_orientation.mjs similarity index 100% rename from test/integration/test_cases/operations/orientation_tutorial_data/area_orientation.mjs rename to test/e2e/test_cases/operations/orientation_tutorial_data/area_orientation.mjs diff --git a/test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs b/test/e2e/test_cases/operations/orientation_tutorial_data/line_orientation.mjs similarity index 100% rename from test/integration/test_cases/operations/orientation_tutorial_data/line_orientation.mjs rename to test/e2e/test_cases/operations/orientation_tutorial_data/line_orientation.mjs diff --git a/test/integration/test_cases/operations/orientation_tutorial_data/rectangle_orientation.mjs b/test/e2e/test_cases/operations/orientation_tutorial_data/rectangle_orientation.mjs similarity index 100% rename from test/integration/test_cases/operations/orientation_tutorial_data/rectangle_orientation.mjs rename to test/e2e/test_cases/operations/orientation_tutorial_data/rectangle_orientation.mjs diff --git a/test/integration/test_cases/operations/split_merge_tutorial_data/area_split_merge.mjs b/test/e2e/test_cases/operations/split_merge_tutorial_data/area_split_merge.mjs similarity index 100% rename from test/integration/test_cases/operations/split_merge_tutorial_data/area_split_merge.mjs rename to test/e2e/test_cases/operations/split_merge_tutorial_data/area_split_merge.mjs diff --git a/test/integration/test_cases/operations/split_merge_tutorial_data/circle_split_merge.mjs b/test/e2e/test_cases/operations/split_merge_tutorial_data/circle_split_merge.mjs similarity index 100% rename from test/integration/test_cases/operations/split_merge_tutorial_data/circle_split_merge.mjs rename to test/e2e/test_cases/operations/split_merge_tutorial_data/circle_split_merge.mjs diff --git a/test/integration/test_cases/operations/split_merge_tutorial_data/line_split_merge.mjs b/test/e2e/test_cases/operations/split_merge_tutorial_data/line_split_merge.mjs similarity index 100% rename from test/integration/test_cases/operations/split_merge_tutorial_data/line_split_merge.mjs rename to test/e2e/test_cases/operations/split_merge_tutorial_data/line_split_merge.mjs diff --git a/test/integration/test_cases/operations/split_merge_tutorial_data/rectangle_split_merge.mjs b/test/e2e/test_cases/operations/split_merge_tutorial_data/rectangle_split_merge.mjs similarity index 100% rename from test/integration/test_cases/operations/split_merge_tutorial_data/rectangle_split_merge.mjs rename to test/e2e/test_cases/operations/split_merge_tutorial_data/rectangle_split_merge.mjs diff --git a/test/integration/test_cases/shorthands/column_shorthands.mjs b/test/e2e/test_cases/shorthands/column_shorthands.mjs similarity index 100% rename from test/integration/test_cases/shorthands/column_shorthands.mjs rename to test/e2e/test_cases/shorthands/column_shorthands.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/area_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_negative_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/area_negative_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/area_negative_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/area_negative_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/bar_rectangle_negative_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/bar_stacked_rectangle_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/column_grouped_rectangle_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/histogram_rectangle_negative_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/icicle_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/line_negative_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/line_negative_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/line_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/line_negative_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/line_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/marimekko_rectangle_2dis_2con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_1dis_2con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/scatterplot_circle_negative_2dis_3con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con.mjs diff --git a/test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/cartesian_coo_sys/waterfall_rectangle_negative_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_area_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/NO_spiderweb_line_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/coxcomb_rectangle_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/coxcomb_stacked_rectangle_2dis_2con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/radial_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/radial_stacked_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/spiderweb_area_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/spiderweb_line_1dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con.mjs b/test/e2e/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con.mjs rename to test/e2e/test_cases/static_chart_types/polar_coo_sys/sunburst_rectangle_2dis_2con.mjs diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_1dis_2con.mjs b/test/e2e/test_cases/static_chart_types/without_coo_sys/bubble_circle_1dis_2con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_1dis_2con.mjs rename to test/e2e/test_cases/static_chart_types/without_coo_sys/bubble_circle_1dis_2con.mjs diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_2con.mjs b/test/e2e/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_2con.mjs rename to test/e2e/test_cases/static_chart_types/without_coo_sys/bubble_circle_2dis_2con.mjs diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con.mjs b/test/e2e/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con.mjs b/test/e2e/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con.mjs rename to test/e2e/test_cases/static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con.mjs diff --git a/test/integration/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json similarity index 100% rename from test/integration/test_cases/test_cases.json rename to test/e2e/test_cases/test_cases.json diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_polar_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/change_dimension/area_polar_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/change_dimension/area_polar_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/change_dimension/area_polar_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/area_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/change_dimension/area_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/change_dimension/area_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/change_dimension/area_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/column_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/change_dimension/column_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/change_dimension/column_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/change_dimension/column_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/change_dimension/dotplot_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/change_dimension/dotplot_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/change_dimension/dotplot_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/change_dimension/dotplot_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_polar.mjs b/test/e2e/test_cases/web_content/analytical_operations/change_dimension/dotplot_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/change_dimension/dotplot_polar.mjs rename to test/e2e/test_cases/web_content/analytical_operations/change_dimension/dotplot_polar.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/line.mjs b/test/e2e/test_cases/web_content/analytical_operations/change_dimension/line.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/change_dimension/line.mjs rename to test/e2e/test_cases/web_content/analytical_operations/change_dimension/line.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/change_dimension/line_polar.mjs b/test/e2e/test_cases/web_content/analytical_operations/change_dimension/line_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/change_dimension/line_polar.mjs rename to test/e2e/test_cases/web_content/analytical_operations/change_dimension/line_polar.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_100percent_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/area_100percent_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/area_100percent_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/area_100percent_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_split.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/area_polar_split.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/area_polar_split.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/area_polar_split.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_polar_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/area_polar_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/area_polar_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/area_polar_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_split_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/area_split_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/area_split_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/area_split_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/area_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/area_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/area_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/area_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_100percent_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/column_100percent_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/column_100percent_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/column_100percent_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/column_groupped_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/column_groupped_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/column_groupped_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/column_groupped_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/column_groupped_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/column_split_stacked_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/column_split_stacked_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/column_split_stacked_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/column_split_stacked_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/column_split_stacked_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/column_stacked_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/column_stacked_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/column_stacked_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/column_stacked_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/column_stacked_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/coxcomb_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/coxcomb_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/coxcomb_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/coxcomb_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/coxcomb_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/line.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/line.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/line.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/line.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/line_polar.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/line_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/line_polar.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/line_polar.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/compare/waterfall.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/waterfall.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/compare/waterfall.mjs rename to test/e2e/test_cases/web_content/analytical_operations/compare/waterfall.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_area_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_area_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_area_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_area_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_column_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_column_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_column_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_column_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_coxcomb.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_coxcomb.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_coxcomb.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_coxcomb.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_dotplot.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_dotplot.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_dotplot.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_dotplot.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot_split.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot_split.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot_split.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_scatterplot_split.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_treemap_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_treemap_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/existingmeasure_treemap_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/existingmeasure_treemap_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_column.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_column.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_split_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_column_split_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_split_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_column_split_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_column_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_column_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_column_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_3.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_3.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_3.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_3.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_4.mjs b/test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_4.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_4.mjs rename to test/e2e/test_cases/web_content/analytical_operations/distribute/newmeasure_dotplot_4.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/area.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/area.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/area.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/area.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/area_polar.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/area_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/area_polar.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/area_polar.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/bubble_and_distribution.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/bubble_and_distribution.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/bubble_and_distribution.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/bubble_and_distribution.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/column_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/column_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/column_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/column_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/column_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/column_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_3.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/column_3.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/column_3.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/column_3.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_4.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/column_4.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/column_4.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/column_4.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/column_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/column_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/column_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/column_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/donut.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/donut.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/donut.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/donut.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/line_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/line_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/line_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/line_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/line_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/line_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/line_polar_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/line_polar_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/line_polar_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/line_polar_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/line_polar_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/radial.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/radial.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/radial.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/radial.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/drilldown/scatterplot.mjs b/test/e2e/test_cases/web_content/analytical_operations/drilldown/scatterplot.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/drilldown/scatterplot.mjs rename to test/e2e/test_cases/web_content/analytical_operations/drilldown/scatterplot.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/area_polar_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/filter/area_polar_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/filter/area_polar_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/filter/area_polar_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/area_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/filter/area_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/filter/area_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/filter/area_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/line.mjs b/test/e2e/test_cases/web_content/analytical_operations/filter/line.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/filter/line.mjs rename to test/e2e/test_cases/web_content/analytical_operations/filter/line.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/line_polar.mjs b/test/e2e/test_cases/web_content/analytical_operations/filter/line_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/filter/line_polar.mjs rename to test/e2e/test_cases/web_content/analytical_operations/filter/line_polar.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/filter/stream_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/filter/stream_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/filter/stream_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/filter/stream_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/filter/stream_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/filter/stream_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/misc/donut_to_coxcomb.mjs b/test/e2e/test_cases/web_content/analytical_operations/misc/donut_to_coxcomb.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/misc/donut_to_coxcomb.mjs rename to test/e2e/test_cases/web_content/analytical_operations/misc/donut_to_coxcomb.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/misc/make_space_with_polar.mjs b/test/e2e/test_cases/web_content/analytical_operations/misc/make_space_with_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/misc/make_space_with_polar.mjs rename to test/e2e/test_cases/web_content/analytical_operations/misc/make_space_with_polar.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/misc/orientation_marimekko.mjs b/test/e2e/test_cases/web_content/analytical_operations/misc/orientation_marimekko.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/misc/orientation_marimekko.mjs rename to test/e2e/test_cases/web_content/analytical_operations/misc/orientation_marimekko.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/misc/pie_to_donut.mjs b/test/e2e/test_cases/web_content/analytical_operations/misc/pie_to_donut.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/misc/pie_to_donut.mjs rename to test/e2e/test_cases/web_content/analytical_operations/misc/pie_to_donut.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/split/area_polar_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/split/area_polar_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/split/area_polar_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/split/area_polar_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/split/area_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/split/area_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/split/area_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/split/area_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/split/column_100percent_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/split/column_100percent_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/split/column_100percent_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/split/column_100percent_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/split/column_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/split/column_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/split/column_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/split/column_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/split/coxcomb.mjs b/test/e2e/test_cases/web_content/analytical_operations/split/coxcomb.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/split/coxcomb.mjs rename to test/e2e/test_cases/web_content/analytical_operations/split/coxcomb.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/split/radial_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/split/radial_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/split/radial_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/split/radial_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/split/scatterplot_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/split/scatterplot_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/split/scatterplot_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/split/scatterplot_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/split/scatterplot_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/split/scatterplot_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/split/scatterplot_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/area_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/area_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/area_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/area_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_groupped.mjs b/test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/column_groupped.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_groupped.mjs rename to test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/column_groupped.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_split_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/column_split_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_split_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/column_split_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/column_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/column_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/column_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/line.mjs b/test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/line.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/stretch_to_proportion/line.mjs rename to test/e2e/test_cases/web_content/analytical_operations/stretch_to_proportion/line.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_100percent_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/area_100percent_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/area_100percent_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/area_100percent_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_split.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/area_polar_split.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/area_polar_split.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/area_polar_split.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_polar_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/area_polar_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/area_polar_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/area_polar_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_split.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/area_split.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/area_split.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/area_split.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/area_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/area_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/area_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/area_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubble.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/bubble.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/bubble.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/bubble.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_column.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/bubble_to_column.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_column.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/bubble_to_column.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_coxcomb.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/bubble_to_coxcomb.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_coxcomb.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/bubble_to_coxcomb.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_radial.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/bubble_to_radial.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/bubble_to_radial.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/bubble_to_radial.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/bubbleplot_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/bubbleplot_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/bubbleplot_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/bubbleplot_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_to_radial.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/bubbleplot_to_radial.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/bubbleplot_to_radial.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/bubbleplot_to_radial.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/column_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/column_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/column_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_100percent_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/column_100percent_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/column_100percent_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/column_100percent_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/column_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/column_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/column_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_groupped.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/column_groupped.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/column_groupped.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/column_groupped.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_split_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/column_split_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/column_split_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/column_split_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/column_stacked_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/column_stacked_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/column_stacked_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/column_stacked_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/column_stacked_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_to_bar.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/column_to_bar.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/column_to_bar.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/column_to_bar.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/column_to_waterfall.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/column_to_waterfall.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/column_to_waterfall.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/column_to_waterfall.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/coxcomb_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/coxcomb_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/coxcomb_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/coxcomb_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_split.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/coxcomb_split.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/coxcomb_split.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/coxcomb_split.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/dotplot.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/dotplot.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/dotplot.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/dotplot.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/line_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/line_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/line_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/line_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/line_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/line_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/line_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/line_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/line_polar_1.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/line_polar_1.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/line_polar_1.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/line_polar_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/line_polar_2.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/line_polar_2.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/line_polar_2.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/scatterplot.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/scatterplot.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/scatterplot.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/scatterplot_polar.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/scatterplot_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/scatterplot_polar.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/scatterplot_polar.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs diff --git a/test/integration/test_cases/web_content/analytical_operations/sum/treemap.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/treemap.mjs similarity index 100% rename from test/integration/test_cases/web_content/analytical_operations/sum/treemap.mjs rename to test/e2e/test_cases/web_content/analytical_operations/sum/treemap.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/annotation_editor.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/annotation_editor.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/annotation_editor.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/annotation_editor.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/annotations.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/annotations.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/annotations.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/annotations.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/exploded_pie_chart.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/exploded_pie_chart.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/exploded_pie_chart.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/exploded_pie_chart.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/gant_chart.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/gant_chart.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/gant_chart.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/gant_chart.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/historgram.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/historgram.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/historgram.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/historgram.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/map.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/map.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/map.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/map.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/multilayer.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/multilayer.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/multilayer.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/multilayer.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/network_graph.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/network_graph.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/network_graph.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/network_graph.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/step_line_chart.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/step_line_chart.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/step_line_chart.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/step_line_chart.mjs diff --git a/test/integration/test_cases/web_content/cookbook/chart_types/trendline.mjs b/test/e2e/test_cases/web_content/cookbook/chart_types/trendline.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/chart_types/trendline.mjs rename to test/e2e/test_cases/web_content/cookbook/chart_types/trendline.mjs diff --git a/test/integration/test_cases/web_content/cookbook/data_source/csv_load.mjs b/test/e2e/test_cases/web_content/cookbook/data_source/csv_load.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/data_source/csv_load.mjs rename to test/e2e/test_cases/web_content/cookbook/data_source/csv_load.mjs diff --git a/test/integration/test_cases/web_content/cookbook/data_source/data_from_model.mjs b/test/e2e/test_cases/web_content/cookbook/data_source/data_from_model.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/data_source/data_from_model.mjs rename to test/e2e/test_cases/web_content/cookbook/data_source/data_from_model.mjs diff --git a/test/integration/test_cases/web_content/cookbook/data_source/data_from_model2.mjs b/test/e2e/test_cases/web_content/cookbook/data_source/data_from_model2.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/data_source/data_from_model2.mjs rename to test/e2e/test_cases/web_content/cookbook/data_source/data_from_model2.mjs diff --git a/test/integration/test_cases/web_content/cookbook/data_source/paint.mjs b/test/e2e/test_cases/web_content/cookbook/data_source/paint.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/data_source/paint.mjs rename to test/e2e/test_cases/web_content/cookbook/data_source/paint.mjs diff --git a/test/integration/test_cases/web_content/cookbook/data_source/realtime_data.mjs b/test/e2e/test_cases/web_content/cookbook/data_source/realtime_data.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/data_source/realtime_data.mjs rename to test/e2e/test_cases/web_content/cookbook/data_source/realtime_data.mjs diff --git a/test/integration/test_cases/web_content/cookbook/exports/animated_gif_export.mjs b/test/e2e/test_cases/web_content/cookbook/exports/animated_gif_export.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/exports/animated_gif_export.mjs rename to test/e2e/test_cases/web_content/cookbook/exports/animated_gif_export.mjs diff --git a/test/integration/test_cases/web_content/cookbook/exports/pptx-export.mjs b/test/e2e/test_cases/web_content/cookbook/exports/pptx-export.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/exports/pptx-export.mjs rename to test/e2e/test_cases/web_content/cookbook/exports/pptx-export.mjs diff --git a/test/integration/test_cases/web_content/cookbook/exports/video_export.mjs b/test/e2e/test_cases/web_content/cookbook/exports/video_export.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/exports/video_export.mjs rename to test/e2e/test_cases/web_content/cookbook/exports/video_export.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/data_selector_combobox.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/data_selector_combobox.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/data_selector_combobox.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/data_selector_combobox.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/filter_on_click.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/filter_on_click.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/filter_on_click.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/filter_on_click.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/filter_slider.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/filter_slider.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/filter_slider.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/filter_slider.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/fullscreen.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/fullscreen.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/fullscreen.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/fullscreen.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/marker_label_on_mouseon.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/marker_label_on_mouseon.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/marker_label_on_mouseon.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/marker_label_on_mouseon.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/mouse_scroll.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/mouse_scroll.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/mouse_scroll.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/mouse_scroll.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/mouse_wheel_zoom.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/mouse_wheel_zoom.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/mouse_wheel_zoom.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/mouse_wheel_zoom.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/range_slider_zoom.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/range_slider_zoom.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/range_slider_zoom.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/range_slider_zoom.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/seeker_slider.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/seeker_slider.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/seeker_slider.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/seeker_slider.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/swipe_to_seek.mjs diff --git a/test/integration/test_cases/web_content/cookbook/interactive/window_zoom.mjs b/test/e2e/test_cases/web_content/cookbook/interactive/window_zoom.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/interactive/window_zoom.mjs rename to test/e2e/test_cases/web_content/cookbook/interactive/window_zoom.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/3d_chart.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/3d_chart.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/3d_chart.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/3d_chart.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/background_image.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/background_image.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/background_image.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/background_image.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/custom_linetype.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/custom_linetype.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/custom_linetype.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/custom_linetype.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/custom_markers.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/custom_markers.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/custom_markers.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/custom_markers.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/dropshadow_on_marker.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/dropshadow_on_marker.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/dropshadow_on_marker.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/dropshadow_on_marker.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/gradient_on_marker.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/gradient_on_marker.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/gradient_on_marker.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/gradient_on_marker.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/grid_lines.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/grid_lines.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/grid_lines.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/grid_lines.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/image_axis_labels.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/image_axis_labels.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/image_axis_labels.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/image_axis_labels.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/motion_blur.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/motion_blur.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/motion_blur.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/motion_blur.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/random_gradient_pattern.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/random_gradient_pattern.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/random_gradient_pattern.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/random_gradient_pattern.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/rounded_bars.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/rounded_bars.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/rounded_bars.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/rounded_bars.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/smooth_line_chart.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/smooth_line_chart.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/smooth_line_chart.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/smooth_line_chart.mjs diff --git a/test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs rename to test/e2e/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs diff --git a/test/integration/test_cases/web_content/cookbook/responsive-size.mjs.bak b/test/e2e/test_cases/web_content/cookbook/responsive-size.mjs.bak similarity index 100% rename from test/integration/test_cases/web_content/cookbook/responsive-size.mjs.bak rename to test/e2e/test_cases/web_content/cookbook/responsive-size.mjs.bak diff --git a/test/integration/test_cases/web_content/cookbook/style/colorfilter.mjs b/test/e2e/test_cases/web_content/cookbook/style/colorfilter.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/style/colorfilter.mjs rename to test/e2e/test_cases/web_content/cookbook/style/colorfilter.mjs diff --git a/test/integration/test_cases/web_content/cookbook/style/d3_color_palette.mjs b/test/e2e/test_cases/web_content/cookbook/style/d3_color_palette.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/style/d3_color_palette.mjs rename to test/e2e/test_cases/web_content/cookbook/style/d3_color_palette.mjs diff --git a/test/integration/test_cases/web_content/cookbook/style/dark_theme.mjs b/test/e2e/test_cases/web_content/cookbook/style/dark_theme.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/style/dark_theme.mjs rename to test/e2e/test_cases/web_content/cookbook/style/dark_theme.mjs diff --git a/test/integration/test_cases/web_content/cookbook/style/highligh_markers.mjs b/test/e2e/test_cases/web_content/cookbook/style/highligh_markers.mjs similarity index 100% rename from test/integration/test_cases/web_content/cookbook/style/highligh_markers.mjs rename to test/e2e/test_cases/web_content/cookbook/style/highligh_markers.mjs diff --git a/test/integration/test_cases/web_content/infinite.mjs b/test/e2e/test_cases/web_content/infinite.mjs similarity index 100% rename from test/integration/test_cases/web_content/infinite.mjs rename to test/e2e/test_cases/web_content/infinite.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/area.mjs b/test/e2e/test_cases/web_content/presets/chart/area.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/area.mjs rename to test/e2e/test_cases/web_content/presets/chart/area.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/area_percentage.mjs b/test/e2e/test_cases/web_content/presets/chart/area_percentage.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/area_percentage.mjs rename to test/e2e/test_cases/web_content/presets/chart/area_percentage.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/area_splitted.mjs b/test/e2e/test_cases/web_content/presets/chart/area_splitted.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/area_splitted.mjs rename to test/e2e/test_cases/web_content/presets/chart/area_splitted.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/area_stacked.mjs b/test/e2e/test_cases/web_content/presets/chart/area_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/area_stacked.mjs rename to test/e2e/test_cases/web_content/presets/chart/area_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/bar.mjs b/test/e2e/test_cases/web_content/presets/chart/bar.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/bar.mjs rename to test/e2e/test_cases/web_content/presets/chart/bar.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/bar_grouped.mjs b/test/e2e/test_cases/web_content/presets/chart/bar_grouped.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/bar_grouped.mjs rename to test/e2e/test_cases/web_content/presets/chart/bar_grouped.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/bar_percentage.mjs b/test/e2e/test_cases/web_content/presets/chart/bar_percentage.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/bar_percentage.mjs rename to test/e2e/test_cases/web_content/presets/chart/bar_percentage.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/bar_radial.mjs b/test/e2e/test_cases/web_content/presets/chart/bar_radial.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/bar_radial.mjs rename to test/e2e/test_cases/web_content/presets/chart/bar_radial.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/bar_radial_stacked.mjs b/test/e2e/test_cases/web_content/presets/chart/bar_radial_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/bar_radial_stacked.mjs rename to test/e2e/test_cases/web_content/presets/chart/bar_radial_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/bar_splitted.mjs b/test/e2e/test_cases/web_content/presets/chart/bar_splitted.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/bar_splitted.mjs rename to test/e2e/test_cases/web_content/presets/chart/bar_splitted.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/bar_stacked.mjs b/test/e2e/test_cases/web_content/presets/chart/bar_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/bar_stacked.mjs rename to test/e2e/test_cases/web_content/presets/chart/bar_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/bubble.mjs b/test/e2e/test_cases/web_content/presets/chart/bubble.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/bubble.mjs rename to test/e2e/test_cases/web_content/presets/chart/bubble.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/bubble_stacked.mjs b/test/e2e/test_cases/web_content/presets/chart/bubble_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/bubble_stacked.mjs rename to test/e2e/test_cases/web_content/presets/chart/bubble_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/column.mjs b/test/e2e/test_cases/web_content/presets/chart/column.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/column.mjs rename to test/e2e/test_cases/web_content/presets/chart/column.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/column_grouped.mjs b/test/e2e/test_cases/web_content/presets/chart/column_grouped.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/column_grouped.mjs rename to test/e2e/test_cases/web_content/presets/chart/column_grouped.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/column_percentage.mjs b/test/e2e/test_cases/web_content/presets/chart/column_percentage.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/column_percentage.mjs rename to test/e2e/test_cases/web_content/presets/chart/column_percentage.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/column_polar.mjs b/test/e2e/test_cases/web_content/presets/chart/column_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/column_polar.mjs rename to test/e2e/test_cases/web_content/presets/chart/column_polar.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/column_polar_stacked.mjs b/test/e2e/test_cases/web_content/presets/chart/column_polar_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/column_polar_stacked.mjs rename to test/e2e/test_cases/web_content/presets/chart/column_polar_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/column_splitted.mjs b/test/e2e/test_cases/web_content/presets/chart/column_splitted.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/column_splitted.mjs rename to test/e2e/test_cases/web_content/presets/chart/column_splitted.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/column_stacked.mjs b/test/e2e/test_cases/web_content/presets/chart/column_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/column_stacked.mjs rename to test/e2e/test_cases/web_content/presets/chart/column_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/donut.mjs b/test/e2e/test_cases/web_content/presets/chart/donut.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/donut.mjs rename to test/e2e/test_cases/web_content/presets/chart/donut.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/donut_nested.mjs b/test/e2e/test_cases/web_content/presets/chart/donut_nested.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/donut_nested.mjs rename to test/e2e/test_cases/web_content/presets/chart/donut_nested.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/line.mjs b/test/e2e/test_cases/web_content/presets/chart/line.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/line.mjs rename to test/e2e/test_cases/web_content/presets/chart/line.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/line_polar.mjs b/test/e2e/test_cases/web_content/presets/chart/line_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/line_polar.mjs rename to test/e2e/test_cases/web_content/presets/chart/line_polar.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/line_vertical.mjs b/test/e2e/test_cases/web_content/presets/chart/line_vertical.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/line_vertical.mjs rename to test/e2e/test_cases/web_content/presets/chart/line_vertical.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/lollipop.mjs b/test/e2e/test_cases/web_content/presets/chart/lollipop.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/lollipop.mjs rename to test/e2e/test_cases/web_content/presets/chart/lollipop.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/marimekko.mjs b/test/e2e/test_cases/web_content/presets/chart/marimekko.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/marimekko.mjs rename to test/e2e/test_cases/web_content/presets/chart/marimekko.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/mekko_stacked.mjs b/test/e2e/test_cases/web_content/presets/chart/mekko_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/mekko_stacked.mjs rename to test/e2e/test_cases/web_content/presets/chart/mekko_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/pie.mjs b/test/e2e/test_cases/web_content/presets/chart/pie.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/pie.mjs rename to test/e2e/test_cases/web_content/presets/chart/pie.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/pie_variable_radius.mjs b/test/e2e/test_cases/web_content/presets/chart/pie_variable_radius.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/pie_variable_radius.mjs rename to test/e2e/test_cases/web_content/presets/chart/pie_variable_radius.mjs diff --git a/test/integration/test_cases/web_content/presets/chart/waterfall.mjs b/test/e2e/test_cases/web_content/presets/chart/waterfall.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/chart/waterfall.mjs rename to test/e2e/test_cases/web_content/presets/chart/waterfall.mjs diff --git a/test/integration/test_cases/web_content/presets/graph/stream.mjs b/test/e2e/test_cases/web_content/presets/graph/stream.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/graph/stream.mjs rename to test/e2e/test_cases/web_content/presets/graph/stream.mjs diff --git a/test/integration/test_cases/web_content/presets/graph/stream_vertical.mjs b/test/e2e/test_cases/web_content/presets/graph/stream_vertical.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/graph/stream_vertical.mjs rename to test/e2e/test_cases/web_content/presets/graph/stream_vertical.mjs diff --git a/test/integration/test_cases/web_content/presets/graph/violin.mjs b/test/e2e/test_cases/web_content/presets/graph/violin.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/graph/violin.mjs rename to test/e2e/test_cases/web_content/presets/graph/violin.mjs diff --git a/test/integration/test_cases/web_content/presets/graph/violin_vertical.mjs b/test/e2e/test_cases/web_content/presets/graph/violin_vertical.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/graph/violin_vertical.mjs rename to test/e2e/test_cases/web_content/presets/graph/violin_vertical.mjs diff --git a/test/integration/test_cases/web_content/presets/heatmap.mjs b/test/e2e/test_cases/web_content/presets/heatmap.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/heatmap.mjs rename to test/e2e/test_cases/web_content/presets/heatmap.mjs diff --git a/test/integration/test_cases/web_content/presets/plot/bubble.mjs b/test/e2e/test_cases/web_content/presets/plot/bubble.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/plot/bubble.mjs rename to test/e2e/test_cases/web_content/presets/plot/bubble.mjs diff --git a/test/integration/test_cases/web_content/presets/plot/scatter.mjs b/test/e2e/test_cases/web_content/presets/plot/scatter.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/plot/scatter.mjs rename to test/e2e/test_cases/web_content/presets/plot/scatter.mjs diff --git a/test/integration/test_cases/web_content/presets/plot/scatter_polar.mjs b/test/e2e/test_cases/web_content/presets/plot/scatter_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/plot/scatter_polar.mjs rename to test/e2e/test_cases/web_content/presets/plot/scatter_polar.mjs diff --git a/test/integration/test_cases/web_content/presets/treemap.mjs b/test/e2e/test_cases/web_content/presets/treemap.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/treemap.mjs rename to test/e2e/test_cases/web_content/presets/treemap.mjs diff --git a/test/integration/test_cases/web_content/presets/treemap_stacked.mjs b/test/e2e/test_cases/web_content/presets/treemap_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets/treemap_stacked.mjs rename to test/e2e/test_cases/web_content/presets/treemap_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets_config/chart/bar_radial.mjs b/test/e2e/test_cases/web_content/presets_config/chart/bar_radial.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets_config/chart/bar_radial.mjs rename to test/e2e/test_cases/web_content/presets_config/chart/bar_radial.mjs diff --git a/test/integration/test_cases/web_content/presets_config/chart/bar_radial_stacked.mjs b/test/e2e/test_cases/web_content/presets_config/chart/bar_radial_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets_config/chart/bar_radial_stacked.mjs rename to test/e2e/test_cases/web_content/presets_config/chart/bar_radial_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets_config/chart/bar_stacked.mjs b/test/e2e/test_cases/web_content/presets_config/chart/bar_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets_config/chart/bar_stacked.mjs rename to test/e2e/test_cases/web_content/presets_config/chart/bar_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets_config/chart/bubble_stacked.mjs b/test/e2e/test_cases/web_content/presets_config/chart/bubble_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets_config/chart/bubble_stacked.mjs rename to test/e2e/test_cases/web_content/presets_config/chart/bubble_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets_config/chart/column_polar.mjs b/test/e2e/test_cases/web_content/presets_config/chart/column_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets_config/chart/column_polar.mjs rename to test/e2e/test_cases/web_content/presets_config/chart/column_polar.mjs diff --git a/test/integration/test_cases/web_content/presets_config/chart/column_polar_stacked.mjs b/test/e2e/test_cases/web_content/presets_config/chart/column_polar_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets_config/chart/column_polar_stacked.mjs rename to test/e2e/test_cases/web_content/presets_config/chart/column_polar_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets_config/chart/column_stacked.mjs b/test/e2e/test_cases/web_content/presets_config/chart/column_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets_config/chart/column_stacked.mjs rename to test/e2e/test_cases/web_content/presets_config/chart/column_stacked.mjs diff --git a/test/integration/test_cases/web_content/presets_config/chart/pie_variable_radius.mjs b/test/e2e/test_cases/web_content/presets_config/chart/pie_variable_radius.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets_config/chart/pie_variable_radius.mjs rename to test/e2e/test_cases/web_content/presets_config/chart/pie_variable_radius.mjs diff --git a/test/integration/test_cases/web_content/presets_config/treemap.mjs b/test/e2e/test_cases/web_content/presets_config/treemap.mjs similarity index 100% rename from test/integration/test_cases/web_content/presets_config/treemap.mjs rename to test/e2e/test_cases/web_content/presets_config/treemap.mjs diff --git a/test/integration/test_cases/web_content/static/chart/area.mjs b/test/e2e/test_cases/web_content/static/chart/area.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/area.mjs rename to test/e2e/test_cases/web_content/static/chart/area.mjs diff --git a/test/integration/test_cases/web_content/static/chart/area_polar.mjs b/test/e2e/test_cases/web_content/static/chart/area_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/area_polar.mjs rename to test/e2e/test_cases/web_content/static/chart/area_polar.mjs diff --git a/test/integration/test_cases/web_content/static/chart/area_stacked.mjs b/test/e2e/test_cases/web_content/static/chart/area_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/area_stacked.mjs rename to test/e2e/test_cases/web_content/static/chart/area_stacked.mjs diff --git a/test/integration/test_cases/web_content/static/chart/bar.mjs b/test/e2e/test_cases/web_content/static/chart/bar.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/bar.mjs rename to test/e2e/test_cases/web_content/static/chart/bar.mjs diff --git a/test/integration/test_cases/web_content/static/chart/bar_radial.mjs b/test/e2e/test_cases/web_content/static/chart/bar_radial.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/bar_radial.mjs rename to test/e2e/test_cases/web_content/static/chart/bar_radial.mjs diff --git a/test/integration/test_cases/web_content/static/chart/bar_stacked_radial.mjs b/test/e2e/test_cases/web_content/static/chart/bar_stacked_radial.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/bar_stacked_radial.mjs rename to test/e2e/test_cases/web_content/static/chart/bar_stacked_radial.mjs diff --git a/test/integration/test_cases/web_content/static/chart/bubble.mjs b/test/e2e/test_cases/web_content/static/chart/bubble.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/bubble.mjs rename to test/e2e/test_cases/web_content/static/chart/bubble.mjs diff --git a/test/integration/test_cases/web_content/static/chart/bubble_stacked.mjs b/test/e2e/test_cases/web_content/static/chart/bubble_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/bubble_stacked.mjs rename to test/e2e/test_cases/web_content/static/chart/bubble_stacked.mjs diff --git a/test/integration/test_cases/web_content/static/chart/column.mjs b/test/e2e/test_cases/web_content/static/chart/column.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/column.mjs rename to test/e2e/test_cases/web_content/static/chart/column.mjs diff --git a/test/integration/test_cases/web_content/static/chart/column_grouped.mjs b/test/e2e/test_cases/web_content/static/chart/column_grouped.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/column_grouped.mjs rename to test/e2e/test_cases/web_content/static/chart/column_grouped.mjs diff --git a/test/integration/test_cases/web_content/static/chart/column_single_stacked.mjs b/test/e2e/test_cases/web_content/static/chart/column_single_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/column_single_stacked.mjs rename to test/e2e/test_cases/web_content/static/chart/column_single_stacked.mjs diff --git a/test/integration/test_cases/web_content/static/chart/column_stacked.mjs b/test/e2e/test_cases/web_content/static/chart/column_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/column_stacked.mjs rename to test/e2e/test_cases/web_content/static/chart/column_stacked.mjs diff --git a/test/integration/test_cases/web_content/static/chart/coxcomb.mjs b/test/e2e/test_cases/web_content/static/chart/coxcomb.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/coxcomb.mjs rename to test/e2e/test_cases/web_content/static/chart/coxcomb.mjs diff --git a/test/integration/test_cases/web_content/static/chart/donut.mjs b/test/e2e/test_cases/web_content/static/chart/donut.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/donut.mjs rename to test/e2e/test_cases/web_content/static/chart/donut.mjs diff --git a/test/integration/test_cases/web_content/static/chart/line.mjs b/test/e2e/test_cases/web_content/static/chart/line.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/line.mjs rename to test/e2e/test_cases/web_content/static/chart/line.mjs diff --git a/test/integration/test_cases/web_content/static/chart/line_polar.mjs b/test/e2e/test_cases/web_content/static/chart/line_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/line_polar.mjs rename to test/e2e/test_cases/web_content/static/chart/line_polar.mjs diff --git a/test/integration/test_cases/web_content/static/chart/line_single.mjs b/test/e2e/test_cases/web_content/static/chart/line_single.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/line_single.mjs rename to test/e2e/test_cases/web_content/static/chart/line_single.mjs diff --git a/test/integration/test_cases/web_content/static/chart/line_single_polar.mjs b/test/e2e/test_cases/web_content/static/chart/line_single_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/line_single_polar.mjs rename to test/e2e/test_cases/web_content/static/chart/line_single_polar.mjs diff --git a/test/integration/test_cases/web_content/static/chart/marimekko.mjs b/test/e2e/test_cases/web_content/static/chart/marimekko.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/marimekko.mjs rename to test/e2e/test_cases/web_content/static/chart/marimekko.mjs diff --git a/test/integration/test_cases/web_content/static/chart/mekko.mjs b/test/e2e/test_cases/web_content/static/chart/mekko.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/mekko.mjs rename to test/e2e/test_cases/web_content/static/chart/mekko.mjs diff --git a/test/integration/test_cases/web_content/static/chart/mekko_stacked.mjs b/test/e2e/test_cases/web_content/static/chart/mekko_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/mekko_stacked.mjs rename to test/e2e/test_cases/web_content/static/chart/mekko_stacked.mjs diff --git a/test/integration/test_cases/web_content/static/chart/pie.mjs b/test/e2e/test_cases/web_content/static/chart/pie.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/pie.mjs rename to test/e2e/test_cases/web_content/static/chart/pie.mjs diff --git a/test/integration/test_cases/web_content/static/chart/waterfall.mjs b/test/e2e/test_cases/web_content/static/chart/waterfall.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/chart/waterfall.mjs rename to test/e2e/test_cases/web_content/static/chart/waterfall.mjs diff --git a/test/integration/test_cases/web_content/static/graph/stream_stacked.mjs b/test/e2e/test_cases/web_content/static/graph/stream_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/graph/stream_stacked.mjs rename to test/e2e/test_cases/web_content/static/graph/stream_stacked.mjs diff --git a/test/integration/test_cases/web_content/static/histogram.mjs b/test/e2e/test_cases/web_content/static/histogram.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/histogram.mjs rename to test/e2e/test_cases/web_content/static/histogram.mjs diff --git a/test/integration/test_cases/web_content/static/plot/bubble.mjs b/test/e2e/test_cases/web_content/static/plot/bubble.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/plot/bubble.mjs rename to test/e2e/test_cases/web_content/static/plot/bubble.mjs diff --git a/test/integration/test_cases/web_content/static/plot/dot.mjs b/test/e2e/test_cases/web_content/static/plot/dot.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/plot/dot.mjs rename to test/e2e/test_cases/web_content/static/plot/dot.mjs diff --git a/test/integration/test_cases/web_content/static/plot/scatter.mjs b/test/e2e/test_cases/web_content/static/plot/scatter.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/plot/scatter.mjs rename to test/e2e/test_cases/web_content/static/plot/scatter.mjs diff --git a/test/integration/test_cases/web_content/static/treemap.mjs b/test/e2e/test_cases/web_content/static/treemap.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/treemap.mjs rename to test/e2e/test_cases/web_content/static/treemap.mjs diff --git a/test/integration/test_cases/web_content/static/treemap_stacked.mjs b/test/e2e/test_cases/web_content/static/treemap_stacked.mjs similarity index 100% rename from test/integration/test_cases/web_content/static/treemap_stacked.mjs rename to test/e2e/test_cases/web_content/static/treemap_stacked.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs b/test/e2e/test_cases/web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs rename to test/e2e/test_cases/web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con.mjs b/test/e2e/test_cases/web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con.mjs rename to test/e2e/test_cases/web_content_removed/animated/composition_comparison_waterfall_column_2dis_1con.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/composition_percentage_area_stream_3dis_1con.mjs b/test/e2e/test_cases/web_content_removed/animated/composition_percentage_area_stream_3dis_1con.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/composition_percentage_area_stream_3dis_1con.mjs rename to test/e2e/test_cases/web_content_removed/animated/composition_percentage_area_stream_3dis_1con.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_3dis_1con.mjs b/test/e2e/test_cases/web_content_removed/animated/composition_percentage_column_3dis_1con.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/composition_percentage_column_3dis_1con.mjs rename to test/e2e/test_cases/web_content_removed/animated/composition_percentage_column_3dis_1con.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/composition_percentage_column_stream_3dis_1con.mjs b/test/e2e/test_cases/web_content_removed/animated/composition_percentage_column_stream_3dis_1con.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/composition_percentage_column_stream_3dis_1con.mjs rename to test/e2e/test_cases/web_content_removed/animated/composition_percentage_column_stream_3dis_1con.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/distribution_relationship_dotplot_dotplot.mjs b/test/e2e/test_cases/web_content_removed/animated/distribution_relationship_dotplot_dotplot.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/distribution_relationship_dotplot_dotplot.mjs rename to test/e2e/test_cases/web_content_removed/animated/distribution_relationship_dotplot_dotplot.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/drill_aggreg_improve_line.mjs b/test/e2e/test_cases/web_content_removed/animated/drill_aggreg_improve_line.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/drill_aggreg_improve_line.mjs rename to test/e2e/test_cases/web_content_removed/animated/drill_aggreg_improve_line.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/drilldown_aggregate_line.mjs b/test/e2e/test_cases/web_content_removed/animated/drilldown_aggregate_line.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/drilldown_aggregate_line.mjs rename to test/e2e/test_cases/web_content_removed/animated/drilldown_aggregate_line.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/merge_split_area_stream_3dis_1con.mjs b/test/e2e/test_cases/web_content_removed/animated/merge_split_area_stream_3dis_1con.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/merge_split_area_stream_3dis_1con.mjs rename to test/e2e/test_cases/web_content_removed/animated/merge_split_area_stream_3dis_1con.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/merge_split_bar.mjs b/test/e2e/test_cases/web_content_removed/animated/merge_split_bar.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/merge_split_bar.mjs rename to test/e2e/test_cases/web_content_removed/animated/merge_split_bar.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs b/test/e2e/test_cases/web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/web_content_removed/animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/orientation_circle.mjs b/test/e2e/test_cases/web_content_removed/animated/orientation_circle.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/orientation_circle.mjs rename to test/e2e/test_cases/web_content_removed/animated/orientation_circle.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/orientation_dot_circle.mjs b/test/e2e/test_cases/web_content_removed/animated/orientation_dot_circle.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/orientation_dot_circle.mjs rename to test/e2e/test_cases/web_content_removed/animated/orientation_dot_circle.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con.mjs b/test/e2e/test_cases/web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con.mjs rename to test/e2e/test_cases/web_content_removed/animated/orientation_marimekko_rectangle_2dis_2con.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/orientation_rectangle.mjs b/test/e2e/test_cases/web_content_removed/animated/orientation_rectangle.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/orientation_rectangle.mjs rename to test/e2e/test_cases/web_content_removed/animated/orientation_rectangle.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/pie_donut2_rectangle_1dis_1con.mjs b/test/e2e/test_cases/web_content_removed/animated/pie_donut2_rectangle_1dis_1con.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/pie_donut2_rectangle_1dis_1con.mjs rename to test/e2e/test_cases/web_content_removed/animated/pie_donut2_rectangle_1dis_1con.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/relationship_comparison_circle_2_bubble_plot.mjs b/test/e2e/test_cases/web_content_removed/animated/relationship_comparison_circle_2_bubble_plot.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/relationship_comparison_circle_2_bubble_plot.mjs rename to test/e2e/test_cases/web_content_removed/animated/relationship_comparison_circle_2_bubble_plot.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/relationship_total_bubble_plot_column.mjs b/test/e2e/test_cases/web_content_removed/animated/relationship_total_bubble_plot_column.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/relationship_total_bubble_plot_column.mjs rename to test/e2e/test_cases/web_content_removed/animated/relationship_total_bubble_plot_column.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/stack_group_area_line.mjs b/test/e2e/test_cases/web_content_removed/animated/stack_group_area_line.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/stack_group_area_line.mjs rename to test/e2e/test_cases/web_content_removed/animated/stack_group_area_line.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/stack_group_circle.mjs b/test/e2e/test_cases/web_content_removed/animated/stack_group_circle.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/stack_group_circle.mjs rename to test/e2e/test_cases/web_content_removed/animated/stack_group_circle.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/stack_group_treemap.mjs b/test/e2e/test_cases/web_content_removed/animated/stack_group_treemap.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/stack_group_treemap.mjs rename to test/e2e/test_cases/web_content_removed/animated/stack_group_treemap.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/total_element_bubble_2_bar.mjs b/test/e2e/test_cases/web_content_removed/animated/total_element_bubble_2_bar.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/total_element_bubble_2_bar.mjs rename to test/e2e/test_cases/web_content_removed/animated/total_element_bubble_2_bar.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/total_element_bubble_column.mjs b/test/e2e/test_cases/web_content_removed/animated/total_element_bubble_column.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/total_element_bubble_column.mjs rename to test/e2e/test_cases/web_content_removed/animated/total_element_bubble_column.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/treemap_radial.mjs b/test/e2e/test_cases/web_content_removed/animated/treemap_radial.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/treemap_radial.mjs rename to test/e2e/test_cases/web_content_removed/animated/treemap_radial.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/zoom_area.mjs b/test/e2e/test_cases/web_content_removed/animated/zoom_area.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/zoom_area.mjs rename to test/e2e/test_cases/web_content_removed/animated/zoom_area.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/zoom_area_polar.mjs b/test/e2e/test_cases/web_content_removed/animated/zoom_area_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/zoom_area_polar.mjs rename to test/e2e/test_cases/web_content_removed/animated/zoom_area_polar.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/zoom_line.mjs b/test/e2e/test_cases/web_content_removed/animated/zoom_line.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/zoom_line.mjs rename to test/e2e/test_cases/web_content_removed/animated/zoom_line.mjs diff --git a/test/integration/test_cases/web_content_removed/animated/zoom_line_polar.mjs b/test/e2e/test_cases/web_content_removed/animated/zoom_line_polar.mjs similarity index 100% rename from test/integration/test_cases/web_content_removed/animated/zoom_line_polar.mjs rename to test/e2e/test_cases/web_content_removed/animated/zoom_line_polar.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/01_d-p_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/02_d-p_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/03_d-p_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/04_d-p_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/05_d-p_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/06_d-p_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/07_d-p_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/08_d-p_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/09_d-p_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/10_d-p_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/11_d-p_a-a-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/12_d-p_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/13_d-p_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/14_d-p_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/15_d-p_a-l-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar/16_d-p_l-l-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes/02_d-d_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes/03_d-d_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes/04_d-d_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes/07_d-d_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes/08_d-d_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes/12_d-d_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes/easing_test.mjs b/test/e2e/test_cases/ww_animTiming/descartes/easing_test.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes/easing_test.mjs rename to test/e2e/test_cases/ww_animTiming/descartes/easing_test.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/01_d-d_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/02_d-d_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/03_d-d_o_a-r-a_split.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/05_d-d_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/06_d-d_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/07_d-d_o_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/08_d-d_o_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/09_d-d_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/10_d-d_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/11_d-d_o_a-a-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/12_d-d_o_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/13_d-d_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/14_d-d_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/15_d-d_o_a-l-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs b/test/e2e/test_cases/ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs rename to test/e2e/test_cases/ww_animTiming/descartes_orientation/16_d-d_o_l-l-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/polar/02_p-p_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming/polar/03_p-p_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming/polar/04_p-p_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming/polar/07_p-p_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming/polar/08_p-p_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming/polar/12_p-p_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/01_p-p_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/02_p-p_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/03_p-p_o_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/04_p-p_o_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/05_p-p_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/06_p-p_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/07_p-p_o_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/08_p-p_o_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/09_p-p_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/10_p-p_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/11_p-p_o_a-a-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/12_p-p_o_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/13_p-p_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/14_p-p_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/15_p-p_o_a-l-a.mjs diff --git a/test/integration/test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs b/test/e2e/test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs rename to test/e2e/test_cases/ww_animTiming/polar_orientation/16_p-p_o_l-l-l.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes/01_w-d_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes/02_w-d_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes/05_w-d_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes/06_w-d_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes/09_w-d_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes/10_w-d_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes/13_w-d_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes/14_w-d_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar/01_w-p_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar/02_w-p_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar/05_w-p_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar/06_w-p_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar/09_w-p_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar/10_w-p_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar/13_w-p_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar/14_w-p_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming/without/02_w-w_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes/02_d-d_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes/03_d-d_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes/04_d-d_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes/07_d-d_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes/08_d-d_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes/12_d-d_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes/easing_test.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/01_d-d_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/02_d-d_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/03_d-d_o_a-r-a_split.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/04_d-d_o_l-r-l_stacked.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/05_d-d_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/06_d-d_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/07_d-d_o_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/08_d-d_o_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/09_d-d_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/10_d-d_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/11_d-d_o_a-a-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/12_d-d_o_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/13_d-d_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/14_d-d_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/15_d-d_o_a-l-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/descartes_orientation/16_d-d_o_l-l-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar/02_p-p_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar/03_p-p_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar/04_p-p_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar/07_p-p_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar/08_p-p_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar/12_p-p_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/01_p-p_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/02_p-p_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/03_p-p_o_a-r-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/04_p-p_o_l-r-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/05_p-p_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/06_p-p_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/07_p-p_o_a-c-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/08_p-p_o_l-c-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/09_p-p_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/10_p-p_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/11_p-p_o_a-a-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/12_p-p_o_l-a-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/13_p-p_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/14_p-p_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/15_p-p_o_a-l-a.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/polar_orientation/16_p-p_o_l-l-l.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar/01_w-p_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar/02_w-p_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar/05_w-p_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar/06_w-p_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar/09_w-p_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar/10_w-p_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar/13_w-p_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar/14_w-p_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c.mjs diff --git a/test/integration/test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs b/test/e2e/test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs similarity index 100% rename from test/integration/test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs rename to test/e2e/test_cases/ww_animTiming_TESTS/without/02_w-w_c-r-c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/02_C_R.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/02_C_R.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/02_C_R.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/02_C_R.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/02_C_R_water_comparison_sum.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/03_C_R.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/03_C_R.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/03_C_R.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/03_C_R.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/04_C_R.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/04_C_R.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/04_C_R.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/04_C_R.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/05_C_R.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/05_C_R.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/05_C_R.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/05_C_R.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/21_C_C_dotplot.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/22_C_C.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/22_C_C.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/22_C_C.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/22_C_C.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/28_C_A.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/28_C_A.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/28_C_A.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/28_C_A.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/35_C_A_violin.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps/38_C_L_line.mjs b/test/e2e/test_cases/ww_next_steps/next_steps/38_C_L_line.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps/38_C_L_line.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps/38_C_L_line.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/02_C_R.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/03_C_R.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/04_C_R.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/05_C_R.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/21_C_C_dotplot.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/22_C_C.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/28_C_A.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/38_C_L_line.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_Tests/axisLabel_problem.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_Tests/axisLabel_problem.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_Tests/axisLabel_problem.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_Tests/axisLabel_problem.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_01.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_01.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_01.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_01.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_02.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_02.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_02.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_02.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_03.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_03.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_03.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_03.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_04.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_04.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_04.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_04.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_05.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_05.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_05.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_05.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_06.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_06.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_06.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_06.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_09.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_09.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_09.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_09.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_10.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_10.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_10.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_10.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_11.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_11.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_11.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/compare/comparison_11.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_01.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_01.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_01.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_01.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_02.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_02.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_02.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_02.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_03.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_03.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_03.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_03.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_04.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_04.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_04.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_04.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_05.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_05.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_05.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_05.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_06.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_06.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_06.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_06.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_07.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_07.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/components/components_07.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/components/components_07.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_01.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_01.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_01.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_01.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_02.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_02.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_02.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_02.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_03.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_03.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_03.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_03.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_04.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_04.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_04.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_04.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_05.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_05.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_05.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_05.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_06.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_06.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_06.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_06.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_07.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_07.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_07.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_07.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_08.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_08.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_08.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/distribute/distribution_08.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_01.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_01.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_01.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_01.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_02.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_02.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_02.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_02.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_03.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_03.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_03.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_03.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_04.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_04.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_04.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_04.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_05.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_05.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_05.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_05.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_06.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_06.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_06.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_06.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_07.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_07.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_07.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_07.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_10.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_10.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_10.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_10.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_11.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_11.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_11.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_11.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_12.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_12.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_12.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_12.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_13.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_13.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_13.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/drilldown/drilldown_13.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/other/other_add_measure_01.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/other/other_add_measure_01.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/other/other_add_measure_01.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/other/other_add_measure_01.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_01.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_02.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_03.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_04.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/ratio/ratio_05.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_01.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_01.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_01.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_01.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_02.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_02.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_02.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_02.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_03.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_03.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_03.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_03.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_04.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_04.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_04.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_04.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_05.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_05.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_05.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_05.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_07.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_07.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_07.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/remove/remove_07.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_01.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_02.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_03.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_04.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_05.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_06.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_07.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_08.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_09.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_10.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_11.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_12.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_13.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_14.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_16.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_17.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_18.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_19.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_20.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_21.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/sum_aggregate/sum_aggregate_22.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_01.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_01.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_01.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_01.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_02.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_02.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_02.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_02.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_03.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_03.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_03.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_03.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_04.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_04.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_04.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_04.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_05.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_05.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/total/total_05.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/total/total_05.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/composition_comparison_pie_coxcomb_column_2dis_2con.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/distribution_relationship_dotplot_dotplot.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/drill_aggreg_improve_line.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/merge_split_radial_stacked_rectangle_2dis_1con.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_dot_circle.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/orientation_marimekko_rectangle_2dis_2con.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area_polar.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wOld_animated/zoom_line_polar.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/02_cir.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_are.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_rec.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/03a_d-w_are.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/04_cir_2c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06_cir_2c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_are.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/06b_cir_1c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/2_05b_lin.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4_06b_rec_1c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/4a_06b_rec_1c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/5_04a_rec_1c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/6_04a_cir_1c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/7_05_cir_2c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/8_06b_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9_06b_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_next_steps/next_steps_byOperations/wREGIEKBOL/NoFade_Promobol/9a_06b_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/03_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04a_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/area/06b_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/02_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/03_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/04_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/05_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/06_cir_NO.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/07_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle/08_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/02_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/03_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04a_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/04b_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05a_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/05b_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06a_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/06b_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/07_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/circle/08_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02a_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/02b_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/03_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04a_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/04b_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05a_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/05b_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06a_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/line/06b_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02a_rec.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/02b_rec.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/03_rec.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/05b_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/06b_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/07a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/1_des_pol/rectangle/08a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/03_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04a_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/04b_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06a_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/06b_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/03_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04a_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/04b_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06a_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/area/06b_d-w_are_V1_filter.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/03_d-w_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04a_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/04b_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05a_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/05b_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06a_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/06b_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/07_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/circle/08_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/02_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/03_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/02_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/03_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/04b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/05b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/line/06b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Line.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/Treemap_Stacked_Treemap_to_Area.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_column_time_sum.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/area_orientation.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_bar_time_sum.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_column_time_sum.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_drilldown_aggregate_x.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_orientation.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/Marker_transition_problem/line_tooltip_test.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_Tests/noFade_AND_Marker_transition_problem/pie_coxcomb_drilldown.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04a_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/04b_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06a_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area/06b_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/area_V1/06b_are_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/02_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/03_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/06_cir_NO.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/07_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/08_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/04_cir_Ve2.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle_Ve1/07_cir_Ve1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04a_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/04b_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05a_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/05b_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06a_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/06b_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/07_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/circle/08_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04a_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/04b_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05a_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/05b_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06a_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/line/06b_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/04b_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/05b_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/06b_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/07a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/08a_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle/09_rec_TemporalDistribution.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/05b_rec_2c_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_V1/06b_rec_1c_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/04a_rec_Ve1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/05a_rec_Ve1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/06a_rec_Ve1_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/07a_rec_Ve2_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/1_des_pol/rectangle_Ve1/08a_rec_Ve1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/03_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04a_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/04b_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06a_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/06b_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area-rectangle/10_d-w_are_temporal_bubble.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/03_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04a_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/04b_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06a_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/06b_d-w_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area/10_d-w_are_temporal_bubble.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/03_d-w_are_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04a_d-w_are_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/04b_d-w_are_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/area_V1/06b_d-w_are_V1_filter.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle-rectangle/04a_d-w_cir_V1_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04a_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/04b_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05a_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/05b_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06a_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/06b_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/07_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle/08_d-w_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/03_d-w_cir_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04_d-w_cir_V1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04a_d-w_cir_V1_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/04b_d-w_cir_V1_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05_d-w_cir_V1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/05b_d-w_cir_V1_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/06_d-w_cir_V1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/07_d-w_cir_V1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/circle_V1/08_d-w_cir_V1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-d_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/02_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/03_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/04b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/05b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line-rectangle/06b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/02_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/03_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/04b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/05b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06a_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line/06b_d-w_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/02_d-w_lin_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/03_d-w_lin_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04a_d-w_lin_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/04b_d-w_lin_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05a_d-w_lin_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/05b_d-w_lin_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06a_d-w_lin_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/line_V1/06b_d-w_lin_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05a_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/05b_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06a_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/06b_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/07a_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/08a_d-w_rec_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/03_d-w_rec_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_2c_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/05b_d-w_rec_2c_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/07a_d-w_rec_Ve1_2c_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/08a_d-w_rec_Ve1_2c_V1.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/06a_d-w_rec_Ve1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve1_2c_filter.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve3_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/08a_d-w_rec_Ve1_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/0_01_reorder.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/1_06b_are.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/2_05b_lin.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/3_04_cir.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/4_06b_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/4a_06b_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/5_04a_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/6_04a_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/7_05_cir_2c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/8_06b_d-w_cir_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/9_06b_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs b/test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs similarity index 100% rename from test/integration/test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs rename to test/e2e/test_cases/ww_noFade/wNoFade_wPromotion/9a_06b_d-w_rec_1c.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/01_C_R_histogram.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/03_C_R_grouped_column_chart_negative.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/05_C_R_split_column_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/06_C_R_100_stacked_column_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/07_C_R_range_column_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/08_C_R_waterfall.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/09_C_R_stacked_mekko_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/10_C_R_marimekko_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/112_C_R_icicle_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/11_C_R_icicle_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/14_C_R_grouped_bar_chart_negative.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/16_C_R_splitted_bar_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/17_C_R_100_stacked_bar_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/19_C_R_range_bar_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/201_C_C_devided_lollipop_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/20_C_C_lollipop_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/24_C_C_bubble_plot.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/25_C_C_correlogram.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/27_C_A_area_chart_negative.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/29_C_A_stacked_area_chart_percentage_labels.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/30_C_A_overlay_area_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/31_C_A_splitted_area_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/33_C_A_stream_graph_vert.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/35_C_A_violin_graph_vert.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/371_C_L_line_chart_nega.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/37_C_A_funnel.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/38_C_L_line_chart_nega.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert.mjs rename to test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/39_C_L_line_chart_vert.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/41_P_R_multi-level_pie_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/43_P_R_polar_column_chart_Yrange.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/46_P_R_coxcomb_nightingale_rose_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/47_P_R_polar_area_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/48_P_R_polar_range_column_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/52_P_R_nested_multi_level_donut_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/53_P_C_polar_scatter_plot.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/54_P_A_area_trump_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/551_P_A_polar_stream_graph.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/55_P_A_polar_overlay_area_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart.mjs rename to test/e2e/test_cases/ww_samples_for_presets/polar_coo_sys/56_P_A_polar_line_chart.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient.mjs b/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient.mjs rename to test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs b/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs rename to test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs diff --git a/test/integration/test_cases/ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs b/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs similarity index 100% rename from test/integration/test_cases/ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs rename to test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/60_W_R_heatmap.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Bar_Bar.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/01_drilldown/Bar_Bar.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Bar_Bar.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/01_drilldown/Bar_Bar.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/01_drilldown/Column_Stacked_Column.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Area_Stacked_Area.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Area_Stacked_Area.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Area_Stacked_Area.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Area_Stacked_Area.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Bubble_Bubble.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Bubble_Bubble.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Bubble_Bubble.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Bubble_Bubble.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_1.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_2.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Groupped_Column_to_Bar.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_1.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Column_Stacked_Column_2.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Coxcomb_Coxcomb_to_Donut.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Line_Line_3.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Line_Line_3.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/02_sum/Line_Line_3.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/02_sum/Line_Line_3.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Area.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/07_distribute/Bubble_Stacked_Bubble_to_Line.mjs diff --git a/test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs b/test/e2e/test_cases/www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs similarity index 100% rename from test/integration/test_cases/www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs rename to test/e2e/test_cases/www_new_analytical_operations/operations/07_distribute/Treemap_Stacked_Treemap_to_Area.mjs diff --git a/test/integration/test_data/IMDB_data.mjs b/test/e2e/test_data/IMDB_data.mjs similarity index 100% rename from test/integration/test_data/IMDB_data.mjs rename to test/e2e/test_data/IMDB_data.mjs diff --git a/test/integration/test_data/capitals.mjs b/test/e2e/test_data/capitals.mjs similarity index 100% rename from test/integration/test_data/capitals.mjs rename to test/e2e/test_data/capitals.mjs diff --git a/test/integration/test_data/chart_precision.mjs b/test/e2e/test_data/chart_precision.mjs similarity index 100% rename from test/integration/test_data/chart_precision.mjs rename to test/e2e/test_data/chart_precision.mjs diff --git a/test/integration/test_data/chart_types_eu.mjs b/test/e2e/test_data/chart_types_eu.mjs similarity index 100% rename from test/integration/test_data/chart_types_eu.mjs rename to test/e2e/test_data/chart_types_eu.mjs diff --git a/test/integration/test_data/correlogram_data.mjs b/test/e2e/test_data/correlogram_data.mjs similarity index 100% rename from test/integration/test_data/correlogram_data.mjs rename to test/e2e/test_data/correlogram_data.mjs diff --git a/test/integration/test_data/cube_test_data.mjs b/test/e2e/test_data/cube_test_data.mjs similarity index 100% rename from test/integration/test_data/cube_test_data.mjs rename to test/e2e/test_data/cube_test_data.mjs diff --git a/test/integration/test_data/data_missing_long.mjs b/test/e2e/test_data/data_missing_long.mjs similarity index 100% rename from test/integration/test_data/data_missing_long.mjs rename to test/e2e/test_data/data_missing_long.mjs diff --git a/test/integration/test_data/data_missing_long_more_conti.mjs b/test/e2e/test_data/data_missing_long_more_conti.mjs similarity index 100% rename from test/integration/test_data/data_missing_long_more_conti.mjs rename to test/e2e/test_data/data_missing_long_more_conti.mjs diff --git a/test/integration/test_data/data_missing_long_more_disc.mjs b/test/e2e/test_data/data_missing_long_more_disc.mjs similarity index 100% rename from test/integration/test_data/data_missing_long_more_disc.mjs rename to test/e2e/test_data/data_missing_long_more_disc.mjs diff --git a/test/integration/test_data/funnel_data.mjs b/test/e2e/test_data/funnel_data.mjs similarity index 100% rename from test/integration/test_data/funnel_data.mjs rename to test/e2e/test_data/funnel_data.mjs diff --git a/test/integration/test_data/icicle.mjs b/test/e2e/test_data/icicle.mjs similarity index 100% rename from test/integration/test_data/icicle.mjs rename to test/e2e/test_data/icicle.mjs diff --git a/test/integration/test_data/icicle2.mjs b/test/e2e/test_data/icicle2.mjs similarity index 100% rename from test/integration/test_data/icicle2.mjs rename to test/e2e/test_data/icicle2.mjs diff --git a/test/integration/test_data/infinite_data.mjs b/test/e2e/test_data/infinite_data.mjs similarity index 100% rename from test/integration/test_data/infinite_data.mjs rename to test/e2e/test_data/infinite_data.mjs diff --git a/test/integration/test_data/music_data.mjs b/test/e2e/test_data/music_data.mjs similarity index 100% rename from test/integration/test_data/music_data.mjs rename to test/e2e/test_data/music_data.mjs diff --git a/test/integration/test_data/music_industry_history_1.mjs b/test/e2e/test_data/music_industry_history_1.mjs similarity index 100% rename from test/integration/test_data/music_industry_history_1.mjs rename to test/e2e/test_data/music_industry_history_1.mjs diff --git a/test/integration/test_data/sunburst.mjs b/test/e2e/test_data/sunburst.mjs similarity index 100% rename from test/integration/test_data/sunburst.mjs rename to test/e2e/test_data/sunburst.mjs diff --git a/test/integration/test_data/sunburst2.mjs b/test/e2e/test_data/sunburst2.mjs similarity index 100% rename from test/integration/test_data/sunburst2.mjs rename to test/e2e/test_data/sunburst2.mjs diff --git a/test/integration/test_data/tutorial.mjs b/test/e2e/test_data/tutorial.mjs similarity index 100% rename from test/integration/test_data/tutorial.mjs rename to test/e2e/test_data/tutorial.mjs diff --git a/test/integration/tests/chart.mjs b/test/e2e/tests/chart.mjs similarity index 100% rename from test/integration/tests/chart.mjs rename to test/e2e/tests/chart.mjs diff --git a/test/integration/tests/config.mjs b/test/e2e/tests/config.mjs similarity index 100% rename from test/integration/tests/config.mjs rename to test/e2e/tests/config.mjs diff --git a/test/integration/tests/config_tests.json b/test/e2e/tests/config_tests.json similarity index 100% rename from test/integration/tests/config_tests.json rename to test/e2e/tests/config_tests.json diff --git a/test/integration/tests/config_tests/dimension_axis_title.mjs b/test/e2e/tests/config_tests/dimension_axis_title.mjs similarity index 100% rename from test/integration/tests/config_tests/dimension_axis_title.mjs rename to test/e2e/tests/config_tests/dimension_axis_title.mjs diff --git a/test/integration/tests/config_tests/geometry.mjs b/test/e2e/tests/config_tests/geometry.mjs similarity index 100% rename from test/integration/tests/config_tests/geometry.mjs rename to test/e2e/tests/config_tests/geometry.mjs diff --git a/test/integration/tests/data.mjs b/test/e2e/tests/data.mjs similarity index 100% rename from test/integration/tests/data.mjs rename to test/e2e/tests/data.mjs diff --git a/test/integration/tests/features.json b/test/e2e/tests/features.json similarity index 100% rename from test/integration/tests/features.json rename to test/e2e/tests/features.json diff --git a/test/integration/tests/features/aggregators/aggregators.mjs b/test/e2e/tests/features/aggregators/aggregators.mjs similarity index 100% rename from test/integration/tests/features/aggregators/aggregators.mjs rename to test/e2e/tests/features/aggregators/aggregators.mjs diff --git a/test/integration/tests/features/aggregators/aggregators_together.mjs b/test/e2e/tests/features/aggregators/aggregators_together.mjs similarity index 100% rename from test/integration/tests/features/aggregators/aggregators_together.mjs rename to test/e2e/tests/features/aggregators/aggregators_together.mjs diff --git a/test/integration/tests/features/anim/speed.mjs b/test/e2e/tests/features/anim/speed.mjs similarity index 100% rename from test/integration/tests/features/anim/speed.mjs rename to test/e2e/tests/features/anim/speed.mjs diff --git a/test/integration/tests/features/axis_title_positioning.mjs b/test/e2e/tests/features/axis_title_positioning.mjs similarity index 100% rename from test/integration/tests/features/axis_title_positioning.mjs rename to test/e2e/tests/features/axis_title_positioning.mjs diff --git a/test/integration/tests/features/cssproperties.mjs b/test/e2e/tests/features/cssproperties.mjs similarity index 100% rename from test/integration/tests/features/cssproperties.mjs rename to test/e2e/tests/features/cssproperties.mjs diff --git a/test/integration/tests/features/data_input/object_records.mjs b/test/e2e/tests/features/data_input/object_records.mjs similarity index 100% rename from test/integration/tests/features/data_input/object_records.mjs rename to test/e2e/tests/features/data_input/object_records.mjs diff --git a/test/integration/tests/features/events/drawing_events.mjs b/test/e2e/tests/features/events/drawing_events.mjs similarity index 100% rename from test/integration/tests/features/events/drawing_events.mjs rename to test/e2e/tests/features/events/drawing_events.mjs diff --git a/test/integration/tests/features/presets.mjs b/test/e2e/tests/features/presets.mjs similarity index 100% rename from test/integration/tests/features/presets.mjs rename to test/e2e/tests/features/presets.mjs diff --git a/test/integration/tests/features/subtitle_caption.mjs b/test/e2e/tests/features/subtitle_caption.mjs similarity index 100% rename from test/integration/tests/features/subtitle_caption.mjs rename to test/e2e/tests/features/subtitle_caption.mjs diff --git a/test/integration/tests/fixes.json b/test/e2e/tests/fixes.json similarity index 100% rename from test/integration/tests/fixes.json rename to test/e2e/tests/fixes.json diff --git a/test/integration/tests/fixes/144.mjs b/test/e2e/tests/fixes/144.mjs similarity index 100% rename from test/integration/tests/fixes/144.mjs rename to test/e2e/tests/fixes/144.mjs diff --git a/test/integration/tests/fixes/146.mjs b/test/e2e/tests/fixes/146.mjs similarity index 100% rename from test/integration/tests/fixes/146.mjs rename to test/e2e/tests/fixes/146.mjs diff --git a/test/integration/tests/fixes/163.mjs b/test/e2e/tests/fixes/163.mjs similarity index 100% rename from test/integration/tests/fixes/163.mjs rename to test/e2e/tests/fixes/163.mjs diff --git a/test/integration/tests/fixes/32303048.mjs b/test/e2e/tests/fixes/32303048.mjs similarity index 100% rename from test/integration/tests/fixes/32303048.mjs rename to test/e2e/tests/fixes/32303048.mjs diff --git a/test/integration/tests/fixes/333.mjs b/test/e2e/tests/fixes/333.mjs similarity index 100% rename from test/integration/tests/fixes/333.mjs rename to test/e2e/tests/fixes/333.mjs diff --git a/test/integration/tests/fixes/38072036.mjs b/test/e2e/tests/fixes/38072036.mjs similarity index 100% rename from test/integration/tests/fixes/38072036.mjs rename to test/e2e/tests/fixes/38072036.mjs diff --git a/test/integration/tests/fixes/41932946.mjs b/test/e2e/tests/fixes/41932946.mjs similarity index 100% rename from test/integration/tests/fixes/41932946.mjs rename to test/e2e/tests/fixes/41932946.mjs diff --git a/test/integration/tests/fixes/42836788.mjs b/test/e2e/tests/fixes/42836788.mjs similarity index 100% rename from test/integration/tests/fixes/42836788.mjs rename to test/e2e/tests/fixes/42836788.mjs diff --git a/test/integration/tests/fixes/450.mjs b/test/e2e/tests/fixes/450.mjs similarity index 100% rename from test/integration/tests/fixes/450.mjs rename to test/e2e/tests/fixes/450.mjs diff --git a/test/integration/tests/fixes/75.mjs b/test/e2e/tests/fixes/75.mjs similarity index 100% rename from test/integration/tests/fixes/75.mjs rename to test/e2e/tests/fixes/75.mjs diff --git a/test/integration/tests/fixes/91.mjs b/test/e2e/tests/fixes/91.mjs similarity index 100% rename from test/integration/tests/fixes/91.mjs rename to test/e2e/tests/fixes/91.mjs diff --git a/test/integration/tests/style_tests.json b/test/e2e/tests/style_tests.json similarity index 100% rename from test/integration/tests/style_tests.json rename to test/e2e/tests/style_tests.json diff --git a/test/integration/tests/style_tests/plot/backgroundColor/err.mjs b/test/e2e/tests/style_tests/plot/backgroundColor/err.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/backgroundColor/err.mjs rename to test/e2e/tests/style_tests/plot/backgroundColor/err.mjs diff --git a/test/integration/tests/style_tests/plot/backgroundColor/hex.mjs b/test/e2e/tests/style_tests/plot/backgroundColor/hex.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/backgroundColor/hex.mjs rename to test/e2e/tests/style_tests/plot/backgroundColor/hex.mjs diff --git a/test/integration/tests/style_tests/plot/backgroundColor/hexa.mjs b/test/e2e/tests/style_tests/plot/backgroundColor/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/backgroundColor/hexa.mjs rename to test/e2e/tests/style_tests/plot/backgroundColor/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/backgroundColor/hexshort.mjs b/test/e2e/tests/style_tests/plot/backgroundColor/hexshort.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/backgroundColor/hexshort.mjs rename to test/e2e/tests/style_tests/plot/backgroundColor/hexshort.mjs diff --git a/test/integration/tests/style_tests/plot/backgroundColor/rgb.mjs b/test/e2e/tests/style_tests/plot/backgroundColor/rgb.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/backgroundColor/rgb.mjs rename to test/e2e/tests/style_tests/plot/backgroundColor/rgb.mjs diff --git a/test/integration/tests/style_tests/plot/backgroundColor/rgba.mjs b/test/e2e/tests/style_tests/plot/backgroundColor/rgba.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/backgroundColor/rgba.mjs rename to test/e2e/tests/style_tests/plot/backgroundColor/rgba.mjs diff --git a/test/integration/tests/style_tests/plot/borderColor/hexa.mjs b/test/e2e/tests/style_tests/plot/borderColor/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/borderColor/hexa.mjs rename to test/e2e/tests/style_tests/plot/borderColor/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/borderWidth.mjs b/test/e2e/tests/style_tests/plot/borderWidth.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/borderWidth.mjs rename to test/e2e/tests/style_tests/plot/borderWidth.mjs diff --git a/test/integration/tests/style_tests/plot/paddingBottom.mjs b/test/e2e/tests/style_tests/plot/paddingBottom.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/paddingBottom.mjs rename to test/e2e/tests/style_tests/plot/paddingBottom.mjs diff --git a/test/integration/tests/style_tests/plot/paddingLeft.mjs b/test/e2e/tests/style_tests/plot/paddingLeft.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/paddingLeft.mjs rename to test/e2e/tests/style_tests/plot/paddingLeft.mjs diff --git a/test/integration/tests/style_tests/plot/paddingRight.mjs b/test/e2e/tests/style_tests/plot/paddingRight.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/paddingRight.mjs rename to test/e2e/tests/style_tests/plot/paddingRight.mjs diff --git a/test/integration/tests/style_tests/plot/paddingTop.mjs b/test/e2e/tests/style_tests/plot/paddingTop.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/paddingTop.mjs rename to test/e2e/tests/style_tests/plot/paddingTop.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/color/hexa.mjs b/test/e2e/tests/style_tests/plot/xAxis/color/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/color/hexa.mjs rename to test/e2e/tests/style_tests/plot/xAxis/color/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs b/test/e2e/tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs rename to test/e2e/tests/style_tests/plot/xAxis/interlacing/color/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/deg.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/angle/deg.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/angle/deg.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/angle/deg.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/grad.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/angle/grad.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/angle/grad.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/angle/grad.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/number.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/angle/number.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/angle/number.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/angle/number.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/rad.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/angle/rad.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/angle/rad.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/angle/rad.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/angle/turn.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/angle/turn.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/angle/turn.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/angle/turn.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/backgroundColor/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/color/hexa.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/color/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/color/hexa.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/color/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementFontPercentage.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/fontSize/elementFontPercentage.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementFontPercentage.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/fontSize/elementFontPercentage.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/fontSize/elementPercentage.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/number.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/fontSize/number.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/fontSize/number.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/fontSize/number.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/fontSize/pixel.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontStyle.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/fontStyle.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/fontStyle.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/fontStyle.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/fontWeight.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/fontWeight.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/fontWeight.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/fontWeight.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/orientation.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/orientation.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/orientation.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/orientation.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/paddingBottom.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/paddingBottom.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/paddingBottom.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/paddingBottom.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/paddingLeft.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/paddingLeft.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/paddingLeft.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/paddingLeft.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/paddingRight.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/paddingRight.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/paddingRight.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/paddingRight.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/paddingTop.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/paddingTop.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/paddingTop.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/paddingTop.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/position.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/position.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/position.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/position.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/side.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/side.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/side.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/side.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/label/textAlign.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/textAlign.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/label/textAlign.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/textAlign.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/color/hexa.mjs b/test/e2e/tests/style_tests/plot/xAxis/ticks/color/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/ticks/color/hexa.mjs rename to test/e2e/tests/style_tests/plot/xAxis/ticks/color/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs b/test/e2e/tests/style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs rename to test/e2e/tests/style_tests/plot/xAxis/ticks/length/elementFontPercentage.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/length/elementPercentage.mjs b/test/e2e/tests/style_tests/plot/xAxis/ticks/length/elementPercentage.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/ticks/length/elementPercentage.mjs rename to test/e2e/tests/style_tests/plot/xAxis/ticks/length/elementPercentage.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/length/number.mjs b/test/e2e/tests/style_tests/plot/xAxis/ticks/length/number.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/ticks/length/number.mjs rename to test/e2e/tests/style_tests/plot/xAxis/ticks/length/number.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/length/pixel.mjs b/test/e2e/tests/style_tests/plot/xAxis/ticks/length/pixel.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/ticks/length/pixel.mjs rename to test/e2e/tests/style_tests/plot/xAxis/ticks/length/pixel.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/lineWidth.mjs b/test/e2e/tests/style_tests/plot/xAxis/ticks/lineWidth.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/ticks/lineWidth.mjs rename to test/e2e/tests/style_tests/plot/xAxis/ticks/lineWidth.mjs diff --git a/test/integration/tests/style_tests/plot/xAxis/ticks/position.mjs b/test/e2e/tests/style_tests/plot/xAxis/ticks/position.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/xAxis/ticks/position.mjs rename to test/e2e/tests/style_tests/plot/xAxis/ticks/position.mjs diff --git a/test/integration/tests/style_tests/plot/yAxis/color/hexa.mjs b/test/e2e/tests/style_tests/plot/yAxis/color/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/yAxis/color/hexa.mjs rename to test/e2e/tests/style_tests/plot/yAxis/color/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs b/test/e2e/tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs rename to test/e2e/tests/style_tests/plot/yAxis/interlacing/color/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/color/hexa.mjs b/test/e2e/tests/style_tests/plot/yAxis/ticks/color/hexa.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/yAxis/ticks/color/hexa.mjs rename to test/e2e/tests/style_tests/plot/yAxis/ticks/color/hexa.mjs diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs b/test/e2e/tests/style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs rename to test/e2e/tests/style_tests/plot/yAxis/ticks/length/elementFontPercentage.mjs diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/length/elementPercentage.mjs b/test/e2e/tests/style_tests/plot/yAxis/ticks/length/elementPercentage.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/yAxis/ticks/length/elementPercentage.mjs rename to test/e2e/tests/style_tests/plot/yAxis/ticks/length/elementPercentage.mjs diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/length/number.mjs b/test/e2e/tests/style_tests/plot/yAxis/ticks/length/number.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/yAxis/ticks/length/number.mjs rename to test/e2e/tests/style_tests/plot/yAxis/ticks/length/number.mjs diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/length/pixel.mjs b/test/e2e/tests/style_tests/plot/yAxis/ticks/length/pixel.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/yAxis/ticks/length/pixel.mjs rename to test/e2e/tests/style_tests/plot/yAxis/ticks/length/pixel.mjs diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/lineWidth.mjs b/test/e2e/tests/style_tests/plot/yAxis/ticks/lineWidth.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/yAxis/ticks/lineWidth.mjs rename to test/e2e/tests/style_tests/plot/yAxis/ticks/lineWidth.mjs diff --git a/test/integration/tests/style_tests/plot/yAxis/ticks/position.mjs b/test/e2e/tests/style_tests/plot/yAxis/ticks/position.mjs similarity index 100% rename from test/integration/tests/style_tests/plot/yAxis/ticks/position.mjs rename to test/e2e/tests/style_tests/plot/yAxis/ticks/position.mjs diff --git a/test/integration/tools/manual/client/frame.html b/test/e2e/tools/manual/client/frame.html similarity index 100% rename from test/integration/tools/manual/client/frame.html rename to test/e2e/tools/manual/client/frame.html diff --git a/test/integration/tools/manual/client/frame.js b/test/e2e/tools/manual/client/frame.js similarity index 100% rename from test/integration/tools/manual/client/frame.js rename to test/e2e/tools/manual/client/frame.js diff --git a/test/integration/tools/manual/client/index.html b/test/e2e/tools/manual/client/index.html similarity index 100% rename from test/integration/tools/manual/client/index.html rename to test/e2e/tools/manual/client/index.html diff --git a/test/integration/tools/manual/client/index.js b/test/e2e/tools/manual/client/index.js similarity index 100% rename from test/integration/tools/manual/client/index.js rename to test/e2e/tools/manual/client/index.js diff --git a/test/integration/tools/manual/client/test-case.js b/test/e2e/tools/manual/client/test-case.js similarity index 100% rename from test/integration/tools/manual/client/test-case.js rename to test/e2e/tools/manual/client/test-case.js diff --git a/test/integration/tools/manual/client/test-lib.js b/test/e2e/tools/manual/client/test-lib.js similarity index 100% rename from test/integration/tools/manual/client/test-lib.js rename to test/e2e/tools/manual/client/test-lib.js diff --git a/test/integration/tools/manual/client/url.js b/test/e2e/tools/manual/client/url.js similarity index 100% rename from test/integration/tools/manual/client/url.js rename to test/e2e/tools/manual/client/url.js diff --git a/test/integration/tools/manual/server/handlers/libs.cjs b/test/e2e/tools/manual/server/handlers/libs.cjs similarity index 100% rename from test/integration/tools/manual/server/handlers/libs.cjs rename to test/e2e/tools/manual/server/handlers/libs.cjs diff --git a/test/integration/tools/manual/server/handlers/test-case.cjs b/test/e2e/tools/manual/server/handlers/test-case.cjs similarity index 100% rename from test/integration/tools/manual/server/handlers/test-case.cjs rename to test/e2e/tools/manual/server/handlers/test-case.cjs diff --git a/test/integration/tools/manual/server/handlers/tests.cjs b/test/e2e/tools/manual/server/handlers/tests.cjs similarity index 100% rename from test/integration/tools/manual/server/handlers/tests.cjs rename to test/e2e/tools/manual/server/handlers/tests.cjs diff --git a/test/integration/tools/manual/server/main.cjs b/test/e2e/tools/manual/server/main.cjs similarity index 100% rename from test/integration/tools/manual/server/main.cjs rename to test/e2e/tools/manual/server/main.cjs diff --git a/test/integration/tools/manual/shared/test-case.js b/test/e2e/tools/manual/shared/test-case.js similarity index 100% rename from test/integration/tools/manual/shared/test-case.js rename to test/e2e/tools/manual/shared/test-case.js diff --git a/test/integration/utils/lastanimation.mjs b/test/e2e/utils/lastanimation.mjs similarity index 100% rename from test/integration/utils/lastanimation.mjs rename to test/e2e/utils/lastanimation.mjs diff --git a/test/integration/utils/mouse.mjs b/test/e2e/utils/mouse.mjs similarity index 100% rename from test/integration/utils/mouse.mjs rename to test/e2e/utils/mouse.mjs diff --git a/test/integration/utils/testcontrol.mjs b/test/e2e/utils/testcontrol.mjs similarity index 100% rename from test/integration/utils/testcontrol.mjs rename to test/e2e/utils/testcontrol.mjs diff --git a/test/integration/utils/vizzu-markerdropshadow.mjs b/test/e2e/utils/vizzu-markerdropshadow.mjs similarity index 100% rename from test/integration/utils/vizzu-markerdropshadow.mjs rename to test/e2e/utils/vizzu-markerdropshadow.mjs diff --git a/test/integration/utils/vizzu-pptxgen.mjs b/test/e2e/utils/vizzu-pptxgen.mjs similarity index 100% rename from test/integration/utils/vizzu-pptxgen.mjs rename to test/e2e/utils/vizzu-pptxgen.mjs diff --git a/test/integration/utils/vizzu-videocapture.mjs b/test/e2e/utils/vizzu-videocapture.mjs similarity index 100% rename from test/integration/utils/vizzu-videocapture.mjs rename to test/e2e/utils/vizzu-videocapture.mjs From 2a78dc4f32db2095ef3f904a434dff050ec0e39c Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 12:41:54 +0100 Subject: [PATCH 125/180] Rename integration-test module to e2e-test module --- test/e2e/modules/{integration-test => e2e-test}/client/index.html | 0 test/e2e/modules/{integration-test => e2e-test}/client/index.js | 0 .../{integration-test => e2e-test}/test-case/test-case-result.cjs | 0 .../{integration-test => e2e-test}/test-case/test-case.cjs | 0 .../test-case/test-cases-config.cjs | 0 .../test-case/test-cases-config.test.cjs | 0 .../test-case/test-cases-config.test/test-cases-1.json | 0 .../test-case/test-cases-config.test/test-cases-2.json | 0 .../test-case/test-cases-config.test/test-cases-3.json | 0 .../test-case/test-cases-config.test/test-cases-notjson.json | 0 .../test-cases-notschema/test-cases-notschema-1.json | 0 .../test-cases-notschema/test-cases-notschema-2.json | 0 .../test-cases-notschema/test-cases-notschema-3.json | 0 .../test-cases-notschema/test-cases-notschema-4.json | 0 .../test-cases-notschema/test-cases-notschema-5.json | 0 .../test-cases-notschema/test-cases-notschema-6.json | 0 .../test-cases-notschema/test-cases-notschema-7.json | 0 .../test-case/test-cases-config.test/test-cases-result.cjs | 0 .../{integration-test => e2e-test}/test-case/test-cases.cjs | 0 .../{integration-test => e2e-test}/test-case/test-cases.test.cjs | 0 test/e2e/modules/{integration-test => e2e-test}/test-console.cjs | 0 .../modules/{integration-test => e2e-test}/test-console.test.cjs | 0 test/e2e/modules/{integration-test => e2e-test}/test-env.cjs | 0 test/e2e/modules/{integration-test => e2e-test}/test-env.test.cjs | 0 .../modules/{integration-test => e2e-test}/test-suite-result.cjs | 0 test/e2e/modules/{integration-test => e2e-test}/test-suite.cjs | 0 26 files changed, 0 insertions(+), 0 deletions(-) rename test/e2e/modules/{integration-test => e2e-test}/client/index.html (100%) rename test/e2e/modules/{integration-test => e2e-test}/client/index.js (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-case-result.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-case.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-1.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-2.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-3.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-notjson.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases-config.test/test-cases-result.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-case/test-cases.test.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-console.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-console.test.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-env.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-env.test.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-suite-result.cjs (100%) rename test/e2e/modules/{integration-test => e2e-test}/test-suite.cjs (100%) diff --git a/test/e2e/modules/integration-test/client/index.html b/test/e2e/modules/e2e-test/client/index.html similarity index 100% rename from test/e2e/modules/integration-test/client/index.html rename to test/e2e/modules/e2e-test/client/index.html diff --git a/test/e2e/modules/integration-test/client/index.js b/test/e2e/modules/e2e-test/client/index.js similarity index 100% rename from test/e2e/modules/integration-test/client/index.js rename to test/e2e/modules/e2e-test/client/index.js diff --git a/test/e2e/modules/integration-test/test-case/test-case-result.cjs b/test/e2e/modules/e2e-test/test-case/test-case-result.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-case-result.cjs rename to test/e2e/modules/e2e-test/test-case/test-case-result.cjs diff --git a/test/e2e/modules/integration-test/test-case/test-case.cjs b/test/e2e/modules/e2e-test/test-case/test-case.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-case.cjs rename to test/e2e/modules/e2e-test/test-case/test-case.cjs diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.cjs b/test/e2e/modules/e2e-test/test-case/test-cases-config.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.cjs rename to test/e2e/modules/e2e-test/test-case/test-cases-config.cjs diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test.cjs b/test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test.cjs rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-1.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-1.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-2.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-2.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-3.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-3.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notjson.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notjson.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json diff --git a/test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases-config.test/test-cases-result.cjs rename to test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs diff --git a/test/e2e/modules/integration-test/test-case/test-cases.cjs b/test/e2e/modules/e2e-test/test-case/test-cases.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases.cjs rename to test/e2e/modules/e2e-test/test-case/test-cases.cjs diff --git a/test/e2e/modules/integration-test/test-case/test-cases.test.cjs b/test/e2e/modules/e2e-test/test-case/test-cases.test.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-case/test-cases.test.cjs rename to test/e2e/modules/e2e-test/test-case/test-cases.test.cjs diff --git a/test/e2e/modules/integration-test/test-console.cjs b/test/e2e/modules/e2e-test/test-console.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-console.cjs rename to test/e2e/modules/e2e-test/test-console.cjs diff --git a/test/e2e/modules/integration-test/test-console.test.cjs b/test/e2e/modules/e2e-test/test-console.test.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-console.test.cjs rename to test/e2e/modules/e2e-test/test-console.test.cjs diff --git a/test/e2e/modules/integration-test/test-env.cjs b/test/e2e/modules/e2e-test/test-env.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-env.cjs rename to test/e2e/modules/e2e-test/test-env.cjs diff --git a/test/e2e/modules/integration-test/test-env.test.cjs b/test/e2e/modules/e2e-test/test-env.test.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-env.test.cjs rename to test/e2e/modules/e2e-test/test-env.test.cjs diff --git a/test/e2e/modules/integration-test/test-suite-result.cjs b/test/e2e/modules/e2e-test/test-suite-result.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-suite-result.cjs rename to test/e2e/modules/e2e-test/test-suite-result.cjs diff --git a/test/e2e/modules/integration-test/test-suite.cjs b/test/e2e/modules/e2e-test/test-suite.cjs similarity index 100% rename from test/e2e/modules/integration-test/test-suite.cjs rename to test/e2e/modules/e2e-test/test-suite.cjs From 1a7a123560a2a467721c0b8d31177edde156cf67 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 12:47:09 +0100 Subject: [PATCH 126/180] Rename integration variables --- .eslintrc.cjs | 2 +- CONTRIBUTING.md | 4 +- package.json | 8 +- test/e2e/man.cjs | 10 +- .../e2e-test/test-case/test-case-result.cjs | 2 +- .../modules/e2e-test/test-case/test-case.cjs | 6 +- .../e2e-test/test-case/test-cases-config.cjs | 2 +- .../test-case/test-cases-config.test.cjs | 26 ++-- .../test-cases-config.test/test-cases-1.json | 2 +- .../test-cases-config.test/test-cases-2.json | 2 +- .../test-cases-config.test/test-cases-3.json | 2 +- .../test-cases-notschema-4.json | 2 +- .../test-cases-notschema-5.json | 2 +- .../test-cases-notschema-6.json | 2 +- .../test-cases-notschema-7.json | 2 +- .../test-cases-result.cjs | 50 ++++---- .../modules/e2e-test/test-case/test-cases.cjs | 4 +- .../e2e-test/test-case/test-cases.test.cjs | 116 +++++++++--------- test/e2e/modules/e2e-test/test-console.cjs | 4 +- test/e2e/modules/e2e-test/test-env.cjs | 2 +- test/e2e/modules/e2e-test/test-env.test.cjs | 6 +- .../modules/e2e-test/test-suite-result.cjs | 4 +- test/e2e/modules/e2e-test/test-suite.cjs | 12 +- test/e2e/modules/videorecorder/generate.cjs | 10 +- test/e2e/modules/vizzu/vizzu-url.test.cjs | 16 +-- test/e2e/modules/vizzu/vizzu-version.cjs | 4 +- test/e2e/test.cjs | 14 +-- test/e2e/test_cases/test_cases.json | 2 +- test/e2e/tests/config_tests.json | 2 +- test/e2e/tests/features.json | 2 +- test/e2e/tests/fixes.json | 2 +- test/e2e/tests/style_tests.json | 2 +- .../manual/server/handlers/test-case.cjs | 2 +- .../tools/manual/server/handlers/tests.cjs | 6 +- test/e2e/tools/manual/server/main.cjs | 4 +- tools/ci/run/pkg-purge-js.sh | 2 +- tools/ci/run/pkg-set-version-js.sh | 2 +- tools/ci/run/test-gsutil.sh | 4 +- tools/docs/examples/gen_examples.py | 4 +- tools/docs/examples/gen_thumbnails.py | 2 +- tools/docs/examples/gen_webcontent_hash.cjs | 2 +- 41 files changed, 177 insertions(+), 177 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 55b31d475..9dda8bbe5 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -14,7 +14,7 @@ module.exports = { extends: ['@vizzu/eslint-config/standard'] }, { - files: ['test/integration/test_cases/**', 'test/integration/test_data/**'], + files: ['test/e2e/test_cases/**', 'test/e2e/test_data/**'], extends: ['@vizzu/eslint-config/standard'], rules: { camelcase: 'off' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aceeeeb83..96a5a818c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -213,13 +213,13 @@ script: `type:tools`. #### Testing -Run the following command to start integration testing: +Run the following command to start e2e testing: ```sh npm test ``` -For information on how integration testing works and what options it has, please +For information on how e2e testing works and what options it has, please see the program help: ```sh diff --git a/package.json b/package.json index 01cab2d85..365961320 100644 --- a/package.json +++ b/package.json @@ -71,11 +71,11 @@ "type-src:js": "npx check-dts ./test/dts/vizzu.d.ts", "type:tools": "npm-run-all type-tools:*", "type-tools:py": "./tools/ci/run/type-mypy-py.sh tools", - "test": "node test/integration/test.cjs", + "test": "node test/e2e/test.cjs", "test:unit": "NODE_OPTIONS='--experimental-vm-modules' npx jest --config test/unit/jest.config.js --verbose", - "test:e2e": "node test/integration/test.cjs", - "test:e2e-unit": "npx jest --config=./test/integration/modules/jest.config.cjs --verbose", - "test:man": "node test/integration/man.cjs", + "test:e2e": "node test/e2e/test.cjs", + "test:e2e-unit": "npx jest --config=./test/e2e/modules/jest.config.cjs --verbose", + "test:man": "node test/e2e/man.cjs", "ci": "npm-run-all ci:*", "ci:src": "npm-run-all ci-src:*", "ci-src:js": "npm-run-all format-src:js lint-src:js type-src:js test:unit test", diff --git a/test/e2e/man.cjs b/test/e2e/man.cjs index fe6f58d5d..e3ceb71f4 100644 --- a/test/e2e/man.cjs +++ b/test/e2e/man.cjs @@ -37,11 +37,11 @@ The animation of the selected test case will be displayed using the chosen Vizzu '\n(relative or absolute path where the repo folder is the root)' ) .default('c', [ - '/test/integration/test_cases/test_cases.json', - '/test/integration/tests/config_tests.json', - '/test/integration/tests/style_tests.json', - '/test/integration/tests/features.json', - '/test/integration/tests/fixes.json' + '/test/e2e/test_cases/test_cases.json', + '/test/e2e/tests/config_tests.json', + '/test/e2e/tests/style_tests.json', + '/test/e2e/tests/features.json', + '/test/e2e/tests/fixes.json' ]) .example([ diff --git a/test/e2e/modules/e2e-test/test-case/test-case-result.cjs b/test/e2e/modules/e2e-test/test-case/test-case-result.cjs index 1132f1f22..1977a4ef5 100644 --- a/test/e2e/modules/e2e-test/test-case/test-case-result.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-case-result.cjs @@ -3,7 +3,7 @@ const pngjs = require('pngjs') const path = require('path') const fs = require('fs') -const TestEnv = require('../../../modules/integration-test/test-env.cjs') +const TestEnv = require('../../../modules/e2e-test/test-env.cjs') class TestCaseResult { #cnsl diff --git a/test/e2e/modules/e2e-test/test-case/test-case.cjs b/test/e2e/modules/e2e-test/test-case/test-case.cjs index 01700405f..706a4ae90 100644 --- a/test/e2e/modules/e2e-test/test-case/test-case.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-case.cjs @@ -1,7 +1,7 @@ const path = require('path') -const TestEnv = require('../../../modules/integration-test/test-env.cjs') -const TestCaseResult = require('../../../modules/integration-test/test-case/test-case-result.cjs') +const TestEnv = require('../../../modules/e2e-test/test-env.cjs') +const TestCaseResult = require('../../../modules/e2e-test/test-case/test-case-result.cjs') class TestCase { static runTestCase(testCaseObj, vizzuUrl, vizzuRefUrl) { @@ -52,7 +52,7 @@ class TestCase { .getUrl( 'http://127.0.0.1:' + String(testCaseObj.workspaceHostServerPort) + - '/test/integration/modules/integration-test/client/index.html' + + '/test/e2e/modules/e2e-test/client/index.html' + '?testFile=' + testCaseObj.testCase.testFile + '&testType=' + diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.cjs b/test/e2e/modules/e2e-test/test-case/test-cases-config.cjs index f11470686..f9bb6ab3b 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.cjs @@ -4,7 +4,7 @@ const Ajv = require('ajv') const assert = require('../../../modules/console/assert.cjs') const WorkspacePath = require('../../../modules/workspace/workspace-path.cjs') -const TestEnv = require('../../../modules/integration-test/test-env.cjs') +const TestEnv = require('../../../modules/e2e-test/test-env.cjs') class TestCasesConfig { static getConfig(configPathList) { diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs b/test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs index 8b48d3e4b..7416b702e 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs @@ -27,7 +27,7 @@ describe('getConfig()', () => { test('if configPath is not file, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test' + './modules/e2e-test/test-case/test-cases-config.test' ]) ).rejects.toThrow('EISDIR: illegal operation on a directory, read') }) @@ -35,7 +35,7 @@ describe('getConfig()', () => { test('if configPath does not exist, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notexist.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-notexist.json' ]) ).rejects.toThrow('ENOENT: no such file or directory') }) @@ -43,7 +43,7 @@ describe('getConfig()', () => { test('if configPath is not json, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notjson.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-notjson.json' ]) ).rejects.toThrow('Unexpected end of JSON input') }) @@ -54,7 +54,7 @@ describe('getConfig()', () => { test('if 1, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-1.json' ]) ).rejects.toThrow('Assert failed: config schema validation failed') }) @@ -62,7 +62,7 @@ describe('getConfig()', () => { test('if 2, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-2.json' ]) ).rejects.toThrow('Assert failed: config schema validation failed') }) @@ -70,7 +70,7 @@ describe('getConfig()', () => { test('if 3, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-3.json' ]) ).rejects.toThrow('Assert failed: config schema validation failed') }) @@ -78,7 +78,7 @@ describe('getConfig()', () => { test('if 4, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json' ]) ).rejects.toThrow('Assert failed: config schema validation failed') }) @@ -86,7 +86,7 @@ describe('getConfig()', () => { test('if 5, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json' ]) ).rejects.toThrow('Assert failed: config schema validation failed') }) @@ -94,7 +94,7 @@ describe('getConfig()', () => { test('if 6, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json' ]) ).rejects.toThrow('Assert failed: config schema validation failed') }) @@ -102,7 +102,7 @@ describe('getConfig()', () => { test('if 7, err is thrown', () => { return expect( TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json' ]) ).rejects.toThrow('Assert failed: config schema validation failed') }) @@ -110,9 +110,9 @@ describe('getConfig()', () => { test('if config fits into schema, config is valid', () => { return TestCasesConfig.getConfig([ - './modules/integration-test/test-case/test-cases-config.test/test-cases-1.json', - './modules/integration-test/test-case/test-cases-config.test/test-cases-2.json', - './modules/integration-test/test-case/test-cases-config.test/test-cases-3.json' + './modules/e2e-test/test-case/test-cases-config.test/test-cases-1.json', + './modules/e2e-test/test-case/test-cases-config.test/test-cases-2.json', + './modules/e2e-test/test-case/test-cases-config.test/test-cases-3.json' ]).then((config) => { config.suites = config.suites.sort((a, b) => { if (a.suite < b.suite) return -1 diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-1.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-1.json index b28b35c23..ce4707258 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-1.json +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-1.json @@ -1,5 +1,5 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite-1", + "suite": "/test/e2e/modules/e2e-test/test-cases/test-suite-1", "test": { "example-group-1/example-1": { "refs": ["1111111"] diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-2.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-2.json index 2133c093b..e40ed9ea0 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-2.json +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-2.json @@ -1,5 +1,5 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite-2", + "suite": "/test/e2e/modules/e2e-test/test-cases/test-suite-2", "test": { "example-group-3/example-6": { "refs": ["6666666"] diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-3.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-3.json index f0b14b916..f1b621587 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-3.json +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-3.json @@ -1,3 +1,3 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite-3" + "suite": "/test/e2e/modules/e2e-test/test-cases/test-suite-3" } diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json index 9550d838d..fc8d7dc17 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-4.json @@ -1,4 +1,4 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite", + "suite": "/test/e2e/modules/e2e-test/test-cases/test-suite", "foo": [] } diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json index 46b7066df..3e326d0d5 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-5.json @@ -1,4 +1,4 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite", + "suite": "/test/e2e/modules/e2e-test/test-cases/test-suite", "test": [] } diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json index 87f6cfd5e..4227e9a1e 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-6.json @@ -1,5 +1,5 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite", + "suite": "/test/e2e/modules/e2e-test/test-cases/test-suite", "test": { "example": { "refs": "" diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json index ab4df633d..e15d4eafc 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-notschema/test-cases-notschema-7.json @@ -1,5 +1,5 @@ { - "suite": "/test/integration/modules/integration-test/test-cases/test-suite", + "suite": "/test/e2e/modules/e2e-test/test-cases/test-suite", "test": { "example": { "animstep": 1 diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs index dbcc496f9..f13c6ed3d 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs @@ -1,32 +1,32 @@ -const TestEnv = require('../../../../modules/integration-test/test-env.cjs') +const TestEnv = require('../../../../modules/e2e-test/test-env.cjs') const testCasesResult = { suites: [ { config: TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-1.json', + '/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-1.json', suite: TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-cases/test-suite-1', + '/test/e2e/modules/e2e-test/test-cases/test-suite-1', tests: { - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-1': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-1': { refs: ['1111111'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-2': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-2': { refs: ['2222222'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-3': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-3': { refs: ['3333333'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-4': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-4': { refs: ['4444444'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-5': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-5': { refs: ['5555555'] } @@ -35,24 +35,24 @@ const testCasesResult = { { config: TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-2.json', + '/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-2.json', suite: TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-cases/test-suite-2', + '/test/e2e/modules/e2e-test/test-cases/test-suite-2', tests: { - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-6': + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-6': { refs: ['6666666'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-7': + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-7': { refs: ['7777777'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-8': + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-8': { refs: ['8888888'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-9': + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-9': { refs: ['9999999'] } @@ -61,47 +61,47 @@ const testCasesResult = { { config: TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-case/test-cases-config.test/test-cases-3.json', + '/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-3.json', suite: TestEnv.getWorkspacePath() + - '/test/integration/modules/integration-test/test-cases/test-suite-3', + '/test/e2e/modules/e2e-test/test-cases/test-suite-3', tests: {} } ], tests: { - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-1': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-1': { refs: ['1111111'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-1/example-2': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-2': { refs: ['2222222'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-3': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-3': { refs: ['3333333'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-4': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-4': { refs: ['4444444'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-1/example-group-2/example-5': + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-5': { refs: ['5555555'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-6': + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-6': { refs: ['6666666'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-3/example-7': + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-7': { refs: ['7777777'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-8': + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-8': { refs: ['8888888'] }, - '/test/integration/modules/integration-test/test-cases/test-suite-2/example-group-4/example-9': + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-9': { refs: ['9999999'] } diff --git a/test/e2e/modules/e2e-test/test-case/test-cases.cjs b/test/e2e/modules/e2e-test/test-case/test-cases.cjs index a15ab97aa..e2fccbf5c 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-cases.cjs @@ -3,8 +3,8 @@ const fs = require('fs') const assert = require('../../../modules/console/assert.cjs') const WorkspacePath = require('../../../modules/workspace/workspace-path.cjs') -const TestEnv = require('../../../modules/integration-test/test-env.cjs') -const TestCasesConfig = require('../../../modules/integration-test/test-case/test-cases-config.cjs') +const TestEnv = require('../../../modules/e2e-test/test-env.cjs') +const TestCasesConfig = require('../../../modules/e2e-test/test-case/test-cases-config.cjs') class TestCases { static getTestCases(testCasesConfigReady, filters) { diff --git a/test/e2e/modules/e2e-test/test-case/test-cases.test.cjs b/test/e2e/modules/e2e-test/test-case/test-cases.test.cjs index 306655d7a..da95f1eee 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases.test.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-cases.test.cjs @@ -27,143 +27,143 @@ const testCaseList = [ { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: '/test/integration/test_report/unit/test-cases/suite1/test1', + testSuite: 'test/e2e/test_report/unit/test-cases/suite1', + testFile: '/test/e2e/test_report/unit/test-cases/suite1/test1', testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite1/test1', + testName: '/test/e2e/test_report/unit/test-cases/suite1/test1', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1a', + testSuite: 'test/e2e/test_report/unit/test-cases/suite1', + testFile: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/test1a', testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1a', + testName: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/test1a', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', - testFile: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1aa', + testSuite: 'test/e2e/test_report/unit/test-cases/suite1', + testFile: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/test1aa', testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/test1aa', + testName: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/test1aa', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testSuite: 'test/e2e/test_report/unit/test-cases/suite1', testFile: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', testIndex: undefined, testName: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testSuite: 'test/e2e/test_report/unit/test-cases/suite1', testFile: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', testIndex: undefined, testName: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testSuite: 'test/e2e/test_report/unit/test-cases/suite1', testFile: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/testgroup1c/test1c', + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/testgroup1c/test1c', testIndex: undefined, testName: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/testgroup1c/test1c', + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/testgroup1c/test1c', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: '/test/integration/test_report/unit/test-cases/suite2/test2', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', + testFile: '/test/e2e/test_report/unit/test-cases/suite2/test2', testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite2/test2', + testName: '/test/e2e/test_report/unit/test-cases/suite2/test2', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2a', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', + testFile: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/test2a', testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2a', + testName: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/test2a', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2aa', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', + testFile: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/test2aa', testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/test2aa', + testName: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/test2aa', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', testIndex: undefined, testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', testIndex: undefined, testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', errorMsg: undefined, testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', testIndex: 0, testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c1', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c1', testType: 'multi' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', errorMsg: undefined, testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', testIndex: 1, testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c2', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c2', testType: 'multi' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', - testFile: '/test/integration/test_report/unit/test-cases/suite2/testgroup2d/test2d', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', + testFile: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2d/test2d', testIndex: undefined, - testName: '/test/integration/test_report/unit/test-cases/suite2/testgroup2d/test2d', + testName: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2d/test2d', testType: 'single' } ] @@ -172,36 +172,36 @@ const filteredTestCaseList = [ { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite1', + testSuite: 'test/e2e/test_report/unit/test-cases/suite1', testFile: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', testIndex: undefined, testName: - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', errorMsg: undefined, testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', testIndex: 0, testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c1', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c1', testType: 'multi' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), - testSuite: 'test/integration/test_report/unit/test-cases/suite2', + testSuite: 'test/e2e/test_report/unit/test-cases/suite2', errorMsg: undefined, testFile: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c', testIndex: 1, testName: - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c2', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c/c2', testType: 'multi' } ] @@ -210,12 +210,12 @@ const testCasesConfigReady = new Promise((resolve, reject) => { return resolve({ suites: [ { - suite: './test/integration/test_report/unit/test-cases/suite1', + suite: './test/e2e/test_report/unit/test-cases/suite1', config: '', tests: {} }, { - suite: './test/integration/test_report/unit/test-cases/suite2', + suite: './test/e2e/test_report/unit/test-cases/suite2', config: '', tests: {} } @@ -230,7 +230,7 @@ beforeEach(() => { jest.spyOn(TestCases, 'importTestCase').mockImplementation((p) => { if ( p === - 'test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c.mjs' + 'test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c.mjs' ) { return new Promise((resolve, reject) => { return resolve({ @@ -435,11 +435,11 @@ describe('getTestCases()', () => { return TestCases.getTestCases(testCasesConfigReady, [ path.join( TestEnv.getWorkspacePath(), - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb' + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb' ), path.join( TestEnv.getWorkspacePath(), - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' ) ]).then((testCases) => { expect(testCases).toEqual({ @@ -451,8 +451,8 @@ describe('getTestCases()', () => { test('if absolute path (workspace), filtered test cases are valid', () => { return TestCases.getTestCases(testCasesConfigReady, [ - '/test/integration/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', - '/test/integration/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' + '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/testgroup2c/test2c' ]).then((testCases) => { expect(testCases).toEqual({ testCases: testCaseList, diff --git a/test/e2e/modules/e2e-test/test-console.cjs b/test/e2e/modules/e2e-test/test-console.cjs index c8142059b..6adec8ada 100644 --- a/test/e2e/modules/e2e-test/test-console.cjs +++ b/test/e2e/modules/e2e-test/test-console.cjs @@ -1,7 +1,7 @@ const path = require('path') const fs = require('fs') -const TestEnv = require('../../modules/integration-test/test-env.cjs') +const TestEnv = require('../../modules/e2e-test/test-env.cjs') const Console = require('../../modules/console/console.cjs') class TestConsole extends Console { @@ -17,7 +17,7 @@ class TestConsole extends Console { constructor(fileLog) { if (fileLog) { // eslint-disable-next-line no-var - var filePrefix = 'integration.test' + var filePrefix = 'e2e.test' const pathPrefix = 'logs' // eslint-disable-next-line no-var var testSuiteLogPath = path.join(TestEnv.getTestSuiteReportPath(), pathPrefix) diff --git a/test/e2e/modules/e2e-test/test-env.cjs b/test/e2e/modules/e2e-test/test-env.cjs index d6efc4eea..6cfffe5bc 100644 --- a/test/e2e/modules/e2e-test/test-env.cjs +++ b/test/e2e/modules/e2e-test/test-env.cjs @@ -10,7 +10,7 @@ class TestEnv { } static getTestSuiteRelativePath() { - return 'test/integration' + return 'test/e2e' } static getTestSuiteReportPath() { diff --git a/test/e2e/modules/e2e-test/test-env.test.cjs b/test/e2e/modules/e2e-test/test-env.test.cjs index bc22de98a..dbfdd088d 100644 --- a/test/e2e/modules/e2e-test/test-env.test.cjs +++ b/test/e2e/modules/e2e-test/test-env.test.cjs @@ -8,15 +8,15 @@ test('if getWorkspacePath() returns workspacePath', () => { }) test('if getTestSuitePath() returns testSuitePath', () => { - expect(TestEnv.getTestSuitePath()).toBe(path.join(ws, 'test/integration')) + expect(TestEnv.getTestSuitePath()).toBe(path.join(ws, 'test/e2e')) }) test('if getTestSuiteReportPath() returns testSuiteReportPath', () => { - expect(TestEnv.getTestSuiteReportPath()).toBe(path.join(ws, 'test/integration/test_report')) + expect(TestEnv.getTestSuiteReportPath()).toBe(path.join(ws, 'test/e2e/test_report')) }) test('if getTestSuiteResultsPath() returns testSuiteResultsPath', () => { expect(TestEnv.getTestSuiteResultsPath()).toBe( - path.join(ws, 'test/integration/test_report/results') + path.join(ws, 'test/e2e/test_report/results') ) }) diff --git a/test/e2e/modules/e2e-test/test-suite-result.cjs b/test/e2e/modules/e2e-test/test-suite-result.cjs index 5b12f3ec1..317265551 100644 --- a/test/e2e/modules/e2e-test/test-suite-result.cjs +++ b/test/e2e/modules/e2e-test/test-suite-result.cjs @@ -2,7 +2,7 @@ const path = require('path') const fs = require('fs') const prettier = require('prettier') -const TestEnv = require('../../modules/integration-test/test-env.cjs') +const TestEnv = require('../../modules/e2e-test/test-env.cjs') class TestSuiteResult { #cnsl @@ -35,7 +35,7 @@ class TestSuiteResult { ) this.#cnsl.log( ''.padEnd(this.#cnsl.getTestStatusPad() + 5, ' ') + - 'http://127.0.0.1:8080/test/integration/tools/manual/client?testFile=' + + 'http://127.0.0.1:8080/test/e2e/tools/manual/client?testFile=' + testCase.testFile + '&testType=' + testCase.testType + diff --git a/test/e2e/modules/e2e-test/test-suite.cjs b/test/e2e/modules/e2e-test/test-suite.cjs index 413fc4e35..07b99a6b4 100644 --- a/test/e2e/modules/e2e-test/test-suite.cjs +++ b/test/e2e/modules/e2e-test/test-suite.cjs @@ -6,12 +6,12 @@ const AggregateErrorReady = import('aggregate-error') const WorkspaceHost = require('../../modules/workspace/workspace-host.cjs') const BrowsersChrome = require('../../modules/browser/browsers-chrome.cjs') const VizzuUrl = require('../../modules/vizzu/vizzu-url.cjs') -const TestEnv = require('../../modules/integration-test/test-env.cjs') -const TestConsole = require('../../modules/integration-test/test-console.cjs') -const TestCase = require('../../modules/integration-test/test-case/test-case.cjs') -const TestCasesConfig = require('../../modules/integration-test/test-case/test-cases-config.cjs') -const TestCases = require('../../modules/integration-test/test-case/test-cases.cjs') -const TestSuiteResult = require('../../modules/integration-test/test-suite-result.cjs') +const TestEnv = require('../../modules/e2e-test/test-env.cjs') +const TestConsole = require('../../modules/e2e-test/test-console.cjs') +const TestCase = require('../../modules/e2e-test/test-case/test-case.cjs') +const TestCasesConfig = require('../../modules/e2e-test/test-case/test-cases-config.cjs') +const TestCases = require('../../modules/e2e-test/test-case/test-cases.cjs') +const TestSuiteResult = require('../../modules/e2e-test/test-suite-result.cjs') class TestSuite { #cnsl diff --git a/test/e2e/modules/videorecorder/generate.cjs b/test/e2e/modules/videorecorder/generate.cjs index c2c39d0d3..b2f7cbb2d 100644 --- a/test/e2e/modules/videorecorder/generate.cjs +++ b/test/e2e/modules/videorecorder/generate.cjs @@ -8,9 +8,9 @@ const AggregateErrorReady = import('aggregate-error') const WorkspaceHost = require('../../modules/workspace/workspace-host.cjs') const BrowsersChrome = require('../../modules/browser/browsers-chrome.cjs') const VizzuUrl = require('../../modules/vizzu/vizzu-url.cjs') -const TestEnv = require('../../modules/integration-test/test-env.cjs') -const TestCasesConfig = require('../../modules/integration-test/test-case/test-cases-config.cjs') -const TestCases = require('../../modules/integration-test/test-case/test-cases.cjs') +const TestEnv = require('../../modules/e2e-test/test-env.cjs') +const TestCasesConfig = require('../../modules/e2e-test/test-case/test-cases-config.cjs') +const TestCases = require('../../modules/e2e-test/test-case/test-cases.cjs') function checkFileExist(path, timeout = 5000) { let totalTime = 0 @@ -277,8 +277,8 @@ try { '\n' ) .default('c', [ - '/test/integration/test_cases/test_cases.json', - '/test/integration/tests/style_tests.json' + '/test/e2e/test_cases/test_cases.json', + '/test/e2e/tests/style_tests.json' ]) .string('vizzu') diff --git a/test/e2e/modules/vizzu/vizzu-url.test.cjs b/test/e2e/modules/vizzu/vizzu-url.test.cjs index 04e2144cc..85889734b 100644 --- a/test/e2e/modules/vizzu/vizzu-url.test.cjs +++ b/test/e2e/modules/vizzu/vizzu-url.test.cjs @@ -191,21 +191,21 @@ describe('resolveVizzuUrl()', () => { }) describe('with relative path', () => { - const local1 = './test/integration/test_report/unit/vizzu' + const local1 = './test/e2e/test_report/unit/vizzu' test('if ' + local1, () => { return VizzuUrl.resolveVizzuUrl(local1, root, '.').then((url) => { expect(url).toBe(path.resolve(local1 + VizzuUrl.getVizzuJs())) }) }) - const local2 = './test/integration/test_report/unit/vizzu/' + const local2 = './test/e2e/test_report/unit/vizzu/' test('if ' + local2, () => { return VizzuUrl.resolveVizzuUrl(local2, root, '.').then((url) => { expect(url).toBe(path.resolve(local2 + 'vizzu.js')) }) }) - const local3 = './test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuJs() + const local3 = './test/e2e/test_report/unit/vizzu' + VizzuUrl.getVizzuJs() test('if ' + local3, () => { return VizzuUrl.resolveVizzuUrl(local3, root, '.').then((url) => { expect(url).toBe(path.resolve(local3)) @@ -213,7 +213,7 @@ describe('resolveVizzuUrl()', () => { }) const local4 = - './test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() + './test/e2e/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() test('if ' + local4, () => { return VizzuUrl.resolveVizzuUrl(local4, root, '.').then((url) => { expect(url).toBe(path.resolve(local4)) @@ -222,28 +222,28 @@ describe('resolveVizzuUrl()', () => { }) describe('with absolute path', () => { - const local1 = '/test/integration/test_report/unit/vizzu' + const local1 = '/test/e2e/test_report/unit/vizzu' test('if ' + local1, () => { return VizzuUrl.resolveVizzuUrl(local1, root, '.').then((url) => { expect(url).toBe(path.resolve(root + local1 + VizzuUrl.getVizzuJs())) }) }) - const local2 = '/test/integration/test_report/unit/vizzu/' + const local2 = '/test/e2e/test_report/unit/vizzu/' test('if ' + local2, () => { return VizzuUrl.resolveVizzuUrl(local2, root, '.').then((url) => { expect(url).toBe(path.resolve(root + local2 + 'vizzu.js')) }) }) - const local3 = '/test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuJs() + const local3 = '/test/e2e/test_report/unit/vizzu' + VizzuUrl.getVizzuJs() test('if ' + local3, () => { return VizzuUrl.resolveVizzuUrl(local3, root, '.').then((url) => { expect(url).toBe(path.resolve(root + local3)) }) }) - const local4 = '/test/integration/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() + const local4 = '/test/e2e/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() test('if ' + local4, () => { return VizzuUrl.resolveVizzuUrl(local4, root, '.').then((url) => { expect(url).toBe(path.resolve(root + local4)) diff --git a/test/e2e/modules/vizzu/vizzu-version.cjs b/test/e2e/modules/vizzu/vizzu-version.cjs index 2da1cf737..4a1a448d8 100644 --- a/test/e2e/modules/vizzu/vizzu-version.cjs +++ b/test/e2e/modules/vizzu/vizzu-version.cjs @@ -5,7 +5,7 @@ const fetch = require('node-fetch') const WorkspaceHost = require('../../modules/workspace/workspace-host.cjs') const BrowserChrome = require('../../modules/browser/puppeteer-chrome.cjs') const VizzuUrl = require('../../modules/vizzu/vizzu-url.cjs') -const TestEnv = require('../../modules/integration-test/test-env.cjs') +const TestEnv = require('../../modules/e2e-test/test-env.cjs') class VizzuVersion { static getVizzuUrlVersion(vizzuUrl) { @@ -29,7 +29,7 @@ class VizzuVersion { .getUrl( 'http://127.0.0.1:' + String(workspaceHostServerPort) + - '/test/integration/modules/vizzu/vizzu-version-client/index.html' + + '/test/e2e/modules/vizzu/vizzu-version-client/index.html' + '?vizzuUrl=' + vizzuUrl ) diff --git a/test/e2e/test.cjs b/test/e2e/test.cjs index 4f17d5a60..daef815cc 100644 --- a/test/e2e/test.cjs +++ b/test/e2e/test.cjs @@ -1,7 +1,7 @@ const yargs = require('yargs') const VizzuVersion = require('./modules/vizzu/vizzu-version.cjs') -const TestSuite = require('./modules/integration-test/test-suite.cjs') +const TestSuite = require('./modules/e2e-test/test-suite.cjs') const catchError = (err) => { process.exitCode = 1 @@ -20,7 +20,7 @@ try { const usage = ` Usage: $0 [tests] [options] -The integration test aims to comprehensively test the Vizzu library by executing animations represented as a promise chain of animate function calls. +The e2e test aims to comprehensively test the Vizzu library by executing animations represented as a promise chain of animate function calls. Each test case follows predefined animation steps and calculates a hash based on the generated canvas image data for each step. The test validation compares the calculated hash values with the expected values stored for each test case. @@ -56,11 +56,11 @@ Please note that the test require Chrome, ChromeDriver and Selenium Webdriver to '\n(relative or absolute path where the repo folder is the root)' ) .default('c', [ - '/test/integration/test_cases/test_cases.json', - '/test/integration/tests/config_tests.json', - '/test/integration/tests/style_tests.json', - '/test/integration/tests/features.json', - '/test/integration/tests/fixes.json' + '/test/e2e/test_cases/test_cases.json', + '/test/e2e/tests/config_tests.json', + '/test/e2e/tests/style_tests.json', + '/test/e2e/tests/features.json', + '/test/e2e/tests/fixes.json' ]) .choices('Werror', ['noref', 'sameref']) diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index f43d8f315..5ab17ddb7 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -1,5 +1,5 @@ { - "suite": "/test/integration/test_cases", + "suite": "/test/e2e/test_cases", "test": { "basic_animations/anim_order/circle_without_2_carte_horizontal": { "refs": ["be265b7"] diff --git a/test/e2e/tests/config_tests.json b/test/e2e/tests/config_tests.json index 8cae408d9..57dcda3ad 100644 --- a/test/e2e/tests/config_tests.json +++ b/test/e2e/tests/config_tests.json @@ -1,5 +1,5 @@ { - "suite": "/test/integration/tests/config_tests", + "suite": "/test/e2e/tests/config_tests", "test": { "geometry/static_area": { "refs": ["809bba0"] diff --git a/test/e2e/tests/features.json b/test/e2e/tests/features.json index b68d89684..874816fcd 100644 --- a/test/e2e/tests/features.json +++ b/test/e2e/tests/features.json @@ -1,5 +1,5 @@ { - "suite": "/test/integration/tests/features", + "suite": "/test/e2e/tests/features", "test": { "aggregators/aggregators": { "refs": ["bd61770"] diff --git a/test/e2e/tests/fixes.json b/test/e2e/tests/fixes.json index 8a6a403d9..8a4b41056 100644 --- a/test/e2e/tests/fixes.json +++ b/test/e2e/tests/fixes.json @@ -1,5 +1,5 @@ { - "suite": "/test/integration/tests/fixes", + "suite": "/test/e2e/tests/fixes", "test": { "75": { "refs": ["e97e29b"] diff --git a/test/e2e/tests/style_tests.json b/test/e2e/tests/style_tests.json index 1139abd1f..dcb04f7ad 100644 --- a/test/e2e/tests/style_tests.json +++ b/test/e2e/tests/style_tests.json @@ -1,5 +1,5 @@ { - "suite": "/test/integration/tests/style_tests", + "suite": "/test/e2e/tests/style_tests", "test": { "plot/backgroundColor/hex/animated_black-white": { "refs": ["d5034b9"] diff --git a/test/e2e/tools/manual/server/handlers/test-case.cjs b/test/e2e/tools/manual/server/handlers/test-case.cjs index aff306c75..5d234b94a 100644 --- a/test/e2e/tools/manual/server/handlers/test-case.cjs +++ b/test/e2e/tools/manual/server/handlers/test-case.cjs @@ -2,7 +2,7 @@ const fs = require('fs').promises const path = require('path') const prettier = require('prettier') -const TestEnv = require('../../../../modules/integration-test/test-env.cjs') +const TestEnv = require('../../../../modules/e2e-test/test-env.cjs') class TestCaseHandler { #testCaseModule diff --git a/test/e2e/tools/manual/server/handlers/tests.cjs b/test/e2e/tools/manual/server/handlers/tests.cjs index 1224a5d15..8276735bc 100644 --- a/test/e2e/tools/manual/server/handlers/tests.cjs +++ b/test/e2e/tools/manual/server/handlers/tests.cjs @@ -1,8 +1,8 @@ const fs = require('fs').promises -const TestEnv = require('../../../../modules/integration-test/test-env.cjs') -const TestCasesConfig = require('../../../../modules/integration-test/test-case/test-cases-config.cjs') -const TestCases = require('../../../../modules/integration-test/test-case/test-cases.cjs') +const TestEnv = require('../../../../modules/e2e-test/test-env.cjs') +const TestCasesConfig = require('../../../../modules/e2e-test/test-case/test-cases-config.cjs') +const TestCases = require('../../../../modules/e2e-test/test-case/test-cases.cjs') class TestsHandler { #testCaseModule diff --git a/test/e2e/tools/manual/server/main.cjs b/test/e2e/tools/manual/server/main.cjs index 3c2ee752c..d88c96235 100644 --- a/test/e2e/tools/manual/server/main.cjs +++ b/test/e2e/tools/manual/server/main.cjs @@ -1,5 +1,5 @@ const WorkspaceHost = require('../../../modules/workspace/workspace-host.cjs') -const TestEnv = require('../../../modules/integration-test/test-env.cjs') +const TestEnv = require('../../../modules/e2e-test/test-env.cjs') const LibsHandler = require('./handlers/libs.cjs') const TestsHandler = require('./handlers/tests.cjs') @@ -36,7 +36,7 @@ class ManualServer { this.#setRouteValidateTestCase() console.log( - `[ W. HOST ] [ http://127.0.0.1:${this.#workspaceHostServerPort}/test/integration/tools/manual/client ] press CTRL + C to stop` + `[ W. HOST ] [ http://127.0.0.1:${this.#workspaceHostServerPort}/test/e2e/tools/manual/client ] press CTRL + C to stop` ) }) } diff --git a/tools/ci/run/pkg-purge-js.sh b/tools/ci/run/pkg-purge-js.sh index e74ccf1f5..28af53117 100755 --- a/tools/ci/run/pkg-purge-js.sh +++ b/tools/ci/run/pkg-purge-js.sh @@ -2,7 +2,7 @@ set -e -version=$(node ./test/integration/test.cjs -v --vizzu /dist/vizzu.min.js|awk -F'-' '{print $1}') +version=$(node ./test/e2e/test.cjs -v --vizzu /dist/vizzu.min.js|awk -F'-' '{print $1}') echo "version: $version" npm install vizzu@$version node ./tools/ci/purge.cjs $version diff --git a/tools/ci/run/pkg-set-version-js.sh b/tools/ci/run/pkg-set-version-js.sh index 7f829ab9e..98ded6e79 100755 --- a/tools/ci/run/pkg-set-version-js.sh +++ b/tools/ci/run/pkg-set-version-js.sh @@ -2,7 +2,7 @@ set -e -version=$(node ./test/integration/test.cjs -v --vizzu /dist/vizzu.min.js|awk -F'-' '{print $1}') +version=$(node ./test/e2e/test.cjs -v --vizzu /dist/vizzu.min.js|awk -F'-' '{print $1}') echo "version: $version" node ./tools/ci/version.cjs $version diff --git a/tools/ci/run/test-gsutil.sh b/tools/ci/run/test-gsutil.sh index d0c99ce41..bb87110a4 100755 --- a/tools/ci/run/test-gsutil.sh +++ b/tools/ci/run/test-gsutil.sh @@ -2,8 +2,8 @@ SHORT_SHA="$1" npm test -- --vizzu /dist/vizzu.min.js --hashes ALL --maxFailedImages 100 || TEST_FAILED=true -tar -czvf test/integration/test_report.tgz test/integration/test_report/ || TGZ_FAILED=true -gsutil cp "test/integration/test_report.tgz" "gs://vizzu-lib-main-sha/lib-$SHORT_SHA/test_report.tgz" || GSUTIL_FAILED=true +tar -czvf test/e2e/test_report.tgz test/e2e/test_report/ || TGZ_FAILED=true +gsutil cp "test/e2e/test_report.tgz" "gs://vizzu-lib-main-sha/lib-$SHORT_SHA/test_report.tgz" || GSUTIL_FAILED=true if [ "$TEST_FAILED" == "true" ] || [ "$TGZ_FAILED" == "true" ] || [ "$GSUTIL_FAILED" == "true" ]; then exit 1 fi diff --git a/tools/docs/examples/gen_examples.py b/tools/docs/examples/gen_examples.py index 7ba2b3fad..825fe2144 100644 --- a/tools/docs/examples/gen_examples.py +++ b/tools/docs/examples/gen_examples.py @@ -14,8 +14,8 @@ TOOLS_PATH = REPO_PATH / "tools" MKDOCS_PATH = TOOLS_PATH / "docs" GEN_PATH = MKDOCS_PATH / "examples" -WEB_CONTENT_PATH = REPO_PATH / "test" / "integration" / "test_cases" / "web_content" -TEST_DATA_PATH = REPO_PATH / "test" / "integration" / "test_data" +WEB_CONTENT_PATH = REPO_PATH / "test" / "e2e" / "test_cases" / "web_content" +TEST_DATA_PATH = REPO_PATH / "test" / "e2e" / "test_data" STATIC_EXAMPLES_PATH = WEB_CONTENT_PATH / "static" OPERATION_EXAMPLES_PATH = WEB_CONTENT_PATH / "analytical_operations" PRESET_EXAMPLES_PATH = WEB_CONTENT_PATH / "presets" diff --git a/tools/docs/examples/gen_thumbnails.py b/tools/docs/examples/gen_thumbnails.py index a9253eb1c..71ad86fd3 100644 --- a/tools/docs/examples/gen_thumbnails.py +++ b/tools/docs/examples/gen_thumbnails.py @@ -12,7 +12,7 @@ REPO_PATH = Path(__file__).parent / ".." / ".." / ".." TOOLS_PATH = REPO_PATH / "tools" MKDOCS_PATH = TOOLS_PATH / "docs" -VIZZU_TEST_PATH = REPO_PATH / "test" / "integration" +VIZZU_TEST_PATH = REPO_PATH / "test" / "e2e" VIZZU_VIDEO_PATH = VIZZU_TEST_PATH / "modules" / "videorecorder" sys.path.insert(0, str(TOOLS_PATH / "modules")) diff --git a/tools/docs/examples/gen_webcontent_hash.cjs b/tools/docs/examples/gen_webcontent_hash.cjs index 2c8cb409f..24dac1f3b 100644 --- a/tools/docs/examples/gen_webcontent_hash.cjs +++ b/tools/docs/examples/gen_webcontent_hash.cjs @@ -7,7 +7,7 @@ async function getWebContentHash() { 'web_content/presets/', 'web_content/static/' ] - const fileContent = fs.readFileSync('./test/integration/test_cases/test_cases.json', 'utf8') + const fileContent = fs.readFileSync('./test/e2e/test_cases/test_cases.json', 'utf8') const jsonContent = JSON.parse(fileContent) let filteredItems = [] From 198eca7c93fc0a4f64c9e75c44be66bb7876fbba Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 12:52:16 +0100 Subject: [PATCH 127/180] Fixed format --- CONTRIBUTING.md | 4 +- .../test-case/test-cases-config.test.cjs | 4 +- .../test-cases-result.cjs | 135 ++++++++---------- .../e2e-test/test-case/test-cases.test.cjs | 30 ++-- test/e2e/modules/e2e-test/test-env.test.cjs | 4 +- test/e2e/modules/videorecorder/generate.cjs | 5 +- test/e2e/modules/vizzu/vizzu-url.test.cjs | 3 +- 7 files changed, 73 insertions(+), 112 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 96a5a818c..e999c4145 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -219,8 +219,8 @@ Run the following command to start e2e testing: npm test ``` -For information on how e2e testing works and what options it has, please -see the program help: +For information on how e2e testing works and what options it has, please see the +program help: ```sh npm test -- --help diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs b/test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs index 7416b702e..325c9b3cb 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test.cjs @@ -26,9 +26,7 @@ describe('getConfig()', () => { test('if configPath is not file, err is thrown', () => { return expect( - TestCasesConfig.getConfig([ - './modules/e2e-test/test-case/test-cases-config.test' - ]) + TestCasesConfig.getConfig(['./modules/e2e-test/test-case/test-cases-config.test']) ).rejects.toThrow('EISDIR: illegal operation on a directory, read') }) diff --git a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs index f13c6ed3d..afc414d8b 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-result.cjs @@ -7,29 +7,23 @@ const testCasesResult = { TestEnv.getWorkspacePath() + '/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-1.json', suite: - TestEnv.getWorkspacePath() + - '/test/e2e/modules/e2e-test/test-cases/test-suite-1', + TestEnv.getWorkspacePath() + '/test/e2e/modules/e2e-test/test-cases/test-suite-1', tests: { - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-1': - { - refs: ['1111111'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-2': - { - refs: ['2222222'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-3': - { - refs: ['3333333'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-4': - { - refs: ['4444444'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-5': - { - refs: ['5555555'] - } + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-1': { + refs: ['1111111'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-2': { + refs: ['2222222'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-3': { + refs: ['3333333'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-4': { + refs: ['4444444'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-5': { + refs: ['5555555'] + } } }, { @@ -37,25 +31,20 @@ const testCasesResult = { TestEnv.getWorkspacePath() + '/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-2.json', suite: - TestEnv.getWorkspacePath() + - '/test/e2e/modules/e2e-test/test-cases/test-suite-2', + TestEnv.getWorkspacePath() + '/test/e2e/modules/e2e-test/test-cases/test-suite-2', tests: { - '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-6': - { - refs: ['6666666'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-7': - { - refs: ['7777777'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-8': - { - refs: ['8888888'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-9': - { - refs: ['9999999'] - } + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-6': { + refs: ['6666666'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-7': { + refs: ['7777777'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-8': { + refs: ['8888888'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-9': { + refs: ['9999999'] + } } }, { @@ -63,48 +52,38 @@ const testCasesResult = { TestEnv.getWorkspacePath() + '/test/e2e/modules/e2e-test/test-case/test-cases-config.test/test-cases-3.json', suite: - TestEnv.getWorkspacePath() + - '/test/e2e/modules/e2e-test/test-cases/test-suite-3', + TestEnv.getWorkspacePath() + '/test/e2e/modules/e2e-test/test-cases/test-suite-3', tests: {} } ], tests: { - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-1': - { - refs: ['1111111'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-2': - { - refs: ['2222222'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-3': - { - refs: ['3333333'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-4': - { - refs: ['4444444'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-5': - { - refs: ['5555555'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-6': - { - refs: ['6666666'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-7': - { - refs: ['7777777'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-8': - { - refs: ['8888888'] - }, - '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-9': - { - refs: ['9999999'] - } + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-1': { + refs: ['1111111'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-1/example-2': { + refs: ['2222222'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-3': { + refs: ['3333333'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-4': { + refs: ['4444444'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-1/example-group-2/example-5': { + refs: ['5555555'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-6': { + refs: ['6666666'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-3/example-7': { + refs: ['7777777'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-8': { + refs: ['8888888'] + }, + '/test/e2e/modules/e2e-test/test-cases/test-suite-2/example-group-4/example-9': { + refs: ['9999999'] + } } } diff --git a/test/e2e/modules/e2e-test/test-case/test-cases.test.cjs b/test/e2e/modules/e2e-test/test-case/test-cases.test.cjs index da95f1eee..e447205ef 100644 --- a/test/e2e/modules/e2e-test/test-case/test-cases.test.cjs +++ b/test/e2e/modules/e2e-test/test-case/test-cases.test.cjs @@ -55,22 +55,18 @@ const testCaseList = [ testConfig: '', testRepo: path.join(__dirname, '../../../../..'), testSuite: 'test/e2e/test_report/unit/test-cases/suite1', - testFile: - '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', + testFile: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', testIndex: undefined, - testName: - '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', + testName: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1b', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), testSuite: 'test/e2e/test_report/unit/test-cases/suite1', - testFile: - '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + testFile: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', testIndex: undefined, - testName: - '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + testName: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', testType: 'single' }, { @@ -115,22 +111,18 @@ const testCaseList = [ testConfig: '', testRepo: path.join(__dirname, '../../../../..'), testSuite: 'test/e2e/test_report/unit/test-cases/suite2', - testFile: - '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', + testFile: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', testIndex: undefined, - testName: - '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', + testName: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2b', testType: 'single' }, { testConfig: '', testRepo: path.join(__dirname, '../../../../..'), testSuite: 'test/e2e/test_report/unit/test-cases/suite2', - testFile: - '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', + testFile: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', testIndex: undefined, - testName: - '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', + testName: '/test/e2e/test_report/unit/test-cases/suite2/testgroup2a/testgroup2b/test2bb', testType: 'single' }, { @@ -173,11 +165,9 @@ const filteredTestCaseList = [ testConfig: '', testRepo: path.join(__dirname, '../../../../..'), testSuite: 'test/e2e/test_report/unit/test-cases/suite1', - testFile: - '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + testFile: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', testIndex: undefined, - testName: - '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', + testName: '/test/e2e/test_report/unit/test-cases/suite1/testgroup1a/testgroup1b/test1bb', testType: 'single' }, { diff --git a/test/e2e/modules/e2e-test/test-env.test.cjs b/test/e2e/modules/e2e-test/test-env.test.cjs index dbfdd088d..e684fc34c 100644 --- a/test/e2e/modules/e2e-test/test-env.test.cjs +++ b/test/e2e/modules/e2e-test/test-env.test.cjs @@ -16,7 +16,5 @@ test('if getTestSuiteReportPath() returns testSuiteReportPath', () => { }) test('if getTestSuiteResultsPath() returns testSuiteResultsPath', () => { - expect(TestEnv.getTestSuiteResultsPath()).toBe( - path.join(ws, 'test/e2e/test_report/results') - ) + expect(TestEnv.getTestSuiteResultsPath()).toBe(path.join(ws, 'test/e2e/test_report/results')) }) diff --git a/test/e2e/modules/videorecorder/generate.cjs b/test/e2e/modules/videorecorder/generate.cjs index b2f7cbb2d..438d0dd76 100644 --- a/test/e2e/modules/videorecorder/generate.cjs +++ b/test/e2e/modules/videorecorder/generate.cjs @@ -276,10 +276,7 @@ try { '\n(relative or absolute path where the repo folder is the root)' + '\n' ) - .default('c', [ - '/test/e2e/test_cases/test_cases.json', - '/test/e2e/tests/style_tests.json' - ]) + .default('c', ['/test/e2e/test_cases/test_cases.json', '/test/e2e/tests/style_tests.json']) .string('vizzu') .nargs('vizzu', 1) diff --git a/test/e2e/modules/vizzu/vizzu-url.test.cjs b/test/e2e/modules/vizzu/vizzu-url.test.cjs index 85889734b..eb26d9b29 100644 --- a/test/e2e/modules/vizzu/vizzu-url.test.cjs +++ b/test/e2e/modules/vizzu/vizzu-url.test.cjs @@ -212,8 +212,7 @@ describe('resolveVizzuUrl()', () => { }) }) - const local4 = - './test/e2e/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() + const local4 = './test/e2e/test_report/unit/vizzu' + VizzuUrl.getVizzuMinJs() test('if ' + local4, () => { return VizzuUrl.resolveVizzuUrl(local4, root, '.').then((url) => { expect(url).toBe(path.resolve(local4)) From e1e3b48696968ff9bad7e1a485ca5dd9ec4d23c5 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 12:58:02 +0100 Subject: [PATCH 128/180] Update changelog --- CHANGELOG.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c9a03633..9b1ea232f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,17 +4,17 @@ ### Fixed -- Type-fest dependency added as normal instead of dev. -- Added missing `cvizzu.d.ts` and `cvizzu.types.d.ts` to the `npm` package. -- When only logo rendered chart resized, the previous drawn logo position was not deleted. -- At the mouse events the lib is not queried the exact rendered chart position through API. -- On axis labels sometimes missed a space character between value and unit. -- Rendered label units are suddenly disappeared when target plot does not contain a unit. -- Remove "rotate" setting, add "angle" setting. +- Corrected listing of Type-fest dependency from development to normal. +- Added missing `cvizzu.d.ts` and `cvizzu.types.d.ts` to the npm package. +- Logo positioning issue in charts when only the logo is rendered and the chart is resized. +- API issue where exact chart position was not accurately queried during mouse events. +- Missing space between value and unit in axis labels. +- Bug fixed where rendered label units disappeared when target plot did not contain a unit. +- Configuration of experimental plot rotation feature changed from relative `rotate` to absolute `angle`. ### Added -- Units on legend. +- Units on legend. ## [0.9.2] - 2023-11-22 From 7a57a3fcd9621c03ad62dbfa1319128146ec189a Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 13:46:03 +0100 Subject: [PATCH 129/180] fixed test result formatting --- test/e2e/accept-changes.cjs | 5 +++-- test/e2e/modules/e2e-test/test-suite-result.cjs | 5 +++-- test/e2e/tools/manual/server/handlers/test-case.cjs | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/test/e2e/accept-changes.cjs b/test/e2e/accept-changes.cjs index 396dda8d0..b3d1a23f1 100644 --- a/test/e2e/accept-changes.cjs +++ b/test/e2e/accept-changes.cjs @@ -14,9 +14,10 @@ function copyHashes(failHashFile, refHashFile) { refHashData.test[testFilename].refs[0] = failHashData.test[testFilename].refs[0] } - const formattedRefHashDataReady = prettier.format(JSON.stringify(refHashData, null, 2), { + const formattedRefHashDataReady = prettier.format(JSON.stringify(refHashData, null, '\t'), { parser: 'json', - tabWidth: 2 + tabWidth: 4, + useTabs: true }) formattedRefHashDataReady.then((formattedRefHashData) => { fs.writeFileSync(refHashFile, formattedRefHashData) diff --git a/test/e2e/modules/e2e-test/test-suite-result.cjs b/test/e2e/modules/e2e-test/test-suite-result.cjs index 317265551..eac4bf926 100644 --- a/test/e2e/modules/e2e-test/test-suite-result.cjs +++ b/test/e2e/modules/e2e-test/test-suite-result.cjs @@ -155,10 +155,11 @@ class TestSuiteResult { return a }, {}) const formattedConfigDataReady = prettier.format( - JSON.stringify(configData, null, 2), + JSON.stringify(configData, null, '\t'), { parser: 'json', - tabWidth: 2 + tabWidth: 4, + useTabs: true } ) formattedConfigDataReady.then((formattedConfigData) => { diff --git a/test/e2e/tools/manual/server/handlers/test-case.cjs b/test/e2e/tools/manual/server/handlers/test-case.cjs index 5d234b94a..98234f65f 100644 --- a/test/e2e/tools/manual/server/handlers/test-case.cjs +++ b/test/e2e/tools/manual/server/handlers/test-case.cjs @@ -129,9 +129,10 @@ class TestConfigUpdater { #writeConfig(configPath, config) { return prettier - .format(JSON.stringify(config, null, 2), { + .format(JSON.stringify(config, null, '\t'), { parser: 'json', - tabWidth: 2 + tabWidth: 4, + useTabs: true }) .then((stringifiedConfig) => { return fs From 17295212aecd20dd18f7e7b39920c3eacf50d6d7 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 14:06:31 +0100 Subject: [PATCH 130/180] Set version to 0.9.3 --- CHANGELOG.md | 2 ++ src/chart/main/version.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b1ea232f..b6730db8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## [Unreleased] +## [0.9.3] - 2023-12-20 + ### Fixed - Corrected listing of Type-fest dependency from development to normal. diff --git a/src/chart/main/version.cpp b/src/chart/main/version.cpp index 2539ccbe9..12c76ec28 100644 --- a/src/chart/main/version.cpp +++ b/src/chart/main/version.cpp @@ -1,5 +1,5 @@ #include "version.h" -const App::Version Vizzu::Main::version(0, 9, 2); +const App::Version Vizzu::Main::version(0, 9, 3); const char *const Vizzu::Main::siteUrl = "https://vizzuhq.com/"; From 4b221906efc3e3fff3f6d483837100850273ff25 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 15:09:01 +0100 Subject: [PATCH 131/180] fixed test hash Updated Puppeteer in the previous pr (caused warning there) --- test/e2e/test_cases/test_cases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index 5ab17ddb7..c1a449f4d 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -299,7 +299,7 @@ "refs": ["b61766f"] }, "operations/orientation_tutorial_data/line_orientation": { - "refs": ["6e4f82e"] + "refs": ["e90c2a0"] }, "operations/orientation_tutorial_data/rectangle_orientation": { "refs": ["5af7144"] From bf7d02ed80420c688b1cc1bcc4c87c355a9f57ed Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 15:16:45 +0100 Subject: [PATCH 132/180] e2e test turn on --Werror sameref --- tools/ci/run/test-gsutil.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci/run/test-gsutil.sh b/tools/ci/run/test-gsutil.sh index bb87110a4..453c8510d 100755 --- a/tools/ci/run/test-gsutil.sh +++ b/tools/ci/run/test-gsutil.sh @@ -1,7 +1,7 @@ #!/bin/bash SHORT_SHA="$1" -npm test -- --vizzu /dist/vizzu.min.js --hashes ALL --maxFailedImages 100 || TEST_FAILED=true +npm test -- --vizzu /dist/vizzu.min.js --Werror sameref --hashes ALL --maxFailedImages 100 || TEST_FAILED=true tar -czvf test/e2e/test_report.tgz test/e2e/test_report/ || TGZ_FAILED=true gsutil cp "test/e2e/test_report.tgz" "gs://vizzu-lib-main-sha/lib-$SHORT_SHA/test_report.tgz" || GSUTIL_FAILED=true if [ "$TEST_FAILED" == "true" ] || [ "$TGZ_FAILED" == "true" ] || [ "$GSUTIL_FAILED" == "true" ]; then From 5e391a5f16fb202686ef2a792b0c22e1dfdee658 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Wed, 20 Dec 2023 15:35:42 +0100 Subject: [PATCH 133/180] format + fix xAxisLabel margin --- src/apps/weblib/canvas.yaml | 24 ++++++++++++------------ src/apps/weblib/interface.js | 20 ++++++++++---------- src/apps/weblib/ts-api/cvizzu.types.d.ts | 2 +- src/apps/weblib/ts-api/module/ccanvas.ts | 6 +++--- src/apps/weblib/ts-api/module/module.ts | 10 +++++----- src/apps/weblib/ts-api/render.ts | 14 +++++++------- src/chart/main/style.cpp | 4 ++-- src/chart/main/stylesheet.cpp | 9 +++------ 8 files changed, 43 insertions(+), 46 deletions(-) diff --git a/src/apps/weblib/canvas.yaml b/src/apps/weblib/canvas.yaml index 8835bf0a2..77036b60d 100644 --- a/src/apps/weblib/canvas.yaml +++ b/src/apps/weblib/canvas.yaml @@ -22,15 +22,15 @@ Canvas: circle: { x: number, y: number, radius: number } line: { x1: number, y1: number, x2: number, y2: number } text: { x: number, y: number, sizex: number, sizey: number, text: C.CString } - setBrushGradient: - { - x1: number, - y1: number, - x2: number, - y2: number, - stopCount: number/size_t, - stops: C.CColorGradientPtr - } - transform: { a: number, b: number, c: number, d: number, e: number, f: number } - save: {} - restore: {} + setBrushGradient: + { + x1: number, + y1: number, + x2: number, + y2: number, + stopCount: number/size_t, + stops: C.CColorGradientPtr + } + transform: { a: number, b: number, c: number, d: number, e: number, f: number } + save: {} + restore: {} diff --git a/src/apps/weblib/interface.js b/src/apps/weblib/interface.js index 1f649e4a9..26ac0a794 100644 --- a/src/apps/weblib/interface.js +++ b/src/apps/weblib/interface.js @@ -2,14 +2,14 @@ mergeInto(LibraryManager.library, { openUrl: function (url) { window.open(UTF8ToString(url), '_blank') }, - textBoundary: function (font, text, sizeX, sizeY) { - const dc = Module.measureCanvas - dc.font = UTF8ToString(font) - let metrics = dc.measureText(UTF8ToString(text)) - const width = metrics.width - metrics = dc.measureText('Op') - const height = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent - setValue(sizeX, width, 'double') - setValue(sizeY, height, 'double') - } + textBoundary: function (font, text, sizeX, sizeY) { + const dc = Module.measureCanvas + dc.font = UTF8ToString(font) + let metrics = dc.measureText(UTF8ToString(text)) + const width = metrics.width + metrics = dc.measureText('Op') + const height = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent + setValue(sizeX, width, 'double') + setValue(sizeY, height, 'double') + } }) diff --git a/src/apps/weblib/ts-api/cvizzu.types.d.ts b/src/apps/weblib/ts-api/cvizzu.types.d.ts index 8b155fd87..2ac8c28c2 100644 --- a/src/apps/weblib/ts-api/cvizzu.types.d.ts +++ b/src/apps/weblib/ts-api/cvizzu.types.d.ts @@ -46,7 +46,7 @@ export interface ModuleOptions { export interface CVizzu { // decorations canvases: { [key: CPointer]: Canvas } - measureCanvas: CanvasRenderingContext2D + measureCanvas: CanvasRenderingContext2D // members HEAPU8: Uint8Array diff --git a/src/apps/weblib/ts-api/module/ccanvas.ts b/src/apps/weblib/ts-api/module/ccanvas.ts index 01fcce0b9..deec7aeba 100644 --- a/src/apps/weblib/ts-api/module/ccanvas.ts +++ b/src/apps/weblib/ts-api/module/ccanvas.ts @@ -12,7 +12,7 @@ export class CCanvas extends CObject { return new CColorGradient(this, stops, stopCount) } - getString(text: CString): string { - return this._wasm.UTF8ToString(text) - } + getString(text: CString): string { + return this._wasm.UTF8ToString(text) + } } diff --git a/src/apps/weblib/ts-api/module/module.ts b/src/apps/weblib/ts-api/module/module.ts index cec303931..35793df2a 100644 --- a/src/apps/weblib/ts-api/module/module.ts +++ b/src/apps/weblib/ts-api/module/module.ts @@ -13,11 +13,11 @@ export class Module extends CEnv { constructor(wasm: CVizzu) { super(wasm, new ObjectRegistry(wasm._object_free)) const context2D = (document.createElement('canvas')).getContext('2d') - if (!context2D) throw new Error('Failed to get 2D context') - this._wasm.measureCanvas = context2D - this._wasm.canvases = {} - this.setLogging(false) - } + if (!context2D) throw new Error('Failed to get 2D context') + this._wasm.measureCanvas = context2D + this._wasm.canvases = {} + this.setLogging(false) + } registerRenderer(cCanvas: CCanvas, canvas: Canvas): void { this._wasm.canvases[cCanvas.getId()] = canvas diff --git a/src/apps/weblib/ts-api/render.ts b/src/apps/weblib/ts-api/render.ts index 20c84f907..a75e5d97c 100644 --- a/src/apps/weblib/ts-api/render.ts +++ b/src/apps/weblib/ts-api/render.ts @@ -184,13 +184,13 @@ export class Render implements Plugin, Canvas { } text(x: number, y: number, sizex: number, sizey: number, text: CString): void { - const dc = this._canvas.context - dc.textAlign = 'left' - dc.textBaseline = 'top' - x = x + (sizex < 0 ? -sizex : 0) - y = y + (sizey < 0 ? -sizey : 0) - dc.fillText(this._ccanvas.getString(text), x, y) - } + const dc = this._canvas.context + dc.textAlign = 'left' + dc.textBaseline = 'top' + x = x + (sizex < 0 ? -sizex : 0) + y = y + (sizey < 0 ? -sizey : 0) + dc.fillText(this._ccanvas.getString(text), x, y) + } setBrushGradient( x1: number, diff --git a/src/chart/main/style.cpp b/src/chart/main/style.cpp index 373ea21ce..71a664c04 100644 --- a/src/chart/main/style.cpp +++ b/src/chart/main/style.cpp @@ -228,9 +228,9 @@ Chart Chart::def() Padding { .paddingTop = Gfx::Length::Emphemeral(8 / 12.0), - .paddingRight = Gfx::Length::Emphemeral(8 / 12.0), + .paddingRight = Gfx::Length::Emphemeral(3 / 12.0), .paddingBottom = Gfx::Length::Emphemeral(8 / 12.0), - .paddingLeft = Gfx::Length::Emphemeral(8 / 12.0) + .paddingLeft = Gfx::Length::Emphemeral(3 / 12.0) }, Font { diff --git a/src/chart/main/stylesheet.cpp b/src/chart/main/stylesheet.cpp index 275a098d8..2a3ad84c0 100644 --- a/src/chart/main/stylesheet.cpp +++ b/src/chart/main/stylesheet.cpp @@ -92,11 +92,8 @@ void Sheet::setAxisLabels() else if (const auto &xAxis = options->getChannels().at(Gen::ChannelId::x); !xAxis.isEmpty() && xAxis.isDimension() - && options->angle == 0) { + && options->angle == 0) def.angle.reset(); - // def.paddingLeft = Gfx::Length::Emphemeral(2 / 12.0); - // def.paddingRight = Gfx::Length::Emphemeral(2 / 12.0); - } } void Sheet::setAxisTitle() @@ -210,8 +207,8 @@ void Sheet::setAfterStyles(Gen::Plot &plot, const Geom::Size &size) auto textBoundary = Gfx::ICanvas::textBoundary(font, pair.second.label); - auto textXMargin = 0.; // xLabel.toMargin(textBoundary, - // font.size).getSpace().x; + auto textXMargin = + xLabel.toMargin(textBoundary, font.size).getSpace().x; auto xHalfSize = (textBoundary.x + textXMargin) / plotX / 2.0; From 083bc66846c0866819b519d5a84a6e185453ca9a Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 15:47:46 +0100 Subject: [PATCH 134/180] Remove CHANGELOG from the npm package --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 365961320..82837bded 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ "./*.json": "./*.json" }, "files": [ - "CHANGELOG.md", "LICENSE", "package.json", "README.md", From 29d8deda1702acee7576e1a12ca628fd54573c36 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 16:31:48 +0100 Subject: [PATCH 135/180] fixed changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6730db8f..fcf4110d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Fixed +- Orientation and channel min/max cannot be null, only auto - Corrected listing of Type-fest dependency from development to normal. - Added missing `cvizzu.d.ts` and `cvizzu.types.d.ts` to the npm package. - Logo positioning issue in charts when only the logo is rendered and the chart is resized. @@ -25,7 +26,6 @@ - Fixed redraw on browser zoom (bug since 0.9.0). - Fixed clearing of the canvas before rendering when devicePixelRatio is not 1. - TypeScript definition fixed, measures can contain null values. -- Orientation and channel min/max cannot be null, only auto ### Added From e8b09e22208b29cb1606670a458a1081fbd0bb60 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 20 Dec 2023 16:44:29 +0100 Subject: [PATCH 136/180] added showcases scripts --- package.json | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 82837bded..36c7256ee 100644 --- a/package.json +++ b/package.json @@ -57,14 +57,16 @@ "format:tools": "npm-run-all format-tools:*", "format-tools:js": "npx prettier -c tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs .github", "format-tools:py": "./tools/ci/run/format-black-py.sh --diff --check tools", + "format-showcases": "npx prettier -c vizzu-lib-doc/docs vizzu-lib-doc/.github", "lint": "npm-run-all lint:*", "lint:src": "npm-run-all lint-src:*", - "lint-src:js": "npx eslint --ext .js,.cjs,.mjs,.ts --config .eslintrc.cjs src test", + "lint-src:js": "npx eslint --config .eslintrc.cjs src test", "lint:docs": "npm-run-all lint-docs:*", - "lint-docs:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", + "lint-docs:js": "npx eslint --config .eslintrc.cjs docs", "lint:tools": "npm-run-all lint-tools:*", - "lint-tools:js": "npx eslint --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs", + "lint-tools:js": "npx eslint --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs", "lint-tools:py": "./tools/ci/run/lint-pylint-py.sh tools", + "lint-showcases": "npx eslint --config .eslintrc.cjs vizzu-lib-doc/docs", "type": "npm-run-all type:*", "type:src": "npm-run-all type-src:*", "type-src:js": "npx check-dts ./test/dts/vizzu.d.ts", @@ -94,13 +96,15 @@ "fix-format:tools": "npm-run-all fix-format-tools:*", "fix-format-tools:js": "npx prettier -w tools/ci tools/docs .eslintrc.cjs .puppeteerrc.cjs .github", "fix-format-tools:py": "./tools/ci/run/format-black-py.sh tools", + "fix-format-showcases": "npx prettier -w vizzu-lib-doc/docs vizzu-lib-doc/.github", "fix-lint": "npm-run-all fix-lint:*", "fix-lint:src": "npm-run-all fix-lint-src:*", - "fix-lint-src:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs src test", + "fix-lint-src:js": "npx eslint --fix --config .eslintrc.cjs src test", "fix-lint:docs": "npm-run-all fix-lint-docs:*", - "fix-lint-docs:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs docs", + "fix-lint-docs:js": "npx eslint --fix --config .eslintrc.cjs docs", "fix-lint:tools": "npm-run-all fix-lint-tools:*", - "fix-lint-tools:js": "npx eslint --fix --ext .js,.cjs,.mjs --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs", + "fix-lint-tools:js": "npx eslint --fix --config .eslintrc.cjs tools/ci tools/docs .eslintrc.cjs", + "fix-lint-showcases": "npx eslint --fix --config .eslintrc.cjs vizzu-lib-doc/docs", "gen-thumbnail": "./tools/ci/run/docs-gen-thumbnail.sh", "gen-thumbnail-gsutil": "./tools/ci/run/docs-gen-thumbnail-gsutil.sh", "build-docs": "./tools/ci/run/docs-build.sh", From f634df67f6ca98a502eca271e670c8e68ce2efbc Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 5 Jan 2024 13:35:12 +0100 Subject: [PATCH 137/180] half testcase fix --- src/chart/main/style.cpp | 4 +- src/chart/main/stylesheet.cpp | 15 +- test/e2e/test_cases/test_cases.json | 224 +++++++++--------- .../compare/stream_stacked.mjs | 14 ++ .../analytical_operations/filter/stream_1.mjs | 11 +- .../analytical_operations/filter/stream_2.mjs | 5 + .../sum/stream_stacked.mjs | 14 ++ .../cookbook/rendering/sparse_axis_labels.mjs | 9 + 8 files changed, 176 insertions(+), 120 deletions(-) diff --git a/src/chart/main/style.cpp b/src/chart/main/style.cpp index 71a664c04..373ea21ce 100644 --- a/src/chart/main/style.cpp +++ b/src/chart/main/style.cpp @@ -228,9 +228,9 @@ Chart Chart::def() Padding { .paddingTop = Gfx::Length::Emphemeral(8 / 12.0), - .paddingRight = Gfx::Length::Emphemeral(3 / 12.0), + .paddingRight = Gfx::Length::Emphemeral(8 / 12.0), .paddingBottom = Gfx::Length::Emphemeral(8 / 12.0), - .paddingLeft = Gfx::Length::Emphemeral(3 / 12.0) + .paddingLeft = Gfx::Length::Emphemeral(8 / 12.0) }, Font { diff --git a/src/chart/main/stylesheet.cpp b/src/chart/main/stylesheet.cpp index 2a3ad84c0..7ab33416e 100644 --- a/src/chart/main/stylesheet.cpp +++ b/src/chart/main/stylesheet.cpp @@ -89,11 +89,16 @@ void Sheet::setAxisLabels() def.position = AxisLabel::Position::max_edge; def.side = AxisLabel::Side::positive; } - else if (const auto &xAxis = - options->getChannels().at(Gen::ChannelId::x); - !xAxis.isEmpty() && xAxis.isDimension() - && options->angle == 0) - def.angle.reset(); + else { + def.paddingRight = Gfx::Length::Emphemeral(3 / 12.0); + def.paddingLeft = Gfx::Length::Emphemeral(3 / 12.0); + + if (const auto &xAxis = + options->getChannels().at(Gen::ChannelId::x); + !xAxis.isEmpty() && xAxis.isDimension() + && options->angle == 0) + def.angle.reset(); + } } void Sheet::setAxisTitle() diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index 5ab17ddb7..b89e2030e 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -17,43 +17,43 @@ "refs": ["a1535ae"] }, "basic_animations/anim_order/rectangle_without_2_polar_column": { - "refs": ["244cc5f"] + "refs": ["57e6f23"] }, "basic_animations/coordsystems/area_carte_2_polar": { - "refs": ["7b3d87d"] + "refs": ["0d93453"] }, "basic_animations/coordsystems/circle_without_2_carte": { "refs": ["44524c8"] }, "basic_animations/coordsystems/rectangle_carte_2_polar": { - "refs": ["6109049"] + "refs": ["70f638b"] }, "basic_animations/coordsystems/rectangle_without_2_carte": { "refs": ["00e5959"] }, "basic_animations/coordsystems/rectangle_without_2_polar": { - "refs": ["5bfd4e0"] + "refs": ["3f2d32b"] }, "basic_animations/labels/axis/circle_negative_2dis_3con": { - "refs": ["6d34d02"] + "refs": ["e2f7928"] }, "basic_animations/labels/marker/area_2dis_3con": { - "refs": ["39a8de7"] + "refs": ["cafea30"] }, "basic_animations/labels/marker/circle_negative_2dis_3con": { - "refs": ["db72798"] + "refs": ["38631f6"] }, "basic_animations/labels/marker/line_2dis_3con": { - "refs": ["a1c8ac0"] + "refs": ["2753eb0"] }, "basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con": { - "refs": ["5df3408"] + "refs": ["aa01f1a"] }, "basic_animations/labels/marker/rectangle_negative_2dis_3con": { - "refs": ["1d1c034"] + "refs": ["7f10103"] }, "basic_animations/labels/rectangle_labels_rotated_charts": { - "refs": ["6ee1ac0"] + "refs": ["3236d84"] }, "basic_animations/legend_transitions/color_2discrete_anim": { "refs": ["955eea3"] @@ -113,7 +113,7 @@ "refs": ["b51fba3"] }, "basic_animations/someOtherTests/merge_split_area_stream_2dis_1con": { - "refs": ["940d210"] + "refs": ["3a00e07"] }, "basic_animations/someOtherTests/total_time_area_bar": { "refs": ["4503ca5"] @@ -185,13 +185,13 @@ "refs": ["42fb179"] }, "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["db55dd3"] + "refs": ["75bbd1b"] }, "data_fault_and_formats/column_rectangle_more_conti": { "refs": ["c2c2362"] }, "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["2d933e7"] + "refs": ["c604d48"] }, "data_fault_and_formats/rectangle_data_cube": { "refs": ["4b66407"] @@ -224,7 +224,7 @@ "refs": ["4263129"] }, "operations/all_operations_sizeing": { - "refs": ["95d6654"] + "refs": ["29a0d5b"] }, "operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate": { "refs": ["8f3c3b6"] @@ -317,7 +317,7 @@ "refs": ["ab5615c"] }, "shorthands/column_shorthands": { - "refs": ["00fe9df"] + "refs": ["b582123"] }, "static_chart_types/cartesian_coo_sys/area_1dis_1con": { "refs": ["4454f52"] @@ -338,7 +338,7 @@ "refs": ["795ad09"] }, "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con": { - "refs": ["cd2b76f"] + "refs": ["f1d1d23"] }, "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con": { "refs": ["c71a56a"] @@ -518,7 +518,7 @@ "refs": ["ac20402"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1": { - "refs": ["70bdcce"] + "refs": ["22431c4"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2": { "refs": ["1ce90c2"] @@ -635,7 +635,7 @@ "refs": ["f20e8be"] }, "web_content/analytical_operations/misc/make_space_with_polar": { - "refs": ["e1404a0"] + "refs": ["823e207"] }, "web_content/analytical_operations/split/area_polar_stacked": { "refs": ["1f3406a"] @@ -698,7 +698,7 @@ "refs": ["e2bf91b"] }, "web_content/analytical_operations/sum/bubble_to_coxcomb": { - "refs": ["4010e8a"] + "refs": ["365be91"] }, "web_content/analytical_operations/sum/bubble_to_radial": { "refs": ["adeac72"] @@ -710,7 +710,7 @@ "refs": ["fd48ec4"] }, "web_content/analytical_operations/sum/bubbleplot_to_radial": { - "refs": ["1547dae"] + "refs": ["41500c0"] }, "web_content/analytical_operations/sum/column_100percent_stacked": { "refs": ["8584e94"] @@ -860,7 +860,7 @@ "refs": ["e104842"] }, "web_content/infinite": { - "refs": ["f9fb8da"] + "refs": ["f16cd5c"] }, "web_content/presets/chart/column": { "refs": ["6ba52a1"] @@ -923,13 +923,13 @@ "refs": ["379b15d"] }, "web_content/presets/graph/stream": { - "refs": ["615796b"] + "refs": ["f832258"] }, "web_content/presets/graph/stream_vertical": { - "refs": ["61c1430"] + "refs": ["b040d2c"] }, "web_content/presets/graph/violin": { - "refs": ["2931418"] + "refs": ["e3711c2"] }, "web_content/presets/graph/violin_vertical": { "refs": ["118b2d9"] @@ -1004,7 +1004,7 @@ "refs": ["0ddd341"] }, "web_content/static/chart/column_stacked": { - "refs": ["514bf91"] + "refs": ["d442396"] }, "web_content/static/plot/dot": { "refs": ["13ff196"] @@ -1079,100 +1079,100 @@ "refs": ["6ad6c69"] }, "ww_animTiming/descartes-polar/01_d-p_r-r-r": { - "refs": ["613bd08"] + "refs": ["136800e"] }, "ww_animTiming/descartes-polar/02_d-p_c-r-c": { - "refs": ["4545f3a"] + "refs": ["1126d1a"] }, "ww_animTiming/descartes-polar/03_d-p_a-r-a": { - "refs": ["336378d"] + "refs": ["1d8b547"] }, "ww_animTiming/descartes-polar/04_d-p_l-r-l": { - "refs": ["25e86bc"] + "refs": ["206dd6c"] }, "ww_animTiming/descartes-polar/05_d-p_r-c-r": { - "refs": ["b65d696"] + "refs": ["9898714"] }, "ww_animTiming/descartes-polar/06_d-p_c-c-c": { - "refs": ["495e636"] + "refs": ["167288b"] }, "ww_animTiming/descartes-polar/07_d-p_a-c-a": { - "refs": ["2003df2"] + "refs": ["8474f5f"] }, "ww_animTiming/descartes-polar/08_d-p_l-c-l": { - "refs": ["d067431"] + "refs": ["a9ffda6"] }, "ww_animTiming/descartes-polar/09_d-p_r-a-r": { - "refs": ["9027d67"] + "refs": ["673cf15"] }, "ww_animTiming/descartes-polar/10_d-p_c-a-c": { - "refs": ["8ee3908"] + "refs": ["3b0d5fb"] }, "ww_animTiming/descartes-polar/11_d-p_a-a-a": { - "refs": ["324bf4b"] + "refs": ["2a3dad3"] }, "ww_animTiming/descartes-polar/12_d-p_l-a-l": { - "refs": ["21ad937"] + "refs": ["fd84cb5"] }, "ww_animTiming/descartes-polar/13_d-p_r-l-r": { - "refs": ["a491f75"] + "refs": ["b3d1ef2"] }, "ww_animTiming/descartes-polar/14_d-p_c-l-c": { - "refs": ["03bd776"] + "refs": ["b66944a"] }, "ww_animTiming/descartes-polar/15_d-p_a-l-a": { - "refs": ["e0bfdbc"] + "refs": ["f584f96"] }, "ww_animTiming/descartes-polar/16_d-p_l-l-l": { - "refs": ["6cae5be"] + "refs": ["36f7cb5"] }, "ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r": { - "refs": ["a01ddc2"] + "refs": ["3f3cc61"] }, "ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c": { - "refs": ["0e357e4"] + "refs": ["548d48c"] }, "ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a": { - "refs": ["cb40a47"] + "refs": ["1bd8ec4"] }, "ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l": { - "refs": ["b0b1acf"] + "refs": ["edf0064"] }, "ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r": { - "refs": ["bf1adce"] + "refs": ["50566c0"] }, "ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c": { - "refs": ["9104d61"] + "refs": ["292ad45"] }, "ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a": { - "refs": ["234adf8"] + "refs": ["f7e8de2"] }, "ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l": { - "refs": ["19fe21a"] + "refs": ["ea1b57c"] }, "ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r": { - "refs": ["490574c"] + "refs": ["7fbbcf4"] }, "ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c": { - "refs": ["f7abd23"] + "refs": ["3f79e19"] }, "ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a": { - "refs": ["5a28ea8"] + "refs": ["628447e"] }, "ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l": { - "refs": ["3692ff5"] + "refs": ["716f774"] }, "ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r": { - "refs": ["e81aa3f"] + "refs": ["be13921"] }, "ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c": { - "refs": ["8be0c6b"] + "refs": ["3dfb204"] }, "ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a": { - "refs": ["f5e6ec2"] + "refs": ["bbfa098"] }, "ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l": { - "refs": ["4ddf6f4"] + "refs": ["37d64e9"] }, "ww_animTiming/descartes/02_d-d_c-r-c": { "refs": ["25c0583"] @@ -1364,28 +1364,28 @@ "refs": ["0d330f3"] }, "ww_animTiming/without-polar/01_w-p_r-r-r": { - "refs": ["4debb3f"] + "refs": ["2ccc0bc"] }, "ww_animTiming/without-polar/02_w-p_c-r-c": { - "refs": ["778cad5"] + "refs": ["32c401d"] }, "ww_animTiming/without-polar/05_w-p_r-c-r": { - "refs": ["55d1db9"] + "refs": ["d85c0e0"] }, "ww_animTiming/without-polar/06_w-p_c-c-c": { "refs": ["2a7649b"] }, "ww_animTiming/without-polar/09_w-p_r-a-r": { - "refs": ["d6bbe4f"] + "refs": ["29254c0"] }, "ww_animTiming/without-polar/10_w-p_c-a-c": { - "refs": ["fbf20f4"] + "refs": ["60d944b"] }, "ww_animTiming/without-polar/13_w-p_r-l-r": { - "refs": ["b22ca3f"] + "refs": ["e3f9562"] }, "ww_animTiming/without-polar/14_w-p_c-l-c": { - "refs": ["5b126f4"] + "refs": ["880bba6"] }, "ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r": { "refs": ["81fc9cb"] @@ -1394,10 +1394,10 @@ "refs": ["5596473"] }, "ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r": { - "refs": ["ce92309"] + "refs": ["a7c038f"] }, "ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c": { - "refs": ["c4ccd0d"] + "refs": ["7d43db2"] }, "ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r": { "refs": ["d4abbe4"] @@ -1415,97 +1415,97 @@ "refs": ["edce2d9"] }, "ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c": { - "refs": ["e4cb32d"] + "refs": ["13dcab9"] }, "ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a": { - "refs": ["bb35082"] + "refs": ["0cc1af0"] }, "ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l": { - "refs": ["b4b56cf"] + "refs": ["5f15907"] }, "ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r": { - "refs": ["bb0d6df"] + "refs": ["1eb859b"] }, "ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c": { - "refs": ["c3cb642"] + "refs": ["eeb7269"] }, "ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a": { - "refs": ["461fdec"] + "refs": ["a020b9c"] }, "ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l": { - "refs": ["fdfdfaa"] + "refs": ["75b68c6"] }, "ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r": { - "refs": ["21d4f78"] + "refs": ["69f0bb7"] }, "ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c": { - "refs": ["7f4a511"] + "refs": ["57ad133"] }, "ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a": { - "refs": ["f10b2c1"] + "refs": ["ad8aec0"] }, "ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l": { - "refs": ["4d72bc6"] + "refs": ["552d1a4"] }, "ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r": { - "refs": ["38f7786"] + "refs": ["be9a388"] }, "ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c": { - "refs": ["fbcb746"] + "refs": ["4aa9c96"] }, "ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a": { - "refs": ["71bfcbb"] + "refs": ["01fd25c"] }, "ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l": { - "refs": ["91d69c9"] + "refs": ["dafd6a8"] }, "ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r": { - "refs": ["87c33d6"] + "refs": ["287477a"] }, "ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c": { - "refs": ["c7981e6"] + "refs": ["df8b0cd"] }, "ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a": { - "refs": ["76d8014"] + "refs": ["c426179"] }, "ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l": { - "refs": ["d4ffa05"] + "refs": ["f597799"] }, "ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r": { - "refs": ["43f00a0"] + "refs": ["a7deb71"] }, "ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c": { - "refs": ["ce69c8a"] + "refs": ["cf4cf63"] }, "ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a": { - "refs": ["2f088e8"] + "refs": ["fe6878f"] }, "ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l": { - "refs": ["167c694"] + "refs": ["e822c13"] }, "ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r": { - "refs": ["8c26a23"] + "refs": ["1b32bed"] }, "ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c": { - "refs": ["3f1ed7f"] + "refs": ["a21bad2"] }, "ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a": { - "refs": ["3959367"] + "refs": ["fada263"] }, "ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l": { - "refs": ["f1fb6a9"] + "refs": ["6bdc57c"] }, "ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r": { - "refs": ["b107554"] + "refs": ["49b4df1"] }, "ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c": { - "refs": ["60499cc"] + "refs": ["3516644"] }, "ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a": { - "refs": ["ff1f803"] + "refs": ["73c758f"] }, "ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l": { - "refs": ["66c898c"] + "refs": ["d9398b0"] }, "ww_animTiming_TESTS/descartes/02_d-d_c-r-c": { "refs": ["aa9e9d6"] @@ -1697,28 +1697,28 @@ "refs": ["5c95387"] }, "ww_animTiming_TESTS/without-polar/01_w-p_r-r-r": { - "refs": ["be70807"] + "refs": ["80c9be6"] }, "ww_animTiming_TESTS/without-polar/02_w-p_c-r-c": { - "refs": ["9341567"] + "refs": ["1360790"] }, "ww_animTiming_TESTS/without-polar/05_w-p_r-c-r": { - "refs": ["3738cab"] + "refs": ["4b47dca"] }, "ww_animTiming_TESTS/without-polar/06_w-p_c-c-c": { "refs": ["dcb3f76"] }, "ww_animTiming_TESTS/without-polar/09_w-p_r-a-r": { - "refs": ["7e9fa0f"] + "refs": ["5e0b294"] }, "ww_animTiming_TESTS/without-polar/10_w-p_c-a-c": { - "refs": ["b97edbc"] + "refs": ["0cb08bc"] }, "ww_animTiming_TESTS/without-polar/13_w-p_r-l-r": { - "refs": ["13d5878"] + "refs": ["58c41e1"] }, "ww_animTiming_TESTS/without-polar/14_w-p_c-l-c": { - "refs": ["2a15690"] + "refs": ["1ad046f"] }, "ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r": { "refs": ["fd7f93b"] @@ -1727,10 +1727,10 @@ "refs": ["7a1a8e0"] }, "ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r": { - "refs": ["4ea7da2"] + "refs": ["0b13dee"] }, "ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c": { - "refs": ["f610cd3"] + "refs": ["49ebd95"] }, "ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r": { "refs": ["26fc0b8"] @@ -1748,7 +1748,7 @@ "refs": ["df8b392"] }, "ww_next_steps/next_steps/02_C_R": { - "refs": ["d3200b8"] + "refs": ["267ddc6"] }, "ww_next_steps/next_steps/02_C_R_water_comparison_sum": { "refs": ["8d0e8af"] @@ -1772,13 +1772,13 @@ "refs": ["f396191"] }, "ww_next_steps/next_steps/35_C_A_violin": { - "refs": ["bdce840"] + "refs": ["af24f40"] }, "ww_next_steps/next_steps/38_C_L_line": { "refs": ["a08c7c4"] }, "ww_next_steps/next_steps_Tests/02_C_R": { - "refs": ["f13c899"] + "refs": ["7c30c14"] }, "ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum": { "refs": ["81c6c1e"] @@ -3203,7 +3203,7 @@ "refs": ["810d76a"] }, "web_content/cookbook/chart_types/historgram": { - "refs": ["b048452"] + "refs": ["13ec620"] }, "web_content/cookbook/chart_types/network_graph": { "refs": ["ae6af16"] @@ -3284,7 +3284,7 @@ "refs": ["34f9d9c"] }, "web_content/cookbook/data_source/csv_load": { - "refs": ["0be6e8c"] + "refs": ["660a651"] }, "web_content/cookbook/rendering/motion_blur": { "refs": ["be67912"] diff --git a/test/e2e/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs index 24601e5de..018951abb 100755 --- a/test/e2e/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs +++ b/test/e2e/test_cases/web_content/analytical_operations/compare/stream_stacked.mjs @@ -36,6 +36,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0 + } + }, yAxis: { label: { numberScale: 'K, M, B, T' @@ -62,6 +67,15 @@ const testSteps = [ }, split: false + }, + style: { + plot: { + xAxis: { + label: { + angle: null + } + } + } } }), (chart) => { diff --git a/test/e2e/test_cases/web_content/analytical_operations/filter/stream_1.mjs b/test/e2e/test_cases/web_content/analytical_operations/filter/stream_1.mjs index 208c68dda..d919ef5f9 100755 --- a/test/e2e/test_cases/web_content/analytical_operations/filter/stream_1.mjs +++ b/test/e2e/test_cases/web_content/analytical_operations/filter/stream_1.mjs @@ -54,7 +54,16 @@ const testSteps = [ record.Format === 'Vinyl') && record.Year <= 1999 }, - config: {} + config: {}, + style: { + plot: { + xAxis: { + label: { + angle: 0 + } + } + } + } }), (chart) => diff --git a/test/e2e/test_cases/web_content/analytical_operations/filter/stream_2.mjs b/test/e2e/test_cases/web_content/analytical_operations/filter/stream_2.mjs index 3fec7fa13..9bf9c79b1 100755 --- a/test/e2e/test_cases/web_content/analytical_operations/filter/stream_2.mjs +++ b/test/e2e/test_cases/web_content/analytical_operations/filter/stream_2.mjs @@ -29,6 +29,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0 + } + }, yAxis: { label: { numberScale: 'K, M, B, T' diff --git a/test/e2e/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs b/test/e2e/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs index 08a0a3700..6c3c774d9 100755 --- a/test/e2e/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs +++ b/test/e2e/test_cases/web_content/analytical_operations/sum/stream_stacked.mjs @@ -37,6 +37,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0 + } + }, yAxis: { label: { numberScale: 'K, M, B, T' @@ -66,6 +71,15 @@ const testSteps = [ split: false, sort: 'byValue', reverse: true + }, + style: { + plot: { + xAxis: { + label: { + angle: null + } + } + } } }), (chart) => { diff --git a/test/e2e/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs b/test/e2e/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs index 6e5683f22..e916e655d 100755 --- a/test/e2e/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs +++ b/test/e2e/test_cases/web_content/cookbook/rendering/sparse_axis_labels.mjs @@ -15,6 +15,15 @@ const testSteps = [ y: 'Revenue', x: { set: 'Year', ticks: true }, title: 'Every 5th label shown on X' + }, + style: { + plot: { + xAxis: { + label: { + angle: 0 + } + } + } } }) } From 6b09508dd0afa597d9dc31bebdcdf4050d723806 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 5 Jan 2024 16:37:16 +0100 Subject: [PATCH 138/180] Add implementation --- src/chart/generator/axis.h | 1 + src/chart/generator/plot.cpp | 3 ++ src/chart/main/events.h | 47 +++++++++++++++++++++++++++--- src/chart/rendering/drawlegend.cpp | 13 +++++++-- src/chart/rendering/drawlegend.h | 1 + 5 files changed, 58 insertions(+), 7 deletions(-) diff --git a/src/chart/generator/axis.h b/src/chart/generator/axis.h index b0867cbe6..e3acc3e08 100644 --- a/src/chart/generator/axis.h +++ b/src/chart/generator/axis.h @@ -135,6 +135,7 @@ struct DimensionAxis using Values = std::multimap; bool enabled{false}; + std::string category{}; DimensionAxis() = default; bool add(const Data::MultiDim::SliceIndex &index, diff --git a/src/chart/generator/plot.cpp b/src/chart/generator/plot.cpp index ee1aa5026..18ee0faf8 100644 --- a/src/chart/generator/plot.cpp +++ b/src/chart/generator/plot.cpp @@ -389,6 +389,9 @@ void Plot::calcDimensionAxis(ChannelId type, } } axis.setLabels(dataCube, table); + + if (auto &&series = scale.labelSeries()) + axis.category = series.value().toString(table); } void Plot::addAlignment() diff --git a/src/chart/main/events.h b/src/chart/main/events.h index 1d6ca5fb0..b6d11d432 100644 --- a/src/chart/main/events.h +++ b/src/chart/main/events.h @@ -276,6 +276,34 @@ class Events } }; + template struct LegendMarkerInfo : Base + { + std::string_view categoryName; + std::string_view categoryValue; + + template + explicit LegendMarkerInfo( + const std::string_view &categoryName, + const std::string_view &categoryValue, + Args &&...args) : + Base(std::forward(args)...), + categoryName(categoryName), + categoryValue(categoryValue) + {} + + void appendToJSON(Conv::JSONObj &&jsonObj) const override + { + if (!categoryName.empty() || !categoryValue.empty()) { + auto &&nested = jsonObj.nested("category"); + if (!categoryName.empty()) + nested("name", categoryName); + if (!categoryValue.empty()) + nested("value", categoryValue); + } + Base::appendToJSON(std::move(jsonObj)); + } + }; + static auto axis(bool horizontal) { return std::make_unique(horizontal); @@ -342,10 +370,15 @@ class Events marker); } - static auto legendLabel(const std::string &label, + static auto legendLabel(const std::string_view &categoryName, + const std::string_view &categoryValue, + const std::string &label, Gen::ChannelId channel) { - return std::make_unique>(label, + return std::make_unique< + LegendMarkerInfo>>(categoryName, + categoryValue, + label, "label", channel); } @@ -358,9 +391,15 @@ class Events channel); } - static auto legendMarker(Gen::ChannelId channel) + static auto legendMarker(const std::string_view &categoryName, + const std::string_view &categoryValue, + Gen::ChannelId channel) { - return std::make_unique("marker", channel); + return std::make_unique>( + categoryName, + categoryValue, + "marker", + channel); } static auto legendBar(Gen::ChannelId channel) diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index 408dd17b2..79810661c 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -88,6 +88,7 @@ void DrawLegend::drawDimension(const Info &info) const auto alpha = value.second.weight * info.weight; drawMarker(info, + value.second.label, colorBuilder.render(value.second.colorBase) * alpha, getMarkerRect(info, itemRect)); @@ -96,7 +97,9 @@ void DrawLegend::drawDimension(const Info &info) const value.second.label, style.label, *events.label, - Events::Targets::legendLabel(value.second.label, + Events::Targets::legendLabel(info.dimension.category, + value.second.label, + value.second.label, info.type), DrawLabel::Options(true, alpha)); } @@ -130,6 +133,7 @@ Geom::TransformedRect DrawLegend::getLabelRect(const Info &info, } void DrawLegend::drawMarker(const Info &info, + std::string_view categoryValue, const Gfx::Color &color, const Geom::Rect &rect) const { @@ -143,7 +147,10 @@ void DrawLegend::drawMarker(const Info &info, Styles::Legend::Marker::Type::circle) * rect.size.minSize() / 2.0; - auto markerElement = Events::Targets::legendMarker(info.type); + auto markerElement = + Events::Targets::legendMarker(info.dimension.category, + categoryValue, + info.type); if (events.marker->invoke( Events::OnRectDrawEvent(*markerElement, {rect, false}))) { @@ -202,7 +209,7 @@ void DrawLegend::extremaLabel(const Info &info, text, style.label, *events.label, - Events::Targets::legendLabel(text, info.type), + Events::Targets::legendLabel({}, {}, text, info.type), DrawLabel::Options(true, info.measureWeight * plusWeight)); } diff --git a/src/chart/rendering/drawlegend.h b/src/chart/rendering/drawlegend.h index 8c04e5272..1cd3e11e6 100644 --- a/src/chart/rendering/drawlegend.h +++ b/src/chart/rendering/drawlegend.h @@ -46,6 +46,7 @@ class DrawLegend : public DrawingContext void drawMeasure(const Info &info) const; void drawMarker(const Info &info, + std::string_view categoryValue, const Gfx::Color &color, const Geom::Rect &rect) const; [[nodiscard]] static Geom::Rect getItemRect(const Info &info, From 0afc5f9387bbcaf7236688e320ec09ff95172e49 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 5 Jan 2024 17:09:02 +0100 Subject: [PATCH 139/180] Category name + value. add to ts-api --- project/cmake/common.txt | 4 ++-- src/apps/weblib/ts-api/events.ts | 4 ++++ src/apps/weblib/typeschema-api/data.yaml | 2 +- src/chart/main/events.h | 11 ++++------- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/project/cmake/common.txt b/project/cmake/common.txt index 0346d0712..d505b24a0 100644 --- a/project/cmake/common.txt +++ b/project/cmake/common.txt @@ -14,11 +14,11 @@ option(cppcheck "Run cppcheck analyzis" OFF) option(cpplint "Run cpplint analyzis" OFF) if(clangtidy) - set(CMAKE_CXX_CLANG_TIDY clang-tidy) + set(CMAKE_CXX_CLANG_TIDY clang-tidy-16) endif() if (clangformat) - set(CLANG_FORMAT_EXE clang-format) + set(CLANG_FORMAT_EXE clang-format-16) get_property(_allTargets GLOBAL PROPERTY GlobalTargetList) if (NOT _allTargets) diff --git a/src/apps/weblib/ts-api/events.ts b/src/apps/weblib/ts-api/events.ts index 786e2fd61..95ab58ba0 100644 --- a/src/apps/weblib/ts-api/events.ts +++ b/src/apps/weblib/ts-api/events.ts @@ -202,12 +202,16 @@ export interface LegendTitle extends TextElement { export interface LegendMarker extends Element { tagName: 'legend-marker' parent: Legend + categoryName?: Data.SeriesName + categoryValue?: Data.Value } /** Label element of a legend element. */ export interface LegendLabel extends TextElement { tagName: 'legend-label' parent: Legend + categoryName?: Data.SeriesName + categoryValue?: Data.Value } /** Bar element of a legend element indicating a continous interval. */ diff --git a/src/apps/weblib/typeschema-api/data.yaml b/src/apps/weblib/typeschema-api/data.yaml index 060c04808..6ad632c6d 100644 --- a/src/apps/weblib/typeschema-api/data.yaml +++ b/src/apps/weblib/typeschema-api/data.yaml @@ -167,7 +167,7 @@ definitions: type: object properties: series: - description: The series that make up the the data set. + description: The series that make up the data set. type: array items: { $ref: Series } required: [series] diff --git a/src/chart/main/events.h b/src/chart/main/events.h index b6d11d432..7bdcc6652 100644 --- a/src/chart/main/events.h +++ b/src/chart/main/events.h @@ -293,13 +293,10 @@ class Events void appendToJSON(Conv::JSONObj &&jsonObj) const override { - if (!categoryName.empty() || !categoryValue.empty()) { - auto &&nested = jsonObj.nested("category"); - if (!categoryName.empty()) - nested("name", categoryName); - if (!categoryValue.empty()) - nested("value", categoryValue); - } + if (!categoryName.empty()) + jsonObj("categoryName", categoryName); + if (!categoryValue.empty()) + jsonObj("categoryValue", categoryValue); Base::appendToJSON(std::move(jsonObj)); } }; From 3fd773a6a1586dea8f6b761e43205f0fa7f36e74 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 5 Jan 2024 17:23:17 +0100 Subject: [PATCH 140/180] Pre-review --- project/cmake/common.txt | 4 ++-- src/apps/weblib/ts-api/events.ts | 6 ++---- src/chart/main/events.h | 8 ++++---- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/project/cmake/common.txt b/project/cmake/common.txt index d505b24a0..0346d0712 100644 --- a/project/cmake/common.txt +++ b/project/cmake/common.txt @@ -14,11 +14,11 @@ option(cppcheck "Run cppcheck analyzis" OFF) option(cpplint "Run cpplint analyzis" OFF) if(clangtidy) - set(CMAKE_CXX_CLANG_TIDY clang-tidy-16) + set(CMAKE_CXX_CLANG_TIDY clang-tidy) endif() if (clangformat) - set(CLANG_FORMAT_EXE clang-format-16) + set(CLANG_FORMAT_EXE clang-format) get_property(_allTargets GLOBAL PROPERTY GlobalTargetList) if (NOT _allTargets) diff --git a/src/apps/weblib/ts-api/events.ts b/src/apps/weblib/ts-api/events.ts index 95ab58ba0..fe14fdafe 100644 --- a/src/apps/weblib/ts-api/events.ts +++ b/src/apps/weblib/ts-api/events.ts @@ -202,16 +202,14 @@ export interface LegendTitle extends TextElement { export interface LegendMarker extends Element { tagName: 'legend-marker' parent: Legend - categoryName?: Data.SeriesName - categoryValue?: Data.Value + categories?: Data.Record } /** Label element of a legend element. */ export interface LegendLabel extends TextElement { tagName: 'legend-label' parent: Legend - categoryName?: Data.SeriesName - categoryValue?: Data.Value + categories?: Data.Record } /** Bar element of a legend element indicating a continous interval. */ diff --git a/src/chart/main/events.h b/src/chart/main/events.h index 7bdcc6652..bcd4f541c 100644 --- a/src/chart/main/events.h +++ b/src/chart/main/events.h @@ -293,10 +293,10 @@ class Events void appendToJSON(Conv::JSONObj &&jsonObj) const override { - if (!categoryName.empty()) - jsonObj("categoryName", categoryName); - if (!categoryValue.empty()) - jsonObj("categoryValue", categoryValue); + if (!categoryName.empty() && !categoryValue.empty()) { + auto &&nested = jsonObj.nested("categories"); + nested(categoryName, categoryValue); + } Base::appendToJSON(std::move(jsonObj)); } }; From 1d04f313b614cebca004dbcefc14b542a5d13150 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 5 Jan 2024 17:35:03 +0100 Subject: [PATCH 141/180] Add axis label categories --- src/apps/weblib/ts-api/events.ts | 1 + src/chart/main/events.h | 19 ++++++++++++------- src/chart/rendering/drawaxes.cpp | 13 +++++++++---- src/chart/rendering/drawaxes.h | 3 ++- src/chart/rendering/drawinterlacing.cpp | 4 +++- 5 files changed, 27 insertions(+), 13 deletions(-) diff --git a/src/apps/weblib/ts-api/events.ts b/src/apps/weblib/ts-api/events.ts index fe14fdafe..7486af558 100644 --- a/src/apps/weblib/ts-api/events.ts +++ b/src/apps/weblib/ts-api/events.ts @@ -166,6 +166,7 @@ export interface Axis extends OrientedElement { export interface AxisLabel extends TextElement { tagName: 'plot-axis-label' parent: Axis + categories?: Data.Record } /** Guideline element of an axis element. */ diff --git a/src/chart/main/events.h b/src/chart/main/events.h index bcd4f541c..54ab5371f 100644 --- a/src/chart/main/events.h +++ b/src/chart/main/events.h @@ -276,13 +276,13 @@ class Events } }; - template struct LegendMarkerInfo : Base + template struct CategoryInfo : Base { std::string_view categoryName; std::string_view categoryValue; template - explicit LegendMarkerInfo( + explicit CategoryInfo( const std::string_view &categoryName, const std::string_view &categoryValue, Args &&...args) : @@ -372,8 +372,8 @@ class Events const std::string &label, Gen::ChannelId channel) { - return std::make_unique< - LegendMarkerInfo>>(categoryName, + return std::make_unique>>( + categoryName, categoryValue, label, "label", @@ -392,7 +392,7 @@ class Events const std::string_view &categoryValue, Gen::ChannelId channel) { - return std::make_unique>( + return std::make_unique>( categoryName, categoryValue, "marker", @@ -404,10 +404,15 @@ class Events return std::make_unique("bar", channel); } - static auto axisLabel(const std::string &label, + static auto axisLabel(const std::string_view &categoryName, + const std::string_view &categoryValue, + const std::string &label, bool horizontal) { - return std::make_unique>(label, + return std::make_unique>>( + categoryName, + categoryValue, + label, "label", horizontal); } diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index 7f48f2ff8..e4397f194 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -262,14 +262,15 @@ void DrawAxes::drawDimensionLabels(bool horizontal) const canvas.setFont(Gfx::Font{labelStyle}); for (auto it = axis.begin(); it != axis.end(); ++it) { - drawDimensionLabel(horizontal, origo, it); + drawDimensionLabel(horizontal, origo, it, axis.category); } } } void DrawAxes::drawDimensionLabel(bool horizontal, const Geom::Point &origo, - Gen::DimensionAxis::Values::const_iterator it) const + Gen::DimensionAxis::Values::const_iterator it, + const std::string_view &category) const { const auto &enabled = horizontal ? plot->guides.x : plot->guides.y; @@ -292,7 +293,8 @@ void DrawAxes::drawDimensionLabel(bool horizontal, normal = Geom::Point::Ident(!horizontal), &text = it->second.label, textColor = *labelStyle.color, - &weight](int index, const auto &position) + &weight, + &category](int index, const auto &position) { if (labelStyle.position->interpolates() && !it->second.presentAt(index)) @@ -330,7 +332,10 @@ void DrawAxes::drawDimensionLabel(bool horizontal, textColor * weight * position.weight, *labelStyle.backgroundColor, *rootEvents.draw.plot.axis.label, - Events::Targets::axisLabel(text, horizontal)); + Events::Targets::axisLabel(category, + text, + text, + horizontal)); }); } diff --git a/src/chart/rendering/drawaxes.h b/src/chart/rendering/drawaxes.h index e983458ab..e0d705375 100644 --- a/src/chart/rendering/drawaxes.h +++ b/src/chart/rendering/drawaxes.h @@ -31,7 +31,8 @@ class DrawAxes : public DrawingContext void drawDimensionLabels(bool horizontal) const; void drawDimensionLabel(bool horizontal, const Geom::Point &origo, - Gen::DimensionAxis::Values::const_iterator it) const; + Gen::DimensionAxis::Values::const_iterator it, + const std::string_view &category) const; }; } diff --git a/src/chart/rendering/drawinterlacing.cpp b/src/chart/rendering/drawinterlacing.cpp index c221e19e3..9c6fa86f8 100644 --- a/src/chart/rendering/drawinterlacing.cpp +++ b/src/chart/rendering/drawinterlacing.cpp @@ -308,7 +308,9 @@ void DrawInterlacing::drawDataLabel( *labelStyle.backgroundColor * wUnit.weight, *rootEvents.draw.plot.axis.label, - Events::Targets::axisLabel(str, + Events::Targets::axisLabel({}, + {}, + str, !horizontal)); }); }); From a26b35161af8403f4983187705c66180211b5c3f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 5 Jan 2024 17:39:42 +0100 Subject: [PATCH 142/180] self-review --- src/chart/main/events.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/chart/main/events.h b/src/chart/main/events.h index 54ab5371f..adb016ee2 100644 --- a/src/chart/main/events.h +++ b/src/chart/main/events.h @@ -293,10 +293,10 @@ class Events void appendToJSON(Conv::JSONObj &&jsonObj) const override { - if (!categoryName.empty() && !categoryValue.empty()) { - auto &&nested = jsonObj.nested("categories"); - nested(categoryName, categoryValue); - } + if (!categoryName.empty() && !categoryValue.empty()) + jsonObj.nested( + "categories")(categoryName, categoryValue); + Base::appendToJSON(std::move(jsonObj)); } }; From 3cddd4cab7238e607837e1f5bbf64e3bfbd3c494 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 5 Jan 2024 17:47:31 +0100 Subject: [PATCH 143/180] Add changelog --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fcf4110d1..00b30376a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## [Unreleased] + +### Added + +- Added optional `categories` member to the `legend-marker`, `legend-label` and `plot-axis-label` events. + ## [0.9.3] - 2023-12-20 ### Fixed From a13ce76a6e5b04ab16d7bc594bcaae4b4b345096 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 11:47:25 +0100 Subject: [PATCH 144/180] other half testcase fix --- test/e2e/test_cases/test_cases.json | 8 +- .../cartesian_coo_sys/32_C_A_stream_graph.mjs | 5 ++ .../cartesian_coo_sys/34_C_A_violin_graph.mjs | 5 ++ .../36_C_A_range_area_chart.mjs | 5 ++ .../without_coo_sys/602_W_R_heatmap3.mjs | 9 ++ test/e2e/tests/features.json | 4 +- test/e2e/tests/style_tests.json | 90 +++++++++---------- 7 files changed, 75 insertions(+), 51 deletions(-) diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index 442bc2a76..b99e8c567 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -506,7 +506,7 @@ "refs": ["03a5cfe"] }, "web_content/analytical_operations/compare/stream_stacked": { - "refs": ["f7f0fde"] + "refs": ["d2df83f"] }, "web_content/analytical_operations/compare/waterfall": { "refs": ["16a3b23"] @@ -620,7 +620,7 @@ "refs": ["669fa0b"] }, "web_content/analytical_operations/filter/stream_1": { - "refs": ["8d33040"] + "refs": ["f153df2"] }, "web_content/analytical_operations/filter/stream_2": { "refs": ["42eb797"] @@ -2045,7 +2045,7 @@ "refs": ["a4fcf7c"] }, "ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02": { - "refs": ["7cf90ec"] + "refs": ["251619a"] }, "ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial": { "refs": ["6f96e8b"] @@ -2441,7 +2441,7 @@ "refs": ["0e684b3"] }, "ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut": { - "refs": ["1aca6bf"] + "refs": ["eb8dbd8"] }, "ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area": { "refs": ["1ffa601"] diff --git a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs index 3cb49266c..2f13e9410 100755 --- a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs +++ b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs @@ -20,6 +20,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { interlacing: { color: '#ffffff00' }, label: { numberScale: 'K, M, B, T' } diff --git a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs index 906d88d43..596cea4ea 100755 --- a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs +++ b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs @@ -21,6 +21,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { interlacing: { color: '#ffffff00' }, label: { numberScale: 'K, M, B, T' } diff --git a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs index a2b88a8a1..1b56d0c1a 100755 --- a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs +++ b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs @@ -21,6 +21,11 @@ const testSteps = [ }, style: { plot: { + xAxis: { + label: { + angle: 0.0 + } + }, yAxis: { label: { numberScale: 'K, M, B, T' diff --git a/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs b/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs index 71c10876c..c14c616d1 100755 --- a/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs +++ b/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs @@ -15,6 +15,15 @@ const testSteps = [ lightness: 'Revenue' }, title: 'Heatmap2' + }, + style: { + plot: { + xAxis: { + label: { + angle: 0.0 + } + } + } } }) }, diff --git a/test/e2e/tests/features.json b/test/e2e/tests/features.json index 874816fcd..9edd058b7 100644 --- a/test/e2e/tests/features.json +++ b/test/e2e/tests/features.json @@ -8,13 +8,13 @@ "refs": ["0e6a340"] }, "axis_title_positioning": { - "refs": ["9fc11e0"] + "refs": ["a7a8e61"] }, "data_input/object_records": { "refs": ["9d5443f"] }, "events/drawing_events": { - "refs": ["c34d5dd"] + "refs": ["8ae4a6c"] }, "subtitle_caption": { "refs": ["5c04f20"] diff --git a/test/e2e/tests/style_tests.json b/test/e2e/tests/style_tests.json index dcb04f7ad..5b258b9ce 100644 --- a/test/e2e/tests/style_tests.json +++ b/test/e2e/tests/style_tests.json @@ -389,97 +389,97 @@ "refs": ["bdf046f"] }, "plot/xAxis/label/angle/deg/animated_90-135": { - "refs": ["bca3983"] + "refs": ["42cc9f7"] }, "plot/xAxis/label/angle/deg/animated_90-225": { - "refs": ["d958392"] + "refs": ["19bc13a"] }, "plot/xAxis/label/angle/deg/animated_90-45": { - "refs": ["d958392"] + "refs": ["19bc13a"] }, "plot/xAxis/label/angle/deg/static_495": { - "refs": ["bcd1e8a"] + "refs": ["59a4914"] }, "plot/xAxis/label/angle/deg/static_90": { - "refs": ["110aee8"] + "refs": ["6159cf9"] }, "plot/xAxis/label/angle/grad/animated_100-150": { - "refs": ["bca3983"] + "refs": ["42cc9f7"] }, "plot/xAxis/label/angle/grad/animated_100-250": { - "refs": ["d958392"] + "refs": ["19bc13a"] }, "plot/xAxis/label/angle/grad/animated_100-50": { - "refs": ["d958392"] + "refs": ["19bc13a"] }, "plot/xAxis/label/angle/grad/static_100": { - "refs": ["110aee8"] + "refs": ["6159cf9"] }, "plot/xAxis/label/angle/grad/static_550": { - "refs": ["bcd1e8a"] + "refs": ["59a4914"] }, "plot/xAxis/label/angle/number/animated_1.5708-0.7854": { - "refs": ["01b7da0"] + "refs": ["adbdac4"] }, "plot/xAxis/label/angle/number/animated_1.5708-2.3562": { - "refs": ["bca3983"] + "refs": ["42cc9f7"] }, "plot/xAxis/label/angle/number/animated_1.5708-3.927": { - "refs": ["01b7da0"] + "refs": ["adbdac4"] }, "plot/xAxis/label/angle/number/static_1.5708": { - "refs": ["110aee8"] + "refs": ["6159cf9"] }, "plot/xAxis/label/angle/number/static_8.6394": { - "refs": ["bcd1e8a"] + "refs": ["59a4914"] }, "plot/xAxis/label/angle/rad/animated_1.5708-0.7854": { - "refs": ["01b7da0"] + "refs": ["adbdac4"] }, "plot/xAxis/label/angle/rad/animated_1.5708-2.3562": { - "refs": ["bca3983"] + "refs": ["42cc9f7"] }, "plot/xAxis/label/angle/rad/animated_1.5708-3.927": { - "refs": ["01b7da0"] + "refs": ["adbdac4"] }, "plot/xAxis/label/angle/rad/static_1.5708": { - "refs": ["110aee8"] + "refs": ["6159cf9"] }, "plot/xAxis/label/angle/rad/static_8.6394": { - "refs": ["bcd1e8a"] + "refs": ["59a4914"] }, "plot/xAxis/label/angle/turn/animated_0.25-0.125": { - "refs": ["d958392"] + "refs": ["19bc13a"] }, "plot/xAxis/label/angle/turn/animated_0.25-0.375": { - "refs": ["bca3983"] + "refs": ["42cc9f7"] }, "plot/xAxis/label/angle/turn/animated_0.25-0.625": { - "refs": ["d958392"] + "refs": ["19bc13a"] }, "plot/xAxis/label/angle/turn/static_0.25": { - "refs": ["110aee8"] + "refs": ["6159cf9"] }, "plot/xAxis/label/angle/turn/static_1.375": { - "refs": ["bcd1e8a"] + "refs": ["59a4914"] }, "plot/xAxis/label/backgroundColor/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["110172a"] + "refs": ["1eadfcf"] }, "plot/xAxis/label/backgroundColor/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["6f47a1e"] + "refs": ["a893037"] }, "plot/xAxis/label/backgroundColor/hexa/static_blueCustom_0.25": { - "refs": ["0946d59"] + "refs": ["3e1d0de"] }, "plot/xAxis/label/backgroundColor/hexa/static_blueCustom_0.75": { - "refs": ["764bd8e"] + "refs": ["b0a7254"] }, "plot/xAxis/label/backgroundColor/hexa/static_yellowCustom_0.25": { - "refs": ["a4a941d"] + "refs": ["7397795"] }, "plot/xAxis/label/backgroundColor/hexa/static_yellowCustom_0.75": { - "refs": ["9217094"] + "refs": ["13041d4"] }, "plot/xAxis/label/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { "refs": ["e3c5b88"] @@ -617,28 +617,28 @@ "refs": ["4251172"] }, "plot/xAxis/label/orientation/animated_horizontal-vertical": { - "refs": ["967329d"] + "refs": ["3c9222a"] }, "plot/xAxis/label/orientation/animated_normal-tangential": { - "refs": ["28dd4bd"] + "refs": ["606a66d"] }, "plot/xAxis/label/orientation/animated_tangential-normal": { - "refs": ["59d8b1d"] + "refs": ["bb0c18b"] }, "plot/xAxis/label/orientation/animated_vertical-horizontal": { - "refs": ["c57db2f"] + "refs": ["a54e2c6"] }, "plot/xAxis/label/orientation/static_horizontal": { "refs": ["4251172"] }, "plot/xAxis/label/orientation/static_normal": { - "refs": ["110aee8"] + "refs": ["6159cf9"] }, "plot/xAxis/label/orientation/static_tangential": { "refs": ["4251172"] }, "plot/xAxis/label/orientation/static_vertical": { - "refs": ["110aee8"] + "refs": ["6159cf9"] }, "plot/xAxis/label/paddingBottom/animated_15-35": { "refs": ["e94bf4f"] @@ -653,28 +653,28 @@ "refs": ["bdb0433"] }, "plot/xAxis/label/paddingLeft/animated_150-350": { - "refs": ["9d256e1"] + "refs": ["139950f"] }, "plot/xAxis/label/paddingLeft/animated_350-150": { - "refs": ["f0cc7d6"] + "refs": ["98eeebc"] }, "plot/xAxis/label/paddingLeft/static_150": { - "refs": ["01cc792"] + "refs": ["cbf727c"] }, "plot/xAxis/label/paddingLeft/static_350": { - "refs": ["d4a978f"] + "refs": ["85a69e4"] }, "plot/xAxis/label/paddingRight/animated_150-350": { - "refs": ["575f812"] + "refs": ["0f6dcd4"] }, "plot/xAxis/label/paddingRight/animated_350-150": { - "refs": ["535ac6b"] + "refs": ["205f9f0"] }, "plot/xAxis/label/paddingRight/static_150": { - "refs": ["a8f1f6e"] + "refs": ["c188f02"] }, "plot/xAxis/label/paddingRight/static_350": { - "refs": ["e08e42c"] + "refs": ["060287a"] }, "plot/xAxis/label/paddingTop/animated_15-35": { "refs": ["d3fb0c8"] From 5b348c46577be88240610e3aa35c6f16700eac19 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Mon, 8 Jan 2024 12:03:36 +0100 Subject: [PATCH 145/180] Fixed: style intro --- docs/tutorial/style.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorial/style.md b/docs/tutorial/style.md index b62083e39..a3889179c 100644 --- a/docs/tutorial/style.md +++ b/docs/tutorial/style.md @@ -4,7 +4,7 @@ the look and feel of your animated charts. The styling properties are organized into a hierarchical structure. Font styles, when set on a higher level of this hierarchy, will be inherited on all lower levels. You can use absolute sizing -(`px`, `pt`) and relative (`%`, `em`, `vw`). +(`px`) and relative (`%`, `em`). Similarly to all other parameters of the animate method, `Vizzu` will animate the changes in the styling of the charts. This provides an excellent opportunity From 1683c33173d89e7a4a72c3d7f2c0f02e90505799 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 13:20:12 +0100 Subject: [PATCH 146/180] fix json escape --- src/base/conv/auto_json.h | 23 ++++++++++++++++++----- src/base/text/smartstring.cpp | 18 ++++-------------- src/base/text/smartstring.h | 32 ++++++++++++++------------------ 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/src/base/conv/auto_json.h b/src/base/conv/auto_json.h index 6960b17b0..5b16ee3ee 100644 --- a/src/base/conv/auto_json.h +++ b/src/base/conv/auto_json.h @@ -46,6 +46,14 @@ concept SerializableRange = struct JSON { + template inline void escaped(const T &str) const + { + for (auto ch : str) { + if ((ch == '\\') || ch == '"' || ch <= 0x1f) json += '\\'; + json += ch; + } + } + template inline void primitive(const T &val) const { if constexpr (std::is_floating_point_v) { @@ -65,7 +73,11 @@ struct JSON } else { json += '\"'; - json += Text::SmartString::escape(toString(val)); + if constexpr (std::is_same_v) + escaped(val); + else + escaped(toString(val)); + json += '\"'; } } @@ -266,10 +278,11 @@ struct JSONObj : JSON json += std::exchange(was, true) ? ',' : '{'; json += '\"'; - if constexpr (KeyNoEscape) { json.append(key); } - else { - json += Text::SmartString::escape(std::string{key}); - } + if constexpr (KeyNoEscape) + json.append(key); + else + escaped(key); + json += "\":"; return *this; } diff --git a/src/base/text/smartstring.cpp b/src/base/text/smartstring.cpp index b13a85afc..70a209f65 100644 --- a/src/base/text/smartstring.cpp +++ b/src/base/text/smartstring.cpp @@ -10,9 +10,9 @@ #include "base/math/floating.h" #include "base/math/normalizednumber.h" -namespace Text +namespace Text::SmartString { -void SmartString::trim(std::string &string, int (*ignore)(int)) +void trim(std::string &string, int (*ignore)(int)) { string.erase(string.begin(), std::find_if_not(string.begin(), string.end(), ignore)); @@ -22,7 +22,7 @@ void SmartString::trim(std::string &string, int (*ignore)(int)) string.end()); } -std::vector SmartString::split(const std::string &str, +std::vector split(const std::string &str, char delim, bool ignoreEmpty, const char *parens) @@ -48,7 +48,7 @@ std::vector SmartString::split(const std::string &str, return result; } -std::string SmartString::fromPhysicalValue(double value, +std::string fromPhysicalValue(double value, NumberFormat format, size_t maxFractionDigits, const NumberScale &numberScale, @@ -84,14 +84,4 @@ std::string SmartString::fromPhysicalValue(double value, + (unit.empty() || unit == "%" ? unit : " " + unit); } -std::string SmartString::escape(const std::string &str) -{ - std::string result; - for (const auto &ch : str) { - if ((ch == '\\') || ch == '"') result.push_back('\\'); - result.push_back(ch); - } - return result; -} - } diff --git a/src/base/text/smartstring.h b/src/base/text/smartstring.h index a4d69245d..bb64b4374 100644 --- a/src/base/text/smartstring.h +++ b/src/base/text/smartstring.h @@ -15,25 +15,21 @@ namespace Text enum class NumberFormat { none, grouped, prefixed }; -class SmartString +namespace SmartString { -public: - static std::vector split(const std::string &str, - char delim, - bool ignoreEmpty = false, - const char *parens = nullptr); - - static void trim(std::string &string, - int (*ignore)(int) = &isspace); - - static std::string fromPhysicalValue(double value, - NumberFormat format = NumberFormat::none, - size_t maxFractionDigits = 2, - const NumberScale &numberScale = NumberScale{}, - const std::string &unit = ""); - - static std::string escape(const std::string &str); -}; +[[nodiscard]] std::vector split(const std::string &str, + char delim, + bool ignoreEmpty = false, + const char *parens = nullptr); + +void trim(std::string &string, int (*ignore)(int) = &isspace); + +[[nodiscard]] std::string fromPhysicalValue(double value, + NumberFormat format = NumberFormat::none, + size_t maxFractionDigits = 2, + const NumberScale &numberScale = NumberScale{}, + const std::string &unit = ""); +} } From 3c27a502464ed5e9d91d13aa6ac52608da9261cd Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 13:24:17 +0100 Subject: [PATCH 147/180] add changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00b30376a..ffe977818 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- Json serializer control character escape fixed. Some unicode characters + were not escaped properly. ### Added From 7c67a57eb56397c0f02342fbfde4894f2756981f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 13:30:42 +0100 Subject: [PATCH 148/180] char can be signed. --- src/base/conv/auto_json.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/base/conv/auto_json.h b/src/base/conv/auto_json.h index 5b16ee3ee..3e538f53d 100644 --- a/src/base/conv/auto_json.h +++ b/src/base/conv/auto_json.h @@ -49,7 +49,8 @@ struct JSON template inline void escaped(const T &str) const { for (auto ch : str) { - if ((ch == '\\') || ch == '"' || ch <= 0x1f) json += '\\'; + if (ch == '\\' || ch == '"' || (ch >= 0 && ch <= 0x1f)) + json += '\\'; json += ch; } } From 812f424e72a26fc25f76b21568302a26ea70ac90 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 13:48:19 +0100 Subject: [PATCH 149/180] fix testcases --- test/e2e/test_cases/test_cases.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index b99e8c567..2fa988eae 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -185,13 +185,13 @@ "refs": ["42fb179"] }, "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["75bbd1b"] + "refs": ["7bdfeb7"] }, "data_fault_and_formats/column_rectangle_more_conti": { "refs": ["c2c2362"] }, "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["c604d48"] + "refs": ["0b1b742"] }, "data_fault_and_formats/rectangle_data_cube": { "refs": ["4b66407"] From d53e09e6971d2e3a0245d46b89c44ef6a23d2d88 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 14:15:22 +0100 Subject: [PATCH 150/180] remove qtest --- test/qtest/chart.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/test/qtest/chart.cpp b/test/qtest/chart.cpp index 4ae09740c..3c63d8803 100644 --- a/test/qtest/chart.cpp +++ b/test/qtest/chart.cpp @@ -11,15 +11,8 @@ TestChart::TestChart() : chart() {} void TestChart::prepareData() { - std::vector cat1{"AAAAAAAAAa", - "AAAAAAAAAa", - "AAAAAAAAAa", - "BbbbBBBB", - "BbbbBBBB", - "BbbbBBBB", - "C", - "C", - "C"}; + std::vector + cat1{"A", "A", "A", "B", "B", "B", "C", "C", "C"}; std::vector cat2{"aasd", "bíyx", "cAxyyxc", @@ -166,10 +159,10 @@ void TestChart::run() IO::log() << "step 1"; auto setter = chart.getChart().getSetter(); setter.addSeries(ChannelId::x, "Cat1"); - // setter.addSeries(ChannelId::x, "exists()"); + setter.addSeries(ChannelId::x, "exists()"); setter.addSeries(ChannelId::y, "Val"); setter.addSeries(ChannelId::label, "Val"); - // setter.addSeries(ChannelId::x, "Val"); + setter.addSeries(ChannelId::x, "Val"); setter.addSeries(ChannelId::y, "Cat2"); setter.addSeries(ChannelId::color, "Cat2"); chart.getChart().getStyles().plot.marker.label.filter = @@ -183,7 +176,7 @@ void TestChart::run() Vizzu::Styles::Text::TextAlign::left); setter.getOptions().title = "Example VIZZU Chart"; chart.getChart().setKeyframe(); - chart.getChart().animate(/*step1b*/); + chart.getChart().animate(step1b); }; step1(true); From 3764fc935ca11d2ee9163c7ae6f37a7173d06221 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 17:19:40 +0100 Subject: [PATCH 151/180] Add test, change control characters to unicode representation --- src/base/conv/auto_json.h | 9 ++++++++- test/e2e/tests/fixes.json | 3 +++ test/e2e/tests/fixes/47977099.mjs | 24 ++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 test/e2e/tests/fixes/47977099.mjs diff --git a/src/base/conv/auto_json.h b/src/base/conv/auto_json.h index 3e538f53d..44aef79bb 100644 --- a/src/base/conv/auto_json.h +++ b/src/base/conv/auto_json.h @@ -49,8 +49,15 @@ struct JSON template inline void escaped(const T &str) const { for (auto ch : str) { - if (ch == '\\' || ch == '"' || (ch >= 0 && ch <= 0x1f)) + if (ch >= 0 && ch <= 31) [[unlikely]] { + json += "\\u00"; + json += '0' + (ch >> 4); + json += "0123456789abcdef"[ch % 16]; + continue; + } + else if (ch == '\\' || ch == '"') json += '\\'; + json += ch; } } diff --git a/test/e2e/tests/fixes.json b/test/e2e/tests/fixes.json index 8a4b41056..295656cba 100644 --- a/test/e2e/tests/fixes.json +++ b/test/e2e/tests/fixes.json @@ -33,6 +33,9 @@ }, "42836788": { "refs": ["b0eeac3"] + }, + "47977099": { + "refs": ["680a1d0"] } } } diff --git a/test/e2e/tests/fixes/47977099.mjs b/test/e2e/tests/fixes/47977099.mjs new file mode 100644 index 000000000..9a4295c87 --- /dev/null +++ b/test/e2e/tests/fixes/47977099.mjs @@ -0,0 +1,24 @@ +const testSteps = [ + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', '"\\␡\t\n'] }, + { name: 'Bar', values: [15, 32, 12] }, + { name: 'Baz', values: [5, 3, 2] } + ] + } + + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + x: 'Foo', + y: 'Bar' + }), + (chart) => { + console.info(chart.data) + return chart + } +] + +export default testSteps From 56a23a5ae7c4b32fab5ca64615cb9e9491468f78 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 17:37:44 +0100 Subject: [PATCH 152/180] Add test, change control characters to unicode representation --- CHANGELOG.md | 2 + src/apps/weblib/canvas.yaml | 1 - src/apps/weblib/interface.cpp | 39 +++------ src/apps/weblib/ts-api/render.ts | 4 - src/base/gui/pointer.h | 28 +------ src/base/gui/widget.h | 26 ++---- src/base/util/eventdispatcher.cpp | 22 ----- src/base/util/eventdispatcher.h | 5 -- src/chart/animator/animator.cpp | 1 - src/chart/animator/morph.cpp | 5 -- src/chart/animator/planner.cpp | 22 ++--- src/chart/generator/marker.h | 1 - src/chart/generator/plot.cpp | 2 - src/chart/generator/plot.h | 1 - src/chart/generator/selector.cpp | 111 ------------------------- src/chart/generator/selector.h | 37 --------- src/chart/rendering/markerrenderer.cpp | 18 +--- src/chart/ui/chart.cpp | 105 ++++------------------- src/chart/ui/chart.h | 34 ++------ src/chart/ui/events.cpp | 7 +- src/chart/ui/events.h | 12 +-- 21 files changed, 66 insertions(+), 417 deletions(-) delete mode 100644 src/chart/generator/selector.cpp delete mode 100644 src/chart/generator/selector.h diff --git a/CHANGELOG.md b/CHANGELOG.md index 00b30376a..e0cceb559 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ### Added - Added optional `categories` member to the `legend-marker`, `legend-label` and `plot-axis-label` events. +- Remove unused marker selection and selected marker coloring. +- Remove cursor modification over logo ## [0.9.3] - 2023-12-20 diff --git a/src/apps/weblib/canvas.yaml b/src/apps/weblib/canvas.yaml index cb5bf7139..8cf0a8507 100644 --- a/src/apps/weblib/canvas.yaml +++ b/src/apps/weblib/canvas.yaml @@ -1,5 +1,4 @@ Canvas: - setCursor: { name: C.CString } frameBegin: {} frameEnd: {} setClipRect: { x: number, y: number, sizex: number, sizey: number } diff --git a/src/apps/weblib/interface.cpp b/src/apps/weblib/interface.cpp index f6478f24e..744e67a5f 100644 --- a/src/apps/weblib/interface.cpp +++ b/src/apps/weblib/interface.cpp @@ -328,16 +328,6 @@ ObjectRegistry::Handle Interface::createChart() { auto &&widget = std::make_shared(); - widget->doSetCursor = - [&](const std::shared_ptr &target, - GUI::Cursor cursor) - { - ::canvas_setCursor( - std::static_pointer_cast( - target) - .get(), - toCSS(cursor)); - }; widget->openUrl = [&](const std::string &url) { ::openUrl(url.c_str()); @@ -372,8 +362,7 @@ void Interface::update(ObjectRegistry::Handle chart, auto &&canvasPtr = objects.get(canvas); - const bool renderNeeded = widget->needsUpdate(canvasPtr) - || widget->getSize(canvasPtr) != size; + const bool renderNeeded = widget->needsUpdate(canvasPtr, size); if ((renderControl == allow && renderNeeded) || renderControl == force) { @@ -385,54 +374,48 @@ void Interface::update(ObjectRegistry::Handle chart, } void Interface::pointerDown(ObjectRegistry::Handle chart, - ObjectRegistry::Handle canvas, + ObjectRegistry::Handle, int pointerId, double x, double y) { objects.get(chart)->onPointerDown( - objects.get(canvas), - GUI::PointerEvent(pointerId, Geom::Point{x, y})); + {pointerId, Geom::Point{x, y}}); } void Interface::pointerUp(ObjectRegistry::Handle chart, - ObjectRegistry::Handle canvas, + ObjectRegistry::Handle, int pointerId, double x, double y) { objects.get(chart)->onPointerUp( - objects.get(canvas), - GUI::PointerEvent(pointerId, Geom::Point{x, y})); + {pointerId, Geom::Point{x, y}}); } void Interface::pointerLeave(ObjectRegistry::Handle chart, - ObjectRegistry::Handle canvas, + ObjectRegistry::Handle, int pointerId) { objects.get(chart)->onPointerLeave( - objects.get(canvas), - GUI::PointerEvent(pointerId, Geom::Point::Invalid())); + {pointerId, Geom::Point::Invalid()}); } void Interface::wheel(ObjectRegistry::Handle chart, - ObjectRegistry::Handle canvas, + ObjectRegistry::Handle, double delta) { - objects.get(chart)->onWheel( - objects.get(canvas), - delta); + objects.get(chart)->onWheel(delta); } void Interface::pointerMove(ObjectRegistry::Handle chart, - ObjectRegistry::Handle canvas, + ObjectRegistry::Handle, int pointerId, double x, double y) { objects.get(chart)->onPointerMove( - objects.get(canvas), - GUI::PointerEvent(pointerId, Geom::Point{x, y})); + {pointerId, Geom::Point{x, y}}); } } \ No newline at end of file diff --git a/src/apps/weblib/ts-api/render.ts b/src/apps/weblib/ts-api/render.ts index 138e182a6..0fc2c7f3f 100644 --- a/src/apps/weblib/ts-api/render.ts +++ b/src/apps/weblib/ts-api/render.ts @@ -53,10 +53,6 @@ export class Render implements Plugin, Canvas { } } - setCursor(name: CString): void { - this._canvas.element.style.cursor = this._ccanvas.getString(name) - } - frameBegin(): void { this._currentLineWidth = 1 this._canvas.frameBegin() diff --git a/src/base/gui/pointer.h b/src/base/gui/pointer.h index b6fcea4ce..81f4e862a 100644 --- a/src/base/gui/pointer.h +++ b/src/base/gui/pointer.h @@ -11,32 +11,10 @@ namespace GUI { -enum class Cursor : uint16_t { point, push, grab, drag, busy }; - -static inline const char *toCSS(Cursor cursor) -{ - using C = GUI::Cursor; - switch (cursor) { - case C::push: - case C::grab: return "pointer"; - case C::drag: return "move"; - case C::busy: return "wait"; - case C::point: - default: return "default"; - }; -} - -class PointerEvent +struct PointerEvent { -public: - PointerEvent() = default; - PointerEvent(std::optional pointerId, - const Geom::Point &pos) : - pointerId(pointerId), - pos(pos) - {} - std::optional pointerId; - Geom::Point pos; + int pointerId; + Geom::Point position; }; } diff --git a/src/base/gui/widget.h b/src/base/gui/widget.h index fdedeb41f..b559b15a3 100644 --- a/src/base/gui/widget.h +++ b/src/base/gui/widget.h @@ -14,30 +14,18 @@ class Widget public: virtual ~Widget() = default; - virtual void onPointerDown( - const std::shared_ptr &canvas, - const PointerEvent &event) = 0; - virtual void onPointerUp( - const std::shared_ptr &canvas, - const PointerEvent &event) = 0; - virtual void onPointerLeave( - const std::shared_ptr &canvas, - const PointerEvent &event) = 0; - virtual void onPointerMove( - const std::shared_ptr &canvas, - const PointerEvent &event) = 0; - virtual void onWheel(const std::shared_ptr &canvas, - double delta) = 0; + virtual void onPointerDown(const PointerEvent &event) = 0; + virtual void onPointerUp(const PointerEvent &event) = 0; + virtual void onPointerLeave(const PointerEvent &event) = 0; + virtual void onPointerMove(const PointerEvent &event) = 0; + virtual void onWheel(double delta) = 0; virtual void onChanged() = 0; - virtual void setCursor(const std::shared_ptr &, - Cursor cursor) const = 0; virtual void onDraw(const std::shared_ptr &) = 0; virtual void onUpdateSize(const std::shared_ptr &, Geom::Size) = 0; - [[nodiscard]] virtual Geom::Size getSize( - const std::shared_ptr &) const = 0; [[nodiscard]] virtual bool needsUpdate( - const std::shared_ptr &) const = 0; + const std::shared_ptr &, + Geom::Size) const = 0; }; } diff --git a/src/base/util/eventdispatcher.cpp b/src/base/util/eventdispatcher.cpp index 2e1b65592..10e4aaa3d 100644 --- a/src/base/util/eventdispatcher.cpp +++ b/src/base/util/eventdispatcher.cpp @@ -119,26 +119,4 @@ bool EventDispatcher::destroyEvent(const event_ptr &event) { return destroyEvent(event->name().c_str()); } - -void EventDispatcher::registerHandler(uint64_t owner, handler_id id) -{ - auto iter = handlerRegistry.find(owner); - if (iter == handlerRegistry.end()) { - handlerRegistry.insert( - std::make_pair(owner, std::list{})); - iter = handlerRegistry.find(owner); - } - iter->second.push_back(id); -} - -void EventDispatcher::unregisterHandler(const event_ptr &event, - uint64_t owner) -{ - auto iter = handlerRegistry.find(owner); - if (iter != handlerRegistry.end()) { - for (auto &item : iter->second) event->detach(item); - handlerRegistry.erase(iter); - } -} - } \ No newline at end of file diff --git a/src/base/util/eventdispatcher.h b/src/base/util/eventdispatcher.h index 0f2099386..6cdf27746 100644 --- a/src/base/util/eventdispatcher.h +++ b/src/base/util/eventdispatcher.h @@ -31,7 +31,6 @@ class EventDispatcher using event_map = std::map; using handler_list = std::list>; - using handler_map = std::map>; class Params { @@ -95,10 +94,6 @@ class EventDispatcher protected: event_map eventRegistry; - handler_map handlerRegistry; - - void registerHandler(uint64_t owner, handler_id id); - void unregisterHandler(const event_ptr &event, uint64_t owner); }; } diff --git a/src/chart/animator/animator.cpp b/src/chart/animator/animator.cpp index 5725d0260..97b29aa93 100644 --- a/src/chart/animator/animator.cpp +++ b/src/chart/animator/animator.cpp @@ -1,7 +1,6 @@ #include "animator.h" #include "chart/animator/keyframe.h" -#include "chart/generator/selector.h" namespace Vizzu::Anim { diff --git a/src/chart/animator/morph.cpp b/src/chart/animator/morph.cpp index 6321d5209..166f47915 100644 --- a/src/chart/animator/morph.cpp +++ b/src/chart/animator/morph.cpp @@ -237,9 +237,6 @@ void Morph::Color::transform(const Gen::Plot &source, Gen::Plot &actual, double factor) const { - actual.anySelected = - interpolate(source.anySelected, target.anySelected, factor); - actual.commonAxises.at(Gen::ChannelId::color) = interpolate(source.commonAxises.at(Gen::ChannelId::color), target.commonAxises.at(Gen::ChannelId::color), @@ -279,8 +276,6 @@ void Morph::Color::transform(const Marker &source, { actual.colorBase = interpolate(source.colorBase, target.colorBase, factor); - actual.selected = - interpolate(source.selected, target.selected, factor); } } \ No newline at end of file diff --git a/src/chart/animator/planner.cpp b/src/chart/animator/planner.cpp index b418b2785..e89b1a09a 100644 --- a/src/chart/animator/planner.cpp +++ b/src/chart/animator/planner.cpp @@ -326,16 +326,17 @@ bool Planner::positionMorphNeeded() const bool Planner::needColor() const { - return source->anySelected != target->anySelected - || (isAnyLegend(Gen::ChannelId::color) - && (source->commonAxises.at(Gen::ChannelId::color) - != target->commonAxises.at(Gen::ChannelId::color) - || source->dimensionAxises.at(Gen::ChannelId::color) - != target->dimensionAxises.at( + return (isAnyLegend(Gen::ChannelId::color) + && (source->commonAxises.at(Gen::ChannelId::color) + != target->commonAxises.at( Gen::ChannelId::color) - || source->measureAxises.at(Gen::ChannelId::color) - != target->measureAxises.at( - Gen::ChannelId::color))) + || source->dimensionAxises.at( + Gen::ChannelId::color) + != target->dimensionAxises.at( + Gen::ChannelId::color) + || source->measureAxises.at(Gen::ChannelId::color) + != target->measureAxises.at( + Gen::ChannelId::color))) || (isAnyLegend(Gen::ChannelId::lightness) && (source->commonAxises.at(Gen::ChannelId::lightness) != target->commonAxises.at( @@ -351,8 +352,7 @@ bool Planner::needColor() const [&](const auto &source, const auto &target) { return (source.enabled || target.enabled) - && (source.colorBase != target.colorBase - || source.selected != target.selected); + && source.colorBase != target.colorBase; }); } diff --git a/src/chart/generator/marker.h b/src/chart/generator/marker.h index 83ecc095e..46a625991 100644 --- a/src/chart/generator/marker.h +++ b/src/chart/generator/marker.h @@ -36,7 +36,6 @@ class Marker Geom::Point spacing; double sizeFactor; Math::FuzzyBool enabled; - Math::FuzzyBool selected; Data::CellInfo cellInfo; struct Label diff --git a/src/chart/generator/plot.cpp b/src/chart/generator/plot.cpp index 18ee0faf8..5f6c4cd81 100644 --- a/src/chart/generator/plot.cpp +++ b/src/chart/generator/plot.cpp @@ -73,7 +73,6 @@ bool Plot::MarkerInfoContent::operator==( } Plot::Plot(PlotOptionsPtr options, const Plot &other) : - anySelected(other.anySelected), anyAxisSet(other.anyAxisSet), commonAxises(other.commonAxises), measureAxises(other.measureAxises), @@ -90,7 +89,6 @@ Plot::Plot(const Data::DataTable &dataTable, PlotOptionsPtr opts, Styles::Chart style, bool setAutoParams) : - anySelected{false}, dataTable(dataTable), options(std::move(opts)), style(std::move(style)), diff --git a/src/chart/generator/plot.h b/src/chart/generator/plot.h index 07541cb34..2ab857305 100644 --- a/src/chart/generator/plot.h +++ b/src/chart/generator/plot.h @@ -61,7 +61,6 @@ class Plot static bool dimensionMatch(const Plot &a, const Plot &b); - Math::FuzzyBool anySelected; Math::FuzzyBool anyAxisSet; CommonAxises commonAxises; MeasureAxises measureAxises; diff --git a/src/chart/generator/selector.cpp b/src/chart/generator/selector.cpp deleted file mode 100644 index 14a30d3ce..000000000 --- a/src/chart/generator/selector.cpp +++ /dev/null @@ -1,111 +0,0 @@ -#include "selector.h" - -namespace Vizzu::Gen -{ - -Selector::Selector(Plot &plot) : plot(plot) {} - -void Selector::clearSelection() -{ - plot.anySelected = false; - for (auto &marker : plot.markers) marker.selected = false; -} - -void Selector::toggleMarker(Marker &marker, bool add) -{ - auto alreadySelected = marker.selected; - - if (!add) clearSelection(); - - marker.selected = !alreadySelected; - - plot.anySelected = anySelected(); -} - -bool Selector::anySelected() -{ - auto selectedCnt = 0U; - auto allCnt = 0U; - for (const auto &marker : plot.getMarkers()) { - if (static_cast(marker.enabled) > 0) { - if (static_cast(marker.selected) > 0) - ++selectedCnt; - ++allCnt; - } - } - if (selectedCnt == allCnt) { - clearSelection(); - selectedCnt = 0; - } - return selectedCnt > 0; -} - -void Selector::toggleMarkers( - const Data::MultiDim::SubSliceIndex &index) -{ - if ((static_cast(plot.anySelected) == 0) - || !anySelected(index)) { - setSelection(index, true); - } - else if (allSelected(index) || onlySelected(index)) { - setSelection(index, false); - } - else - andSelection(index); -} - -bool Selector::anySelected( - const Data::MultiDim::SubSliceIndex &index) const -{ - return std::ranges::any_of(plot.getMarkers(), - [&](const auto &marker) - { - return marker.enabled && marker.selected - && index.contains(marker.index); - }); -} - -bool Selector::allSelected( - const Data::MultiDim::SubSliceIndex &index) const -{ - return std::ranges::all_of(plot.getMarkers(), - [&](const auto &marker) - { - return !marker.enabled || !index.contains(marker.index) - || marker.selected; - }); -} - -bool Selector::onlySelected( - const Data::MultiDim::SubSliceIndex &index) const -{ - return std::ranges::all_of(plot.getMarkers(), - [&](const auto &marker) - { - return !marker.enabled || !marker.selected - || index.contains(marker.index); - }); -} - -void Selector::setSelection( - const Data::MultiDim::SubSliceIndex &index, - bool selected) -{ - for (auto &marker : plot.markers) - if (marker.enabled && index.contains(marker.index)) { - marker.selected = selected; - } - plot.anySelected = anySelected(); -} - -void Selector::andSelection( - const Data::MultiDim::SubSliceIndex &index) -{ - for (auto &marker : plot.markers) - if (marker.enabled && marker.selected) { - marker.selected = index.contains(marker.index); - } - plot.anySelected = anySelected(); -} - -} \ No newline at end of file diff --git a/src/chart/generator/selector.h b/src/chart/generator/selector.h deleted file mode 100644 index 8e4d55c2a..000000000 --- a/src/chart/generator/selector.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef SELECTOR_H -#define SELECTOR_H - -#include "data/datacube/datafilter.h" -#include "data/table/datatable.h" - -#include "plot.h" - -namespace Vizzu::Gen -{ - -class Selector -{ -public: - explicit Selector(Plot &plot); - - void clearSelection(); - void toggleMarker(Marker &marker, bool add = true); - bool anySelected(); - void toggleMarkers(const Data::MultiDim::SubSliceIndex &index); - [[nodiscard]] bool anySelected( - const Data::MultiDim::SubSliceIndex &index) const; - [[nodiscard]] bool allSelected( - const Data::MultiDim::SubSliceIndex &index) const; - [[nodiscard]] bool onlySelected( - const Data::MultiDim::SubSliceIndex &index) const; - void setSelection(const Data::MultiDim::SubSliceIndex &index, - bool selected); - void andSelection(const Data::MultiDim::SubSliceIndex &index); - -private: - Plot &plot; -}; - -} - -#endif diff --git a/src/chart/rendering/markerrenderer.cpp b/src/chart/rendering/markerrenderer.cpp index 09785a397..61a9bd5ff 100644 --- a/src/chart/rendering/markerrenderer.cpp +++ b/src/chart/rendering/markerrenderer.cpp @@ -441,20 +441,10 @@ Gfx::Color MarkerRenderer::getSelectedColor(const Gen::Marker &marker, auto markerColor = colorBuilder.render(marker.colorBase); - auto orig = - label ? Math::interpolate(markerColor, - rootStyle.plot.marker.label.color->transparent(1.0), - rootStyle.plot.marker.label.color->alpha) - : markerColor; - - auto gray = orig.desaturate().lightnessScaled(0.75); - auto interpolated = Math::interpolate(gray, - orig, - static_cast(marker.selected)); - - return Math::interpolate(orig, - interpolated, - static_cast(plot->anySelected)); + return label ? Math::interpolate(markerColor, + rootStyle.plot.marker.label.color->transparent(1.0), + rootStyle.plot.marker.label.color->alpha) + : markerColor; } MarkerRenderer MarkerRenderer::create(const DrawingContext &ctx) diff --git a/src/chart/ui/chart.cpp b/src/chart/ui/chart.cpp index e6705fbdd..66e7e6859 100644 --- a/src/chart/ui/chart.cpp +++ b/src/chart/ui/chart.cpp @@ -1,8 +1,5 @@ #include "chart.h" -#include - -#include "chart/generator/selector.h" #include "chart/main/version.h" #include "events.h" @@ -43,88 +40,44 @@ void ChartWidget::onChanged() needUpdate = true; } -void ChartWidget::setCursor( - const std::shared_ptr &canvas, - GUI::Cursor cursor) const +void ChartWidget::onPointerDown(const GUI::PointerEvent &event) { - if (doSetCursor) doSetCursor(canvas, cursor); + onPointerDownEvent->invoke(PointerEvent{event, + chart.getRenderedChart().find(event.position)}); } -void ChartWidget::onPointerDown( - const std::shared_ptr &canvas, - const GUI::PointerEvent &event) +void ChartWidget::onPointerMove(const GUI::PointerEvent &event) { - updateCursor(canvas, event.pos); - - onPointerDownEvent->invoke(PointerEvent(event.pointerId, - event.pos, - chart.getRenderedChart().find(event.pos))); + onPointerMoveEvent->invoke(PointerEvent{event, + chart.getRenderedChart().find(event.position)}); } -void ChartWidget::onPointerMove( - const std::shared_ptr &canvas, - const GUI::PointerEvent &event) -{ - updateCursor(canvas, event.pos); - - onPointerMoveEvent->invoke(PointerEvent(event.pointerId, - event.pos, - chart.getRenderedChart().find(event.pos))); -} - -void ChartWidget::onPointerUp( - const std::shared_ptr &canvas, - const GUI::PointerEvent &event) +void ChartWidget::onPointerUp(const GUI::PointerEvent &event) { const auto *eventTarget = - chart.getRenderedChart().find(event.pos); + chart.getRenderedChart().find(event.position); - onPointerUpEvent->invoke( - PointerEvent(event.pointerId, event.pos, eventTarget)); + onPointerUpEvent->invoke(PointerEvent{event, eventTarget}); - if (onClick->invoke( - PointerEvent(event.pointerId, event.pos, eventTarget))) { - if (chart.getLayout().logo.contains(event.pos)) { + if (onClick->invoke(PointerEvent{event, eventTarget})) { + if (chart.getLayout().logo.contains(event.position)) { if (openUrl) openUrl( Main::siteUrl + std::string("?utm_source=logo")); } - else if (auto plot = chart.getPlot()) { - if (const auto *clickedMarker = getIfMarker(eventTarget)) - Gen::Selector(*plot).toggleMarker( - const_cast( // NOLINT - *clickedMarker)); - else - Gen::Selector(*plot).clearSelection(); - onChanged(); - } } - - updateCursor(canvas, event.pos); } -void ChartWidget::onPointerLeave( - const std::shared_ptr &canvas, - const GUI::PointerEvent &event) +void ChartWidget::onPointerLeave(const GUI::PointerEvent &event) { - updateCursor(canvas, event.pos); - - onPointerLeaveEvent->invoke( - PointerEvent(event.pointerId, event.pos, nullptr)); + onPointerLeaveEvent->invoke(PointerEvent{event, nullptr}); } -void ChartWidget::onWheel(const std::shared_ptr &, - double delta) +void ChartWidget::onWheel(double delta) { onWheelEvent->invoke(WheelEvent(delta, nullptr)); } -Geom::Size ChartWidget::getSize( - const std::shared_ptr &) const -{ - return chart.getLayout().boundary.size; -} - void ChartWidget::onDraw(const std::shared_ptr &canvas) { chart.draw(*canvas); @@ -138,34 +91,4 @@ void ChartWidget::onUpdateSize( chart.setBoundRect(Geom::Rect(Geom::Point{}, size), *canvas); } -void ChartWidget::updateCursor( - const std::shared_ptr &canvas, - const Geom::Point &pos) -{ - if (chart.getLayout().logo.contains(pos)) - return setCursor(canvas, GUI::Cursor::push); - - if (!chart.getAnimControl().isRunning()) - if (auto plot = chart.getPlot()) - if (plot->anySelected - || getIfMarker(chart.getRenderedChart().find(pos))) - return setCursor(canvas, GUI::Cursor::push); - return setCursor(canvas, GUI::Cursor::point); -} - -const Gen::Marker *ChartWidget::getIfMarker( - const Util::EventTarget *target) -{ - if (!target) [[unlikely]] - return nullptr; - - const auto *element = - static_cast(target); - - return element->tagName == "plot-marker" - ? &static_cast(element) - ->marker - : nullptr; -} - } \ No newline at end of file diff --git a/src/chart/ui/chart.h b/src/chart/ui/chart.h index 7cb4ea5dd..6e43f10dc 100644 --- a/src/chart/ui/chart.h +++ b/src/chart/ui/chart.h @@ -15,40 +15,28 @@ class ChartWidget : public GUI::Widget { public: std::function doChange; - std::function &, - GUI::Cursor)> - doSetCursor; std::function openUrl; explicit ChartWidget(); ~ChartWidget() override; - void onPointerDown(const std::shared_ptr &, - const GUI::PointerEvent &event) override; - void onPointerMove(const std::shared_ptr &, - const GUI::PointerEvent &event) override; - void onPointerUp(const std::shared_ptr &, - const GUI::PointerEvent &event) override; - void onPointerLeave(const std::shared_ptr &, - const GUI::PointerEvent &event) override; - void onWheel(const std::shared_ptr &, - double delta) override; - void setCursor(const std::shared_ptr &, - GUI::Cursor cursor) const override; + void onPointerDown(const GUI::PointerEvent &event) override; + void onPointerMove(const GUI::PointerEvent &event) override; + void onPointerUp(const GUI::PointerEvent &event) override; + void onPointerLeave(const GUI::PointerEvent &event) override; + void onWheel(double delta) override; void onChanged() override; void onDraw(const std::shared_ptr &) override; void onUpdateSize(const std::shared_ptr &, Geom::Size size) override; - [[nodiscard]] Geom::Size getSize( - const std::shared_ptr &) const override; - [[nodiscard]] Chart &getChart() { return chart; } [[nodiscard]] bool needsUpdate( - const std::shared_ptr &) const final + const std::shared_ptr &, + Geom::Size size) const final { - return needUpdate; + return needUpdate || chart.getLayout().boundary.size != size; } private: @@ -60,12 +48,6 @@ class ChartWidget : public GUI::Widget Util::EventDispatcher::event_ptr onPointerUpEvent; Util::EventDispatcher::event_ptr onPointerLeaveEvent; bool needUpdate{true}; - - void updateCursor(const std::shared_ptr &, - const Geom::Point &pos); - - [[nodiscard]] static const Gen::Marker *getIfMarker( - const Util::EventTarget *); }; } diff --git a/src/chart/ui/events.cpp b/src/chart/ui/events.cpp index cde81c937..e77a8d7be 100644 --- a/src/chart/ui/events.cpp +++ b/src/chart/ui/events.cpp @@ -7,16 +7,15 @@ namespace Vizzu::UI { -PointerEvent::PointerEvent(std::optional pointerId, - Geom::Point position, +PointerEvent::PointerEvent(const GUI::PointerEvent &event, const Util::EventTarget *target) : Util::EventDispatcher::Params(target), - PointerEventDetail{position, pointerId} + GUI::PointerEvent{event} {} void PointerEvent::appendToJSON(Conv::JSON &obj) const { - obj.any(*this); + obj.any(*this); } WheelEvent::WheelEvent(double delta, diff --git a/src/chart/ui/events.h b/src/chart/ui/events.h index 5788a84a9..a705f46b3 100644 --- a/src/chart/ui/events.h +++ b/src/chart/ui/events.h @@ -4,24 +4,18 @@ #include #include "base/geom/point.h" +#include "base/gui/pointer.h" #include "base/util/eventdispatcher.h" namespace Vizzu::UI { -struct PointerEventDetail -{ - Geom::Point position; - std::optional pointerId; -}; - class PointerEvent : public Util::EventDispatcher::Params, - public PointerEventDetail + public GUI::PointerEvent { public: - PointerEvent(std::optional pointerId, - Geom::Point position, + PointerEvent(const GUI::PointerEvent &event, const Util::EventTarget *target); void appendToJSON(Conv::JSON &obj) const override; From e932d873e3223c225cd89e168eadbdd7f1f3588f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 17:40:19 +0100 Subject: [PATCH 153/180] Fix new testcase format --- test/e2e/tests/fixes/47977099.mjs | 38 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/test/e2e/tests/fixes/47977099.mjs b/test/e2e/tests/fixes/47977099.mjs index 9a4295c87..8d2c998e3 100644 --- a/test/e2e/tests/fixes/47977099.mjs +++ b/test/e2e/tests/fixes/47977099.mjs @@ -1,24 +1,24 @@ const testSteps = [ - (chart) => { - const data = { - series: [ - { name: 'Foo', values: ['Alice', 'Bob', '"\\␡\t\n'] }, - { name: 'Bar', values: [15, 32, 12] }, - { name: 'Baz', values: [5, 3, 2] } - ] - } + (chart) => { + const data = { + series: [ + { name: 'Foo', values: ['Alice', 'Bob', '"\\␡\t\n'] }, + { name: 'Bar', values: [15, 32, 12] }, + { name: 'Baz', values: [5, 3, 2] } + ] + } - return chart.animate({ data }) - }, - (chart) => - chart.animate({ - x: 'Foo', - y: 'Bar' - }), - (chart) => { - console.info(chart.data) - return chart - } + return chart.animate({ data }) + }, + (chart) => + chart.animate({ + x: 'Foo', + y: 'Bar' + }), + (chart) => { + console.info(chart.data) + return chart + } ] export default testSteps From c2c43cc844186741bc4a5bd1c5436e4613e9ac96 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 18:30:58 +0100 Subject: [PATCH 154/180] fix clang-tidy --- src/base/conv/auto_json.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/base/conv/auto_json.h b/src/base/conv/auto_json.h index 44aef79bb..f4a68f5e3 100644 --- a/src/base/conv/auto_json.h +++ b/src/base/conv/auto_json.h @@ -51,7 +51,7 @@ struct JSON for (auto ch : str) { if (ch >= 0 && ch <= 31) [[unlikely]] { json += "\\u00"; - json += '0' + (ch >> 4); + json += static_cast('0' + (ch >= 16)); json += "0123456789abcdef"[ch % 16]; continue; } From af517f31b1778159672da0382deab5bdb414f6d5 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 8 Jan 2024 18:54:11 +0100 Subject: [PATCH 155/180] Fix testcase hash --- test/e2e/tests/fixes.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/tests/fixes.json b/test/e2e/tests/fixes.json index 295656cba..d501807b7 100644 --- a/test/e2e/tests/fixes.json +++ b/test/e2e/tests/fixes.json @@ -35,7 +35,7 @@ "refs": ["b0eeac3"] }, "47977099": { - "refs": ["680a1d0"] + "refs": ["5f58727"] } } } From 0395ceee88300ad4787be3be0922ef8e6b3c4e2a Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Tue, 9 Jan 2024 14:11:57 +0100 Subject: [PATCH 156/180] review --- src/base/conv/auto_json.h | 6 +- src/base/text/character.h | 104 +++++++++++++++++------------------ src/base/text/naturalcmp.cpp | 2 +- src/chart/main/events.h | 5 +- 4 files changed, 58 insertions(+), 59 deletions(-) diff --git a/src/base/conv/auto_json.h b/src/base/conv/auto_json.h index f4a68f5e3..3a809484b 100644 --- a/src/base/conv/auto_json.h +++ b/src/base/conv/auto_json.h @@ -11,6 +11,7 @@ #include #include "base/refl/auto_struct.h" +#include "base/text/character.h" #include "base/text/smartstring.h" #include "tostring.h" @@ -51,8 +52,9 @@ struct JSON for (auto ch : str) { if (ch >= 0 && ch <= 31) [[unlikely]] { json += "\\u00"; - json += static_cast('0' + (ch >= 16)); - json += "0123456789abcdef"[ch % 16]; + using Text::Character::toHex; + json += toHex(ch >= 16); + json += toHex(ch % 16); continue; } else if (ch == '\\' || ch == '"') diff --git a/src/base/text/character.h b/src/base/text/character.h index d6c90936c..d116cafc5 100644 --- a/src/base/text/character.h +++ b/src/base/text/character.h @@ -3,61 +3,57 @@ #include -namespace Text -{ - -struct Character -{ - static uint8_t hex(const char *hex) - { - return (fromHex(*hex) << 4U) + fromHex(*(hex + 1)); - } - - static constexpr bool isDigit(char ch) - { - return ch >= '0' && ch <= '9'; - } - - static constexpr bool isSpace(char ch) { return ch == ' '; } - - static constexpr char toUpper(char ch) - { - return ch >= 'a' && ch <= 'z' - ? static_cast(ch - 'a' + 'Z') - : ch; - } - - static constexpr char toNumber(char ch) - { - if (ch >= '0' && ch <= '9') - return static_cast(ch - '0'); - throw std::logic_error("invalid decimal digit"); - } - - static constexpr char toHex(char ch) - { - if (ch >= 0 && ch < 16) - return "0123456789ABCDEF"[static_cast(ch)]; - - throw std::out_of_range("invalid 1 digit hexadecimal number"); - } - - static void toHex(uint8_t ch, char *res) - { - *res = toHex(static_cast( - static_cast(ch >> 4U) & 0x0FU)); - *(res + 1) = toHex(static_cast(ch & 0x0FU)); - } - - static constexpr uint8_t fromHex(char ch) - { - if (ch >= '0' && ch <= '9') return ch - '0'; - if (ch >= 'a' && ch <= 'f') return 10 + ch - 'a'; - if (ch >= 'A' && ch <= 'F') return 10 + ch - 'A'; - throw std::invalid_argument("invalid hexadecimal digit"); - } -}; +namespace Text::Character +{ +[[nodiscard]] static constexpr bool isDigit(char ch) +{ + return ch >= '0' && ch <= '9'; +} + +[[nodiscard]] static constexpr bool isSpace(char ch) +{ + return ch == ' '; +} + +[[nodiscard]] static constexpr char toUpper(char ch) +{ + return ch >= 'a' && ch <= 'z' ? static_cast(ch - 'a' + 'Z') + : ch; +} + +[[nodiscard]] static constexpr char toNumber(char ch) +{ + if (ch >= '0' && ch <= '9') return static_cast(ch - '0'); + throw std::logic_error("invalid decimal digit"); +} +[[nodiscard]] static constexpr char toHex(char ch) +{ + if (ch >= 0 && ch < 16) + return "0123456789ABCDEF"[static_cast(ch)]; + + throw std::out_of_range("invalid 1 digit hexadecimal number"); +} + +static constexpr void toHex(uint8_t ch, char *res) +{ + *res = toHex( + static_cast(static_cast(ch >> 4U) & 0x0FU)); + *(res + 1) = toHex(static_cast(ch & 0x0FU)); +} + +[[nodiscard]] static constexpr uint8_t fromHex(char ch) +{ + if (ch >= '0' && ch <= '9') return ch - '0'; + if (ch >= 'a' && ch <= 'f') return 10 + ch - 'a'; + if (ch >= 'A' && ch <= 'F') return 10 + ch - 'A'; + throw std::invalid_argument("invalid hexadecimal digit"); +} + +[[nodiscard]] static constexpr uint8_t hex(const char *hex) +{ + return (fromHex(*hex) << 4U) + fromHex(*(hex + 1)); +} } #endif diff --git a/src/base/text/naturalcmp.cpp b/src/base/text/naturalcmp.cpp index c64dc8dc3..7b4c4f4e2 100644 --- a/src/base/text/naturalcmp.cpp +++ b/src/base/text/naturalcmp.cpp @@ -7,7 +7,7 @@ namespace Text { -using SC = Character; +namespace SC = Character; NaturalCmp::NaturalCmp(bool ignoreCase, bool ignoreSpace) : ignoreCase(ignoreCase), diff --git a/src/chart/main/events.h b/src/chart/main/events.h index adb016ee2..aed314d7e 100644 --- a/src/chart/main/events.h +++ b/src/chart/main/events.h @@ -294,8 +294,9 @@ class Events void appendToJSON(Conv::JSONObj &&jsonObj) const override { if (!categoryName.empty() && !categoryValue.empty()) - jsonObj.nested( - "categories")(categoryName, categoryValue); + jsonObj.nested("categories") + .template operator()(categoryName, + categoryValue); Base::appendToJSON(std::move(jsonObj)); } From a9c9e9de6ddd78b2745143cf288f8cc4e23040ea Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 10 Jan 2024 14:03:42 +0100 Subject: [PATCH 157/180] Added: slack notification on merged PRs --- .github/workflows/slack.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/slack.yml diff --git a/.github/workflows/slack.yml b/.github/workflows/slack.yml new file mode 100644 index 000000000..272213262 --- /dev/null +++ b/.github/workflows/slack.yml @@ -0,0 +1,18 @@ +name: Notify on merged PR +on: + pull_request: +# types: +# - closed + +jobs: + notify_merged_pr: + name: Notify on merged PR + runs-on: ubuntu-22.04 + # if: ${{ github.event.pull_request.merged == true }} + steps: + - uses: abinoda/slack-action@master + env: + SLACK_BOT_TOKEN: ${{ secrets.VIZZUHQ_SLACK_API }} + with: + args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' + if: success() From 4cf099a15b199c9bffb3c84fbc59764aac94ae9c Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 10 Jan 2024 14:07:50 +0100 Subject: [PATCH 158/180] Run slack wf only if pr is merged --- .github/workflows/slack.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/slack.yml b/.github/workflows/slack.yml index 272213262..5e797b64a 100644 --- a/.github/workflows/slack.yml +++ b/.github/workflows/slack.yml @@ -1,14 +1,14 @@ name: Notify on merged PR on: pull_request: -# types: -# - closed + types: + - closed jobs: notify_merged_pr: name: Notify on merged PR runs-on: ubuntu-22.04 - # if: ${{ github.event.pull_request.merged == true }} + if: ${{ github.event.pull_request.merged == true }} steps: - uses: abinoda/slack-action@master env: From 1bdd91abbb7a8273be5e1c04deb8bc4a86d72fbe Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Wed, 10 Jan 2024 14:18:26 +0100 Subject: [PATCH 159/180] only for tests --- src/chart/main/stylesheet.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/chart/main/stylesheet.cpp b/src/chart/main/stylesheet.cpp index 7ab33416e..c4fdd9caf 100644 --- a/src/chart/main/stylesheet.cpp +++ b/src/chart/main/stylesheet.cpp @@ -90,8 +90,8 @@ void Sheet::setAxisLabels() def.side = AxisLabel::Side::positive; } else { - def.paddingRight = Gfx::Length::Emphemeral(3 / 12.0); - def.paddingLeft = Gfx::Length::Emphemeral(3 / 12.0); + def.paddingRight = Gfx::Length::Emphemeral(6 / 12.0); + def.paddingLeft = Gfx::Length::Emphemeral(6 / 12.0); if (const auto &xAxis = options->getChannels().at(Gen::ChannelId::x); From ce0c7e4b7975d25e30990ac3b9354f4b30bd9a4e Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 10 Jan 2024 14:48:06 +0100 Subject: [PATCH 160/180] added author and reviewers list --- .github/workflows/slack.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/slack.yml b/.github/workflows/slack.yml index 5e797b64a..5bca08ea3 100644 --- a/.github/workflows/slack.yml +++ b/.github/workflows/slack.yml @@ -1,18 +1,18 @@ name: Notify on merged PR on: pull_request: - types: - - closed +# types: +# - closed jobs: notify_merged_pr: name: Notify on merged PR runs-on: ubuntu-22.04 - if: ${{ github.event.pull_request.merged == true }} + # if: ${{ github.event.pull_request.merged == true }} steps: - uses: abinoda/slack-action@master env: SLACK_BOT_TOKEN: ${{ secrets.VIZZUHQ_SLACK_API }} with: - args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' + args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Opened by :* ${{ github.event.pull_request.user.login }}\n*Requested reviewers :* ${{ github.event.pull_request.user.login }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' if: success() From 8d745fe9c578ca81d3eaa0e0bc26fdde54125551 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 10 Jan 2024 14:49:02 +0100 Subject: [PATCH 161/180] fixed slack template --- .github/workflows/slack.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/slack.yml b/.github/workflows/slack.yml index 5bca08ea3..ba9458c13 100644 --- a/.github/workflows/slack.yml +++ b/.github/workflows/slack.yml @@ -14,5 +14,5 @@ jobs: env: SLACK_BOT_TOKEN: ${{ secrets.VIZZUHQ_SLACK_API }} with: - args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Opened by :* ${{ github.event.pull_request.user.login }}\n*Requested reviewers :* ${{ github.event.pull_request.user.login }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' + args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Opened by :* ${{ github.event.pull_request.user.login }}\n*Requested reviewers :* ${{ github.event.pull_request.requested_reviewers }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' if: success() From d1d0433c2dfa20062ccc19b2258f5b555eb648a9 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 10 Jan 2024 14:53:35 +0100 Subject: [PATCH 162/180] use join on reviewers --- .github/workflows/slack.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/slack.yml b/.github/workflows/slack.yml index ba9458c13..f9262a658 100644 --- a/.github/workflows/slack.yml +++ b/.github/workflows/slack.yml @@ -14,5 +14,5 @@ jobs: env: SLACK_BOT_TOKEN: ${{ secrets.VIZZUHQ_SLACK_API }} with: - args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Opened by :* ${{ github.event.pull_request.user.login }}\n*Requested reviewers :* ${{ github.event.pull_request.requested_reviewers }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' + args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Opened by :* ${{ github.event.pull_request.user.login }}\n*Requested reviewers :* ${{ join(github.event.pull_request.requested_reviewers) }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' if: success() From aee2d9c73f96323ff456d4c6b7d5b03615969f6c Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 10 Jan 2024 14:56:35 +0100 Subject: [PATCH 163/180] fix reviewers join --- .github/workflows/slack.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/slack.yml b/.github/workflows/slack.yml index f9262a658..4e0e5b40e 100644 --- a/.github/workflows/slack.yml +++ b/.github/workflows/slack.yml @@ -14,5 +14,5 @@ jobs: env: SLACK_BOT_TOKEN: ${{ secrets.VIZZUHQ_SLACK_API }} with: - args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Opened by :* ${{ github.event.pull_request.user.login }}\n*Requested reviewers :* ${{ join(github.event.pull_request.requested_reviewers) }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' + args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Opened by :* ${{ github.event.pull_request.user.login }}\n*Requested reviewers :* ${{ join(github.event.pull_request.requested_reviewers.*.login) }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' if: success() From 245e9daf305532e97ac4eb5145c1571c155c80b9 Mon Sep 17 00:00:00 2001 From: David Vegh Date: Wed, 10 Jan 2024 15:04:04 +0100 Subject: [PATCH 164/180] removed reviewers --- .github/workflows/slack.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/slack.yml b/.github/workflows/slack.yml index 4e0e5b40e..1b37e23eb 100644 --- a/.github/workflows/slack.yml +++ b/.github/workflows/slack.yml @@ -1,18 +1,18 @@ name: Notify on merged PR on: pull_request: -# types: -# - closed + types: + - closed jobs: notify_merged_pr: name: Notify on merged PR runs-on: ubuntu-22.04 - # if: ${{ github.event.pull_request.merged == true }} + if: ${{ github.event.pull_request.merged == true }} steps: - uses: abinoda/slack-action@master env: SLACK_BOT_TOKEN: ${{ secrets.VIZZUHQ_SLACK_API }} with: - args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Opened by :* ${{ github.event.pull_request.user.login }}\n*Requested reviewers :* ${{ join(github.event.pull_request.requested_reviewers.*.login) }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' + args: '{\"channel\":\"${{ secrets.VIZZUHQ_SLACK_CHANNEL }}\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*PR:* ${{ github.event.pull_request.title }}\n*Description :* ${{ github.event.pull_request.body }}\n*Opened by :* ${{ github.event.pull_request.user.login }}\n*Merged at:* ${{ github.event.pull_request.merged_at }}\n<${{ github.event.pull_request.html_url }}|View PR>\"}}]}' if: success() From c42cef28425e62936beed43fa0046d4cb0886181 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 11 Jan 2024 09:47:23 +0100 Subject: [PATCH 165/180] some testcase fix --- test/e2e/test_cases/test_cases.json | 200 ++++++++++++++-------------- 1 file changed, 100 insertions(+), 100 deletions(-) diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index 2fa988eae..32dc3c0a9 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -17,43 +17,43 @@ "refs": ["a1535ae"] }, "basic_animations/anim_order/rectangle_without_2_polar_column": { - "refs": ["57e6f23"] + "refs": ["58c7b11"] }, "basic_animations/coordsystems/area_carte_2_polar": { - "refs": ["0d93453"] + "refs": ["7ed7ddb"] }, "basic_animations/coordsystems/circle_without_2_carte": { "refs": ["44524c8"] }, "basic_animations/coordsystems/rectangle_carte_2_polar": { - "refs": ["70f638b"] + "refs": ["e7de461"] }, "basic_animations/coordsystems/rectangle_without_2_carte": { "refs": ["00e5959"] }, "basic_animations/coordsystems/rectangle_without_2_polar": { - "refs": ["3f2d32b"] + "refs": ["50448cf"] }, "basic_animations/labels/axis/circle_negative_2dis_3con": { - "refs": ["e2f7928"] + "refs": ["c02f310"] }, "basic_animations/labels/marker/area_2dis_3con": { - "refs": ["cafea30"] + "refs": ["b733b9f"] }, "basic_animations/labels/marker/circle_negative_2dis_3con": { - "refs": ["38631f6"] + "refs": ["662dcea"] }, "basic_animations/labels/marker/line_2dis_3con": { - "refs": ["2753eb0"] + "refs": ["4c3b692"] }, "basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con": { - "refs": ["aa01f1a"] + "refs": ["92b1313"] }, "basic_animations/labels/marker/rectangle_negative_2dis_3con": { - "refs": ["7f10103"] + "refs": ["ea517e2"] }, "basic_animations/labels/rectangle_labels_rotated_charts": { - "refs": ["3236d84"] + "refs": ["841537d"] }, "basic_animations/legend_transitions/color_2discrete_anim": { "refs": ["955eea3"] @@ -110,22 +110,22 @@ "refs": ["927adbc"] }, "basic_animations/markers_morph/marker_trans_neg_1dis_1con": { - "refs": ["b51fba3"] + "refs": ["634b5b5"] }, "basic_animations/someOtherTests/merge_split_area_stream_2dis_1con": { - "refs": ["3a00e07"] + "refs": ["8c99c65"] }, "basic_animations/someOtherTests/total_time_area_bar": { - "refs": ["4503ca5"] + "refs": ["f4ff755"] }, "basic_animations/someOtherTests/total_time_area_column": { - "refs": ["1b27db5"] + "refs": ["2cf8c1b"] }, "basic_animations/someOtherTests/total_time_bar_line": { - "refs": ["5fe98b0"] + "refs": ["1d05e1d"] }, "basic_animations/someOtherTests/total_time_column_line": { - "refs": ["3037126"] + "refs": ["2df511f"] }, "chart_precision/area_negative_x": { "refs": ["7b8bffc"] @@ -185,13 +185,13 @@ "refs": ["42fb179"] }, "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["7bdfeb7"] + "refs": ["6635e2a"] }, "data_fault_and_formats/column_rectangle_more_conti": { "refs": ["c2c2362"] }, "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["0b1b742"] + "refs": ["c898f70"] }, "data_fault_and_formats/rectangle_data_cube": { "refs": ["4b66407"] @@ -200,13 +200,13 @@ "refs": ["997f1a7"] }, "lay_out/full_line_negative_2dis_1con": { - "refs": ["7111815"] + "refs": ["94ebf92"] }, "lay_out/legend_plot_coxcomb_rectangle_2dis_1con": { "refs": ["01b0b8e"] }, "lay_out/legend_plot_line_negative_2dis_1con": { - "refs": ["49cdf02"] + "refs": ["cf12c46"] }, "lay_out/plot_coxcomb_rectangle_2dis_1con": { "refs": ["797b1fa"] @@ -224,7 +224,7 @@ "refs": ["4263129"] }, "operations/all_operations_sizeing": { - "refs": ["29a0d5b"] + "refs": ["c43e20a"] }, "operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate": { "refs": ["8f3c3b6"] @@ -293,7 +293,7 @@ "refs": ["fc6a0ae"] }, "operations/histogram_2_drilldown_negative_1dis_1con": { - "refs": ["8b3e947"] + "refs": ["e8763ef"] }, "operations/orientation_tutorial_data/area_orientation": { "refs": ["b61766f"] @@ -317,7 +317,7 @@ "refs": ["ab5615c"] }, "shorthands/column_shorthands": { - "refs": ["b582123"] + "refs": ["80db31c"] }, "static_chart_types/cartesian_coo_sys/area_1dis_1con": { "refs": ["4454f52"] @@ -338,10 +338,10 @@ "refs": ["795ad09"] }, "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con": { - "refs": ["f1d1d23"] + "refs": ["5f5796f"] }, "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con": { - "refs": ["c71a56a"] + "refs": ["6520a7a"] }, "static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con": { "refs": ["3aa634d"] @@ -356,7 +356,7 @@ "refs": ["2ceb802"] }, "static_chart_types/cartesian_coo_sys/line_negative_2dis_1con": { - "refs": ["3966d03"] + "refs": ["28cdf15"] }, "static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con": { "refs": ["1108d45"] @@ -374,7 +374,7 @@ "refs": ["93b7b2b"] }, "static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con": { - "refs": ["2ea83ca"] + "refs": ["5da2d60"] }, "static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con": { "refs": ["c07818d"] @@ -437,28 +437,28 @@ "refs": ["def2298"] }, "web_content/analytical_operations/change_dimension/area_stacked": { - "refs": ["018f892"] + "refs": ["f53dc55"] }, "web_content/analytical_operations/change_dimension/column_stacked": { "refs": ["f666c2a"] }, "web_content/analytical_operations/change_dimension/dotplot_1": { - "refs": ["ece5e2c"] + "refs": ["083b6ff"] }, "web_content/analytical_operations/change_dimension/dotplot_2": { - "refs": ["54fde50"] + "refs": ["937b177"] }, "web_content/analytical_operations/change_dimension/dotplot_polar": { "refs": ["e0a2880"] }, "web_content/analytical_operations/change_dimension/line": { - "refs": ["fe5c424"] + "refs": ["4f46587"] }, "web_content/analytical_operations/change_dimension/line_polar": { "refs": ["9003b50"] }, "web_content/analytical_operations/compare/area_100percent_stacked": { - "refs": ["ae1efbc"] + "refs": ["7bae058"] }, "web_content/analytical_operations/compare/area_polar_split": { "refs": ["3ed985a"] @@ -467,31 +467,31 @@ "refs": ["b697914"] }, "web_content/analytical_operations/compare/area_split_stacked": { - "refs": ["f134d84"] + "refs": ["9a2758e"] }, "web_content/analytical_operations/compare/area_stacked": { - "refs": ["3264c93"] + "refs": ["439dcff"] }, "web_content/analytical_operations/compare/column_100percent_stacked": { - "refs": ["b887eaa"] + "refs": ["bfc1841"] }, "web_content/analytical_operations/compare/column_groupped_1": { - "refs": ["1a662ea"] + "refs": ["66b6027"] }, "web_content/analytical_operations/compare/column_groupped_2": { - "refs": ["30a2a9d"] + "refs": ["f86511f"] }, "web_content/analytical_operations/compare/column_split_stacked_1": { - "refs": ["028b5f4"] + "refs": ["9d6016a"] }, "web_content/analytical_operations/compare/column_split_stacked_2": { - "refs": ["402a583"] + "refs": ["08f1cdb"] }, "web_content/analytical_operations/compare/column_stacked_1": { - "refs": ["41b1a4e"] + "refs": ["b5b137d"] }, "web_content/analytical_operations/compare/column_stacked_2": { - "refs": ["812c194"] + "refs": ["296cf4f"] }, "web_content/analytical_operations/compare/coxcomb_1": { "refs": ["68b44ab"] @@ -500,37 +500,37 @@ "refs": ["7c30c03"] }, "web_content/analytical_operations/compare/line": { - "refs": ["8198112"] + "refs": ["0f7dfaa"] }, "web_content/analytical_operations/compare/line_polar": { "refs": ["03a5cfe"] }, "web_content/analytical_operations/compare/stream_stacked": { - "refs": ["d2df83f"] + "refs": ["20bb1e7"] }, "web_content/analytical_operations/compare/waterfall": { - "refs": ["16a3b23"] + "refs": ["3a7078b"] }, "web_content/analytical_operations/distribute/existingmeasure_area_stacked": { - "refs": ["84be0b1"] + "refs": ["7701b31"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble": { "refs": ["ac20402"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1": { - "refs": ["22431c4"] + "refs": ["d224a12"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2": { - "refs": ["1ce90c2"] + "refs": ["a0a6ce4"] }, "web_content/analytical_operations/distribute/existingmeasure_column_stacked": { - "refs": ["ab90c67"] + "refs": ["bbd7644"] }, "web_content/analytical_operations/distribute/existingmeasure_coxcomb": { "refs": ["dee091c"] }, "web_content/analytical_operations/distribute/existingmeasure_dotplot": { - "refs": ["4f4bc72"] + "refs": ["8e807c3"] }, "web_content/analytical_operations/distribute/existingmeasure_scatterplot": { "refs": ["90ef2ac"] @@ -539,19 +539,19 @@ "refs": ["e705f72"] }, "web_content/analytical_operations/distribute/existingmeasure_treemap_stacked": { - "refs": ["1d75210"] + "refs": ["32c28ee"] }, "web_content/analytical_operations/distribute/newmeasure_column": { "refs": ["2a392a8"] }, "web_content/analytical_operations/distribute/newmeasure_column_split_stacked": { - "refs": ["4e42333"] + "refs": ["3fbce3a"] }, "web_content/analytical_operations/distribute/newmeasure_column_stacked": { - "refs": ["17b70ff"] + "refs": ["1f418df"] }, "web_content/analytical_operations/distribute/newmeasure_dotplot_1": { - "refs": ["56f8887"] + "refs": ["04b52c9"] }, "web_content/analytical_operations/distribute/newmeasure_dotplot_2": { "refs": ["7d277a4"] @@ -563,7 +563,7 @@ "refs": ["6f9a654"] }, "web_content/analytical_operations/drilldown/area": { - "refs": ["b9a4259"] + "refs": ["4e88a53"] }, "web_content/analytical_operations/drilldown/area_polar": { "refs": ["35b7681"] @@ -572,10 +572,10 @@ "refs": ["17b4851"] }, "web_content/analytical_operations/drilldown/column_1": { - "refs": ["8b635e9"] + "refs": ["9225dac"] }, "web_content/analytical_operations/drilldown/column_2": { - "refs": ["a088dc3"] + "refs": ["2138075"] }, "web_content/analytical_operations/drilldown/column_3": { "refs": ["2c51570"] @@ -584,16 +584,16 @@ "refs": ["512091a"] }, "web_content/analytical_operations/drilldown/column_stacked": { - "refs": ["dcadb20"] + "refs": ["94d8177"] }, "web_content/analytical_operations/drilldown/donut": { "refs": ["10db8a3"] }, "web_content/analytical_operations/drilldown/line_1": { - "refs": ["5d0b4ca"] + "refs": ["bc51e8d"] }, "web_content/analytical_operations/drilldown/line_2": { - "refs": ["4bb8e34"] + "refs": ["b950347"] }, "web_content/analytical_operations/drilldown/line_polar_1": { "refs": ["8d3ec8e"] @@ -611,16 +611,16 @@ "refs": ["e04af22"] }, "web_content/analytical_operations/filter/area_stacked": { - "refs": ["9647e35"] + "refs": ["982d052"] }, "web_content/analytical_operations/filter/line": { - "refs": ["4b47ba3"] + "refs": ["d06cb35"] }, "web_content/analytical_operations/filter/line_polar": { "refs": ["669fa0b"] }, "web_content/analytical_operations/filter/stream_1": { - "refs": ["f153df2"] + "refs": ["c83c367"] }, "web_content/analytical_operations/filter/stream_2": { "refs": ["42eb797"] @@ -635,19 +635,19 @@ "refs": ["f20e8be"] }, "web_content/analytical_operations/misc/make_space_with_polar": { - "refs": ["823e207"] + "refs": ["1cce3fa"] }, "web_content/analytical_operations/split/area_polar_stacked": { "refs": ["1f3406a"] }, "web_content/analytical_operations/split/area_stacked": { - "refs": ["fb84b42"] + "refs": ["d36e086"] }, "web_content/analytical_operations/split/column_100percent_stacked": { - "refs": ["787bdff"] + "refs": ["d28a527"] }, "web_content/analytical_operations/split/column_stacked": { - "refs": ["1e004a2"] + "refs": ["3151074"] }, "web_content/analytical_operations/split/coxcomb": { "refs": ["fb8bcf1"] @@ -662,22 +662,22 @@ "refs": ["12bf6f0"] }, "web_content/analytical_operations/stretch_to_proportion/area_stacked": { - "refs": ["c1c8d86"] + "refs": ["76d0869"] }, "web_content/analytical_operations/stretch_to_proportion/column_groupped": { - "refs": ["96b9af3"] + "refs": ["abc089c"] }, "web_content/analytical_operations/stretch_to_proportion/column_split_stacked": { - "refs": ["c4722ca"] + "refs": ["95e6d30"] }, "web_content/analytical_operations/stretch_to_proportion/column_stacked": { - "refs": ["3079652"] + "refs": ["9346d77"] }, "web_content/analytical_operations/stretch_to_proportion/line": { - "refs": ["3ced485"] + "refs": ["216c821"] }, "web_content/analytical_operations/sum/area_100percent_stacked": { - "refs": ["4fe46e1"] + "refs": ["aede86e"] }, "web_content/analytical_operations/sum/area_polar_split": { "refs": ["e04e94d"] @@ -686,10 +686,10 @@ "refs": ["d35db18"] }, "web_content/analytical_operations/sum/area_split": { - "refs": ["0b319b5"] + "refs": ["c3abdef"] }, "web_content/analytical_operations/sum/area_stacked": { - "refs": ["66eb65d"] + "refs": ["25ae381"] }, "web_content/analytical_operations/sum/bubble": { "refs": ["1597bbf"] @@ -698,7 +698,7 @@ "refs": ["e2bf91b"] }, "web_content/analytical_operations/sum/bubble_to_coxcomb": { - "refs": ["365be91"] + "refs": ["d33a86f"] }, "web_content/analytical_operations/sum/bubble_to_radial": { "refs": ["adeac72"] @@ -710,10 +710,10 @@ "refs": ["fd48ec4"] }, "web_content/analytical_operations/sum/bubbleplot_to_radial": { - "refs": ["41500c0"] + "refs": ["89b0c9d"] }, "web_content/analytical_operations/sum/column_100percent_stacked": { - "refs": ["8584e94"] + "refs": ["3dbb0ce"] }, "web_content/analytical_operations/sum/column_1": { "refs": ["d8122ee"] @@ -725,19 +725,19 @@ "refs": ["5cdbbca"] }, "web_content/analytical_operations/sum/column_to_waterfall": { - "refs": ["14f44ce"] + "refs": ["021567a"] }, "web_content/analytical_operations/sum/column_groupped": { - "refs": ["21e1ef1"] + "refs": ["9b8781e"] }, "web_content/analytical_operations/sum/column_split_stacked": { - "refs": ["030e269"] + "refs": ["1f7c650"] }, "web_content/analytical_operations/sum/column_stacked_1": { "refs": ["23fb364"] }, "web_content/analytical_operations/sum/column_stacked_2": { - "refs": ["561a3ac"] + "refs": ["86bd0d8"] }, "web_content/analytical_operations/sum/coxcomb_1": { "refs": ["a8bea47"] @@ -749,13 +749,13 @@ "refs": ["dc1c419"] }, "web_content/analytical_operations/sum/dotplot": { - "refs": ["fc87038"] + "refs": ["52ae74f"] }, "web_content/analytical_operations/sum/line_1": { - "refs": ["685b0bd"] + "refs": ["d42b8e2"] }, "web_content/analytical_operations/sum/line_2": { - "refs": ["eaa8a78"] + "refs": ["35c8146"] }, "web_content/analytical_operations/sum/line_polar_1": { "refs": ["f4e3003"] @@ -860,7 +860,7 @@ "refs": ["e104842"] }, "web_content/infinite": { - "refs": ["f16cd5c"] + "refs": ["c831b44"] }, "web_content/presets/chart/column": { "refs": ["6ba52a1"] @@ -872,7 +872,7 @@ "refs": ["b60b323"] }, "web_content/presets/chart/column_splitted": { - "refs": ["e3d2e97"] + "refs": ["f4fac6b"] }, "web_content/presets/chart/column_percentage": { "refs": ["2a4d819"] @@ -914,28 +914,28 @@ "refs": ["f7e4ce0"] }, "web_content/presets/chart/area_stacked": { - "refs": ["56d80ec"] + "refs": ["a45a5ea"] }, "web_content/presets/chart/area_percentage": { - "refs": ["18ed5c6"] + "refs": ["8fb2016"] }, "web_content/presets/chart/area_splitted": { - "refs": ["379b15d"] + "refs": ["e7b31d1"] }, "web_content/presets/graph/stream": { - "refs": ["f832258"] + "refs": ["ed42a9b"] }, "web_content/presets/graph/stream_vertical": { - "refs": ["b040d2c"] + "refs": ["ae5214b"] }, "web_content/presets/graph/violin": { - "refs": ["e3711c2"] + "refs": ["3dc20b1"] }, "web_content/presets/graph/violin_vertical": { "refs": ["118b2d9"] }, "web_content/presets/chart/line": { - "refs": ["831b02b"] + "refs": ["e51deee"] }, "web_content/presets/chart/line_vertical": { "refs": ["fd0d49c"] @@ -977,7 +977,7 @@ "refs": ["6ad6c69"] }, "web_content/presets/heatmap": { - "refs": ["3900bac"] + "refs": ["9fe12c6"] }, "web_content/presets/chart/bubble": { "refs": ["04134d0"] @@ -1031,7 +1031,7 @@ "refs": ["2b6b83d"] }, "web_content/static/chart/area_stacked": { - "refs": ["56d80ec"] + "refs": ["a45a5ea"] }, "web_content/static/chart/mekko_stacked": { "refs": ["67962d3"] @@ -3203,7 +3203,7 @@ "refs": ["810d76a"] }, "web_content/cookbook/chart_types/historgram": { - "refs": ["13ec620"] + "refs": ["ead40c0"] }, "web_content/cookbook/chart_types/network_graph": { "refs": ["ae6af16"] @@ -3245,7 +3245,7 @@ "refs": ["111a932"] }, "web_content/cookbook/rendering/custom_linetype": { - "refs": ["8fe17e9"] + "refs": ["3fa7804"] }, "web_content/cookbook/rendering/gradient_on_marker": { "refs": ["878d4a5"] @@ -3284,13 +3284,13 @@ "refs": ["34f9d9c"] }, "web_content/cookbook/data_source/csv_load": { - "refs": ["660a651"] + "refs": ["6512bf2"] }, "web_content/cookbook/rendering/motion_blur": { "refs": ["be67912"] }, "web_content/cookbook/style/colorfilter": { - "refs": ["05406ff"] + "refs": ["9803812"] } } } From fb65073fae9e0d288ad027de2fbfd452660893d3 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 11 Jan 2024 11:03:28 +0100 Subject: [PATCH 166/180] add dimension axis density --- src/chart/generator/axis.cpp | 22 ++++--- src/chart/generator/axis.h | 5 +- src/chart/generator/plot.cpp | 2 +- src/chart/rendering/drawaxes.cpp | 3 +- src/chart/rendering/drawlegend.cpp | 4 +- test/e2e/tests/config_tests.json | 3 + .../config_tests/dimension_axis_density.mjs | 57 +++++++++++++++++++ 7 files changed, 84 insertions(+), 12 deletions(-) create mode 100644 test/e2e/tests/config_tests/dimension_axis_density.mjs diff --git a/src/chart/generator/axis.cpp b/src/chart/generator/axis.cpp index f518a0956..28a389964 100644 --- a/src/chart/generator/axis.cpp +++ b/src/chart/generator/axis.cpp @@ -94,18 +94,26 @@ bool DimensionAxis::operator==(const DimensionAxis &other) const } void DimensionAxis::setLabels(const Data::DataCube &data, - const Data::DataTable &table) + const Data::DataTable &table, + double step) { - Values::iterator it; - for (it = values.begin(); it != values.end(); ++it) { + step = std::max(step, 1.0); + double currStep = step; + + for (int curr{}; auto &[slice, item] : values) { auto colIndex = - data.getSeriesByDim(it->first.dimIndex).getColIndex(); + data.getSeriesByDim(slice.dimIndex).getColIndex(); const auto &categories = table.getInfo(colIndex.value()).categories(); - if (it->first.index < categories.size()) - it->second.label = categories[it->first.index]; + + if (slice.index < categories.size()) + item.categoryValue = categories[slice.index]; else - it->second.label = "NA"; + item.categoryValue = "NA"; + + if (++curr < currStep) continue; + currStep += step; + item.label = item.categoryValue; } } diff --git a/src/chart/generator/axis.h b/src/chart/generator/axis.h index e3acc3e08..45b2f6c23 100644 --- a/src/chart/generator/axis.h +++ b/src/chart/generator/axis.h @@ -100,6 +100,7 @@ struct DimensionAxis double value; ::Anim::Interpolated colorBase; std::string label; + std::string categoryValue; double weight; Item(Math::Range range, @@ -119,6 +120,7 @@ struct DimensionAxis value(item.value), colorBase(item.colorBase), label(item.label), + categoryValue(item.categoryValue), weight(item.weight * factor) {} @@ -156,7 +158,8 @@ struct DimensionAxis return values.cend(); } void setLabels(const Data::DataCube &data, - const Data::DataTable &table); + const Data::DataTable &table, + double step); private: Values values; diff --git a/src/chart/generator/plot.cpp b/src/chart/generator/plot.cpp index 5f6c4cd81..2d12bf61b 100644 --- a/src/chart/generator/plot.cpp +++ b/src/chart/generator/plot.cpp @@ -386,7 +386,7 @@ void Plot::calcDimensionAxis(ChannelId type, } } } - axis.setLabels(dataCube, table); + axis.setLabels(dataCube, table, scale.step.getValue(1.0)); if (auto &&series = scale.labelSeries()) axis.category = series.value().toString(table); diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index e4397f194..7a8ccf4da 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -292,6 +292,7 @@ void DrawAxes::drawDimensionLabel(bool horizontal, ident = Geom::Point::Ident(horizontal), normal = Geom::Point::Ident(!horizontal), &text = it->second.label, + &categoryVal = it->second.categoryValue, textColor = *labelStyle.color, &weight, &category](int index, const auto &position) @@ -333,7 +334,7 @@ void DrawAxes::drawDimensionLabel(bool horizontal, *labelStyle.backgroundColor, *rootEvents.draw.plot.axis.label, Events::Targets::axisLabel(category, - text, + categoryVal, text, horizontal)); }); diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index 79810661c..a7f3b61ae 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -88,7 +88,7 @@ void DrawLegend::drawDimension(const Info &info) const auto alpha = value.second.weight * info.weight; drawMarker(info, - value.second.label, + value.second.categoryValue, colorBuilder.render(value.second.colorBase) * alpha, getMarkerRect(info, itemRect)); @@ -98,7 +98,7 @@ void DrawLegend::drawDimension(const Info &info) const style.label, *events.label, Events::Targets::legendLabel(info.dimension.category, - value.second.label, + value.second.categoryValue, value.second.label, info.type), DrawLabel::Options(true, alpha)); diff --git a/test/e2e/tests/config_tests.json b/test/e2e/tests/config_tests.json index 57dcda3ad..7c96a65ad 100644 --- a/test/e2e/tests/config_tests.json +++ b/test/e2e/tests/config_tests.json @@ -42,6 +42,9 @@ }, "dimension_axis_title": { "refs": ["d9bab94"] + }, + "dimension_axis_density": { + "refs": ["366be4e"] } } } diff --git a/test/e2e/tests/config_tests/dimension_axis_density.mjs b/test/e2e/tests/config_tests/dimension_axis_density.mjs new file mode 100644 index 000000000..9e67693d9 --- /dev/null +++ b/test/e2e/tests/config_tests/dimension_axis_density.mjs @@ -0,0 +1,57 @@ +let testSteps = [ + (chart) => + chart.animate({ + data: { + series: [ + { + name: 'C', + type: 'dimension', + values: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] + }, + { + name: 'Values 2', + type: 'measure', + values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + } + ] + } + }), + (chart) => + chart.animate( + { + x: 'C', + y: 'Values 2' + }, + 0 + ) +] + +for (let i = 11; i <= 66; i++) { + testSteps.push((chart) => + chart.animate( + { + x: { + step: i / 11, + title: 'Step: ' + i / 11 + } + }, + 0.3 + ) + ) +} + +for (let i = 7; i <= 12; i++) { + testSteps.push((chart) => + chart.animate( + { + x: { + step: i, + title: 'Step: ' + i + } + }, + 0.3 + ) + ) +} + +export default testSteps From 94b31a655f631a775582bd3a9350dacff8f72276 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 11 Jan 2024 14:08:43 +0100 Subject: [PATCH 167/180] fix dimension axis label fade --- src/chart/generator/axis.cpp | 30 +++++++------- src/chart/generator/axis.h | 2 +- src/chart/rendering/drawaxes.cpp | 41 ++++++++++++++----- src/chart/rendering/drawlegend.cpp | 26 +++++++----- test/e2e/test_cases/test_cases.json | 8 ++-- test/e2e/tests/config_tests.json | 2 +- .../config_tests/dimension_axis_density.mjs | 35 +++++++++------- 7 files changed, 89 insertions(+), 55 deletions(-) diff --git a/src/chart/generator/axis.cpp b/src/chart/generator/axis.cpp index 28a389964..9d033a3ce 100644 --- a/src/chart/generator/axis.cpp +++ b/src/chart/generator/axis.cpp @@ -98,7 +98,7 @@ void DimensionAxis::setLabels(const Data::DataCube &data, double step) { step = std::max(step, 1.0); - double currStep = step; + double currStep = 0.0; for (int curr{}; auto &[slice, item] : values) { auto colIndex = @@ -111,7 +111,7 @@ void DimensionAxis::setLabels(const Data::DataCube &data, else item.categoryValue = "NA"; - if (++curr < currStep) continue; + if (++curr <= currStep) continue; currStep += step; item.label = item.categoryValue; } @@ -123,45 +123,47 @@ DimensionAxis interpolate(const DimensionAxis &op0, { DimensionAxis res; - DimensionAxis::Values::const_iterator it; - for (it = op0.values.cbegin(); it != op0.values.cend(); ++it) { + for (const auto &[slice, item] : op0.values) { res.enabled = true; res.values.emplace(std::piecewise_construct, - std::tuple{it->first}, - std::tuple{it->second, true, 1 - factor}); + std::tuple{slice}, + std::forward_as_tuple(item, true, 1 - factor)); } - for (it = op1.values.cbegin(); it != op1.values.cend(); ++it) { + for (const auto &[slice, item] : op1.values) { res.enabled = true; - auto [resIt, end] = res.values.equal_range(it->first); + auto [resIt, end] = res.values.equal_range(slice); while (resIt != end && resIt->second.end) { ++resIt; } if (resIt == end) { res.values.emplace_hint(resIt, std::piecewise_construct, - std::tuple{it->first}, - std::tuple{it->second, false, factor}); + std::tuple{slice}, + std::forward_as_tuple(item, false, factor)); } else { resIt->second.end = true; resIt->second.range = Math::interpolate(resIt->second.range, - it->second.range, + item.range, factor); resIt->second.colorBase = interpolate(resIt->second.colorBase, - it->second.colorBase, + item.colorBase, factor); + resIt->second.label = + interpolate(resIt->second.label, item.label, factor); + resIt->second.value = Math::interpolate(resIt->second.value, - it->second.value, + item.value, factor); - resIt->second.weight += it->second.weight * factor; + resIt->second.weight += item.weight * factor; } } diff --git a/src/chart/generator/axis.h b/src/chart/generator/axis.h index 45b2f6c23..6ed1f7756 100644 --- a/src/chart/generator/axis.h +++ b/src/chart/generator/axis.h @@ -99,7 +99,7 @@ struct DimensionAxis Math::Range range; double value; ::Anim::Interpolated colorBase; - std::string label; + ::Anim::Interpolated label; std::string categoryValue; double weight; diff --git a/src/chart/rendering/drawaxes.cpp b/src/chart/rendering/drawaxes.cpp index 7a8ccf4da..1526faec4 100644 --- a/src/chart/rendering/drawaxes.cpp +++ b/src/chart/rendering/drawaxes.cpp @@ -327,16 +327,37 @@ void DrawAxes::drawDimensionLabel(bool horizontal, posDir = posDir.extend(sign); - OrientedLabel::create(canvas, text, posDir, labelStyle, 0) - .draw(canvas, - renderedChart, - textColor * weight * position.weight, - *labelStyle.backgroundColor, - *rootEvents.draw.plot.axis.label, - Events::Targets::axisLabel(category, - categoryVal, - text, - horizontal)); + auto draw = [&](const ::Anim::Weighted &str, + double plusWeight = 1.0) + { + OrientedLabel::create(canvas, + str.value, + posDir, + labelStyle, + 0) + .draw(canvas, + renderedChart, + textColor * weight * str.weight * plusWeight, + *labelStyle.backgroundColor, + *rootEvents.draw.plot.axis.label, + Events::Targets::axisLabel(category, + categoryVal, + str.value, + horizontal)); + }; + + if (labelStyle.position->interpolates() + && text.interpolates()) + draw(text.get(index), position.weight); + if (!labelStyle.position->interpolates() + && !text.interpolates()) + draw(text.get(0)); + else if (labelStyle.position->interpolates()) + draw(text.get(0), position.weight); + else if (text.interpolates()) { + draw(text.get(0)); + draw(text.get(1)); + } }); } diff --git a/src/chart/rendering/drawlegend.cpp b/src/chart/rendering/drawlegend.cpp index a7f3b61ae..00a275048 100644 --- a/src/chart/rendering/drawlegend.cpp +++ b/src/chart/rendering/drawlegend.cpp @@ -92,16 +92,22 @@ void DrawLegend::drawDimension(const Info &info) const colorBuilder.render(value.second.colorBase) * alpha, getMarkerRect(info, itemRect)); - label.draw(info.canvas, - getLabelRect(info, itemRect), - value.second.label, - style.label, - *events.label, - Events::Targets::legendLabel(info.dimension.category, - value.second.categoryValue, - value.second.label, - info.type), - DrawLabel::Options(true, alpha)); + value.second.label.visit( + [&](int, auto &weighted) + { + label.draw(info.canvas, + getLabelRect(info, itemRect), + weighted.value, + style.label, + *events.label, + Events::Targets::legendLabel( + info.dimension.category, + value.second.categoryValue, + weighted.value, + info.type), + DrawLabel::Options(true, + alpha * weighted.weight)); + }); } } diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index c1a449f4d..bc55229b8 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -2123,7 +2123,7 @@ "refs": ["11d5543"] }, "ww_noFade/wNoFade_Tests/1_des_pol/area/04b_are": { - "refs": ["f14caf3"] + "refs": ["d4a01ec"] }, "ww_noFade/wNoFade_Tests/1_des_pol/area/06a_are": { "refs": ["8500722"] @@ -2243,7 +2243,7 @@ "refs": ["174b9e0"] }, "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_1c": { - "refs": ["dacfe19"] + "refs": ["408884e"] }, "ww_noFade/wNoFade_Tests/1_des_pol/rectangle/04b_rec_2c": { "refs": ["206f7f9"] @@ -2501,7 +2501,7 @@ "refs": ["d3fda3c"] }, "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/04_cir": { - "refs": ["417a34a"] + "refs": ["109cec8"] }, "ww_noFade/wNoFade_cases/1_des_pol/circle-rectangle/05_cir": { "refs": ["8296987"] @@ -3236,7 +3236,7 @@ "refs": ["bd104b0"] }, "web_content/cookbook/style/dark_theme": { - "refs": ["2d08a18"] + "refs": ["91f471a"] }, "web_content/cookbook/style/highligh_markers": { "refs": ["48d6207"] diff --git a/test/e2e/tests/config_tests.json b/test/e2e/tests/config_tests.json index 7c96a65ad..644ae95ba 100644 --- a/test/e2e/tests/config_tests.json +++ b/test/e2e/tests/config_tests.json @@ -44,7 +44,7 @@ "refs": ["d9bab94"] }, "dimension_axis_density": { - "refs": ["366be4e"] + "refs": ["ad15978"] } } } diff --git a/test/e2e/tests/config_tests/dimension_axis_density.mjs b/test/e2e/tests/config_tests/dimension_axis_density.mjs index 9e67693d9..b872361e8 100644 --- a/test/e2e/tests/config_tests/dimension_axis_density.mjs +++ b/test/e2e/tests/config_tests/dimension_axis_density.mjs @@ -1,4 +1,4 @@ -let testSteps = [ +const testSteps = [ (chart) => chart.animate({ data: { @@ -19,28 +19,33 @@ let testSteps = [ (chart) => chart.animate( { - x: 'C', - y: 'Values 2' + x: { set: 'C', title: 'Step: 1' }, + y: 'Values 2', + color: 'C', + legend: 'color' }, 0 ) ] -for (let i = 11; i <= 66; i++) { - testSteps.push((chart) => - chart.animate( - { - x: { - step: i / 11, - title: 'Step: ' + i / 11 - } - }, - 0.3 +for (let i = 1; i <= 5; i++) { + for (let j = 12 / i - 1; j >= 1; j--) { + const num = (i * j + 1) / (j - 0.0000001) + testSteps.push((chart) => + chart.animate( + { + x: { + step: num, + title: 'Step: ' + Math.round(num * 1000) / 1000 + } + }, + 0.3 + ) ) - ) + } } -for (let i = 7; i <= 12; i++) { +for (let i = 6; i <= 12; i++) { testSteps.push((chart) => chart.animate( { From ccbbe4332955da9821d7ec23e586a1d8e9a6baf0 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 11 Jan 2024 14:35:38 +0100 Subject: [PATCH 168/180] only step on axis, add filter on dimension axis density test, add changelog --- CHANGELOG.md | 4 +++- src/chart/generator/plot.cpp | 7 +++++-- .../config_tests/dimension_axis_density.mjs | 21 ++++++++++++++++--- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ebcfa004..c1a5323ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,12 +6,14 @@ - Json serializer control character escape fixed. Some unicode characters were not escaped properly. +- Fix dimension label transition on axis and legend. ### Added - Added optional `categories` member to the `legend-marker`, `legend-label` and `plot-axis-label` events. - Remove unused marker selection and selected marker coloring. -- Remove cursor modification over logo +- Remove cursor modification over logo. +- Make `channel.step` option to work on dimensions. ## [0.9.3] - 2023-12-20 diff --git a/src/chart/generator/plot.cpp b/src/chart/generator/plot.cpp index 2d12bf61b..c2f78f7ab 100644 --- a/src/chart/generator/plot.cpp +++ b/src/chart/generator/plot.cpp @@ -350,7 +350,8 @@ void Plot::calcDimensionAxis(ChannelId type, auto dim = scale.labelLevel; - if (type == ChannelId::x || type == ChannelId::y) { + auto &&isTypeAxis = isAxis(type); + if (isTypeAxis) { for (const auto &marker : markers) { const auto &id = (type == ChannelId::x) == options->isHorizontal() @@ -386,7 +387,9 @@ void Plot::calcDimensionAxis(ChannelId type, } } } - axis.setLabels(dataCube, table, scale.step.getValue(1.0)); + axis.setLabels(dataCube, + table, + isTypeAxis ? scale.step.getValue(1.0) : 1.0); if (auto &&series = scale.labelSeries()) axis.category = series.value().toString(table); diff --git a/test/e2e/tests/config_tests/dimension_axis_density.mjs b/test/e2e/tests/config_tests/dimension_axis_density.mjs index b872361e8..9b628d206 100644 --- a/test/e2e/tests/config_tests/dimension_axis_density.mjs +++ b/test/e2e/tests/config_tests/dimension_axis_density.mjs @@ -6,14 +6,29 @@ const testSteps = [ { name: 'C', type: 'dimension', - values: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'] + values: [ + '1', + '2', + '3', + '3,5', + '4', + '5', + '6', + '7', + '8', + '9', + '10', + '11', + '12' + ] }, { name: 'Values 2', type: 'measure', - values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + values: [1, 2, 3, 3.5, 4, 5, 6, 7, 8, 9, 10, 11, 12] } - ] + ], + filter: (record) => record.C !== '3,5' } }), (chart) => From 39e5a5bf34031029bd4e9b730102d0dc6097c175 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 11 Jan 2024 15:29:53 +0100 Subject: [PATCH 169/180] fix ref --- test/e2e/tests/config_tests.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/tests/config_tests.json b/test/e2e/tests/config_tests.json index 644ae95ba..62b1b65bb 100644 --- a/test/e2e/tests/config_tests.json +++ b/test/e2e/tests/config_tests.json @@ -44,7 +44,7 @@ "refs": ["d9bab94"] }, "dimension_axis_density": { - "refs": ["ad15978"] + "refs": ["9b330fb"] } } } From d4e01a4741b3b7322a07e377b9c11d1fa1d8fa87 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Thu, 11 Jan 2024 15:57:29 +0100 Subject: [PATCH 170/180] revert the whole padding thing. Calculate only the half of the margin --- src/chart/main/stylesheet.cpp | 22 +- test/e2e/test_cases/test_cases.json | 384 ++++++++++++++-------------- test/e2e/tests/features.json | 4 +- test/e2e/tests/style_tests.json | 90 +++---- 4 files changed, 248 insertions(+), 252 deletions(-) diff --git a/src/chart/main/stylesheet.cpp b/src/chart/main/stylesheet.cpp index c4fdd9caf..d9b0cdfd7 100644 --- a/src/chart/main/stylesheet.cpp +++ b/src/chart/main/stylesheet.cpp @@ -89,16 +89,11 @@ void Sheet::setAxisLabels() def.position = AxisLabel::Position::max_edge; def.side = AxisLabel::Side::positive; } - else { - def.paddingRight = Gfx::Length::Emphemeral(6 / 12.0); - def.paddingLeft = Gfx::Length::Emphemeral(6 / 12.0); - - if (const auto &xAxis = - options->getChannels().at(Gen::ChannelId::x); - !xAxis.isEmpty() && xAxis.isDimension() - && options->angle == 0) - def.angle.reset(); - } + else if (const auto &xAxis = + options->getChannels().at(Gen::ChannelId::x); + !xAxis.isEmpty() && xAxis.isDimension() + && options->angle == 0) + def.angle.reset(); } void Sheet::setAxisTitle() @@ -212,10 +207,11 @@ void Sheet::setAfterStyles(Gen::Plot &plot, const Geom::Size &size) auto textBoundary = Gfx::ICanvas::textBoundary(font, pair.second.label); - auto textXMargin = - xLabel.toMargin(textBoundary, font.size).getSpace().x; + auto textXHalfMargin = + xLabel.toMargin(textBoundary, font.size).getSpace().x + / 2.0; auto xHalfSize = - (textBoundary.x + textXMargin) / plotX / 2.0; + (textBoundary.x + textXHalfMargin) / plotX / 2.0; auto rangeCenter = pair.second.range.middle(); diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index 32dc3c0a9..961c801ed 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -17,43 +17,43 @@ "refs": ["a1535ae"] }, "basic_animations/anim_order/rectangle_without_2_polar_column": { - "refs": ["58c7b11"] + "refs": ["244cc5f"] }, "basic_animations/coordsystems/area_carte_2_polar": { - "refs": ["7ed7ddb"] + "refs": ["7b3d87d"] }, "basic_animations/coordsystems/circle_without_2_carte": { "refs": ["44524c8"] }, "basic_animations/coordsystems/rectangle_carte_2_polar": { - "refs": ["e7de461"] + "refs": ["6109049"] }, "basic_animations/coordsystems/rectangle_without_2_carte": { "refs": ["00e5959"] }, "basic_animations/coordsystems/rectangle_without_2_polar": { - "refs": ["50448cf"] + "refs": ["5bfd4e0"] }, "basic_animations/labels/axis/circle_negative_2dis_3con": { - "refs": ["c02f310"] + "refs": ["6d34d02"] }, "basic_animations/labels/marker/area_2dis_3con": { - "refs": ["b733b9f"] + "refs": ["39a8de7"] }, "basic_animations/labels/marker/circle_negative_2dis_3con": { - "refs": ["662dcea"] + "refs": ["db72798"] }, "basic_animations/labels/marker/line_2dis_3con": { - "refs": ["4c3b692"] + "refs": ["a1c8ac0"] }, "basic_animations/labels/marker/padding_test_rectangle_negative_2dis_3con": { - "refs": ["92b1313"] + "refs": ["5df3408"] }, "basic_animations/labels/marker/rectangle_negative_2dis_3con": { - "refs": ["ea517e2"] + "refs": ["1d1c034"] }, "basic_animations/labels/rectangle_labels_rotated_charts": { - "refs": ["841537d"] + "refs": ["6ee1ac0"] }, "basic_animations/legend_transitions/color_2discrete_anim": { "refs": ["955eea3"] @@ -110,22 +110,22 @@ "refs": ["927adbc"] }, "basic_animations/markers_morph/marker_trans_neg_1dis_1con": { - "refs": ["634b5b5"] + "refs": ["b51fba3"] }, "basic_animations/someOtherTests/merge_split_area_stream_2dis_1con": { - "refs": ["8c99c65"] + "refs": ["940d210"] }, "basic_animations/someOtherTests/total_time_area_bar": { - "refs": ["f4ff755"] + "refs": ["4503ca5"] }, "basic_animations/someOtherTests/total_time_area_column": { - "refs": ["2cf8c1b"] + "refs": ["1b27db5"] }, "basic_animations/someOtherTests/total_time_bar_line": { - "refs": ["1d05e1d"] + "refs": ["5fe98b0"] }, "basic_animations/someOtherTests/total_time_column_line": { - "refs": ["2df511f"] + "refs": ["3037126"] }, "chart_precision/area_negative_x": { "refs": ["7b8bffc"] @@ -185,13 +185,13 @@ "refs": ["42fb179"] }, "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["6635e2a"] + "refs": ["dc55892"] }, "data_fault_and_formats/column_rectangle_more_conti": { "refs": ["c2c2362"] }, "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["c898f70"] + "refs": ["dbc5ef0"] }, "data_fault_and_formats/rectangle_data_cube": { "refs": ["4b66407"] @@ -200,13 +200,13 @@ "refs": ["997f1a7"] }, "lay_out/full_line_negative_2dis_1con": { - "refs": ["94ebf92"] + "refs": ["7111815"] }, "lay_out/legend_plot_coxcomb_rectangle_2dis_1con": { "refs": ["01b0b8e"] }, "lay_out/legend_plot_line_negative_2dis_1con": { - "refs": ["cf12c46"] + "refs": ["49cdf02"] }, "lay_out/plot_coxcomb_rectangle_2dis_1con": { "refs": ["797b1fa"] @@ -224,7 +224,7 @@ "refs": ["4263129"] }, "operations/all_operations_sizeing": { - "refs": ["c43e20a"] + "refs": ["95d6654"] }, "operations/drilldown_aggregate_tutorial_data/area_drilldown_aggregate": { "refs": ["8f3c3b6"] @@ -293,7 +293,7 @@ "refs": ["fc6a0ae"] }, "operations/histogram_2_drilldown_negative_1dis_1con": { - "refs": ["e8763ef"] + "refs": ["8b3e947"] }, "operations/orientation_tutorial_data/area_orientation": { "refs": ["b61766f"] @@ -317,7 +317,7 @@ "refs": ["ab5615c"] }, "shorthands/column_shorthands": { - "refs": ["80db31c"] + "refs": ["70affdf"] }, "static_chart_types/cartesian_coo_sys/area_1dis_1con": { "refs": ["4454f52"] @@ -338,10 +338,10 @@ "refs": ["795ad09"] }, "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_2dis_1con": { - "refs": ["5f5796f"] + "refs": ["b4aaf20"] }, "static_chart_types/cartesian_coo_sys/column_stacked_rectangle_negative_3dis_1con": { - "refs": ["6520a7a"] + "refs": ["c71a56a"] }, "static_chart_types/cartesian_coo_sys/dotplot_circle_negative_1dis_1con": { "refs": ["3aa634d"] @@ -356,7 +356,7 @@ "refs": ["2ceb802"] }, "static_chart_types/cartesian_coo_sys/line_negative_2dis_1con": { - "refs": ["28cdf15"] + "refs": ["3966d03"] }, "static_chart_types/cartesian_coo_sys/marimekko_rectangle_1dis_2con": { "refs": ["1108d45"] @@ -374,7 +374,7 @@ "refs": ["93b7b2b"] }, "static_chart_types/cartesian_coo_sys/stacked_area_negative_2dis_1con": { - "refs": ["5da2d60"] + "refs": ["2ea83ca"] }, "static_chart_types/cartesian_coo_sys/waterfall_rectangle_bar_negative_2dis_2con": { "refs": ["c07818d"] @@ -437,28 +437,28 @@ "refs": ["def2298"] }, "web_content/analytical_operations/change_dimension/area_stacked": { - "refs": ["f53dc55"] + "refs": ["018f892"] }, "web_content/analytical_operations/change_dimension/column_stacked": { "refs": ["f666c2a"] }, "web_content/analytical_operations/change_dimension/dotplot_1": { - "refs": ["083b6ff"] + "refs": ["ece5e2c"] }, "web_content/analytical_operations/change_dimension/dotplot_2": { - "refs": ["937b177"] + "refs": ["54fde50"] }, "web_content/analytical_operations/change_dimension/dotplot_polar": { "refs": ["e0a2880"] }, "web_content/analytical_operations/change_dimension/line": { - "refs": ["4f46587"] + "refs": ["fe5c424"] }, "web_content/analytical_operations/change_dimension/line_polar": { "refs": ["9003b50"] }, "web_content/analytical_operations/compare/area_100percent_stacked": { - "refs": ["7bae058"] + "refs": ["ae1efbc"] }, "web_content/analytical_operations/compare/area_polar_split": { "refs": ["3ed985a"] @@ -467,31 +467,31 @@ "refs": ["b697914"] }, "web_content/analytical_operations/compare/area_split_stacked": { - "refs": ["9a2758e"] + "refs": ["f134d84"] }, "web_content/analytical_operations/compare/area_stacked": { - "refs": ["439dcff"] + "refs": ["3264c93"] }, "web_content/analytical_operations/compare/column_100percent_stacked": { - "refs": ["bfc1841"] + "refs": ["b887eaa"] }, "web_content/analytical_operations/compare/column_groupped_1": { - "refs": ["66b6027"] + "refs": ["1a662ea"] }, "web_content/analytical_operations/compare/column_groupped_2": { - "refs": ["f86511f"] + "refs": ["30a2a9d"] }, "web_content/analytical_operations/compare/column_split_stacked_1": { - "refs": ["9d6016a"] + "refs": ["028b5f4"] }, "web_content/analytical_operations/compare/column_split_stacked_2": { - "refs": ["08f1cdb"] + "refs": ["402a583"] }, "web_content/analytical_operations/compare/column_stacked_1": { - "refs": ["b5b137d"] + "refs": ["41b1a4e"] }, "web_content/analytical_operations/compare/column_stacked_2": { - "refs": ["296cf4f"] + "refs": ["812c194"] }, "web_content/analytical_operations/compare/coxcomb_1": { "refs": ["68b44ab"] @@ -500,37 +500,37 @@ "refs": ["7c30c03"] }, "web_content/analytical_operations/compare/line": { - "refs": ["0f7dfaa"] + "refs": ["8198112"] }, "web_content/analytical_operations/compare/line_polar": { "refs": ["03a5cfe"] }, "web_content/analytical_operations/compare/stream_stacked": { - "refs": ["20bb1e7"] + "refs": ["13a4f7f"] }, "web_content/analytical_operations/compare/waterfall": { - "refs": ["3a7078b"] + "refs": ["16a3b23"] }, "web_content/analytical_operations/distribute/existingmeasure_area_stacked": { - "refs": ["7701b31"] + "refs": ["84be0b1"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble": { "refs": ["ac20402"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1": { - "refs": ["d224a12"] + "refs": ["70bdcce"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_2": { - "refs": ["a0a6ce4"] + "refs": ["1ce90c2"] }, "web_content/analytical_operations/distribute/existingmeasure_column_stacked": { - "refs": ["bbd7644"] + "refs": ["ab90c67"] }, "web_content/analytical_operations/distribute/existingmeasure_coxcomb": { "refs": ["dee091c"] }, "web_content/analytical_operations/distribute/existingmeasure_dotplot": { - "refs": ["8e807c3"] + "refs": ["4f4bc72"] }, "web_content/analytical_operations/distribute/existingmeasure_scatterplot": { "refs": ["90ef2ac"] @@ -539,19 +539,19 @@ "refs": ["e705f72"] }, "web_content/analytical_operations/distribute/existingmeasure_treemap_stacked": { - "refs": ["32c28ee"] + "refs": ["1d75210"] }, "web_content/analytical_operations/distribute/newmeasure_column": { "refs": ["2a392a8"] }, "web_content/analytical_operations/distribute/newmeasure_column_split_stacked": { - "refs": ["3fbce3a"] + "refs": ["4e42333"] }, "web_content/analytical_operations/distribute/newmeasure_column_stacked": { - "refs": ["1f418df"] + "refs": ["17b70ff"] }, "web_content/analytical_operations/distribute/newmeasure_dotplot_1": { - "refs": ["04b52c9"] + "refs": ["477b699"] }, "web_content/analytical_operations/distribute/newmeasure_dotplot_2": { "refs": ["7d277a4"] @@ -563,7 +563,7 @@ "refs": ["6f9a654"] }, "web_content/analytical_operations/drilldown/area": { - "refs": ["4e88a53"] + "refs": ["b9a4259"] }, "web_content/analytical_operations/drilldown/area_polar": { "refs": ["35b7681"] @@ -572,10 +572,10 @@ "refs": ["17b4851"] }, "web_content/analytical_operations/drilldown/column_1": { - "refs": ["9225dac"] + "refs": ["8b635e9"] }, "web_content/analytical_operations/drilldown/column_2": { - "refs": ["2138075"] + "refs": ["a088dc3"] }, "web_content/analytical_operations/drilldown/column_3": { "refs": ["2c51570"] @@ -584,16 +584,16 @@ "refs": ["512091a"] }, "web_content/analytical_operations/drilldown/column_stacked": { - "refs": ["94d8177"] + "refs": ["dcadb20"] }, "web_content/analytical_operations/drilldown/donut": { "refs": ["10db8a3"] }, "web_content/analytical_operations/drilldown/line_1": { - "refs": ["bc51e8d"] + "refs": ["5d0b4ca"] }, "web_content/analytical_operations/drilldown/line_2": { - "refs": ["b950347"] + "refs": ["4bb8e34"] }, "web_content/analytical_operations/drilldown/line_polar_1": { "refs": ["8d3ec8e"] @@ -611,16 +611,16 @@ "refs": ["e04af22"] }, "web_content/analytical_operations/filter/area_stacked": { - "refs": ["982d052"] + "refs": ["9647e35"] }, "web_content/analytical_operations/filter/line": { - "refs": ["d06cb35"] + "refs": ["4b47ba3"] }, "web_content/analytical_operations/filter/line_polar": { "refs": ["669fa0b"] }, "web_content/analytical_operations/filter/stream_1": { - "refs": ["c83c367"] + "refs": ["9d5e039"] }, "web_content/analytical_operations/filter/stream_2": { "refs": ["42eb797"] @@ -635,19 +635,19 @@ "refs": ["f20e8be"] }, "web_content/analytical_operations/misc/make_space_with_polar": { - "refs": ["1cce3fa"] + "refs": ["e1404a0"] }, "web_content/analytical_operations/split/area_polar_stacked": { "refs": ["1f3406a"] }, "web_content/analytical_operations/split/area_stacked": { - "refs": ["d36e086"] + "refs": ["fb84b42"] }, "web_content/analytical_operations/split/column_100percent_stacked": { - "refs": ["d28a527"] + "refs": ["787bdff"] }, "web_content/analytical_operations/split/column_stacked": { - "refs": ["3151074"] + "refs": ["1e004a2"] }, "web_content/analytical_operations/split/coxcomb": { "refs": ["fb8bcf1"] @@ -662,22 +662,22 @@ "refs": ["12bf6f0"] }, "web_content/analytical_operations/stretch_to_proportion/area_stacked": { - "refs": ["76d0869"] + "refs": ["c1c8d86"] }, "web_content/analytical_operations/stretch_to_proportion/column_groupped": { - "refs": ["abc089c"] + "refs": ["96b9af3"] }, "web_content/analytical_operations/stretch_to_proportion/column_split_stacked": { - "refs": ["95e6d30"] + "refs": ["c4722ca"] }, "web_content/analytical_operations/stretch_to_proportion/column_stacked": { - "refs": ["9346d77"] + "refs": ["3079652"] }, "web_content/analytical_operations/stretch_to_proportion/line": { - "refs": ["216c821"] + "refs": ["3ced485"] }, "web_content/analytical_operations/sum/area_100percent_stacked": { - "refs": ["aede86e"] + "refs": ["4fe46e1"] }, "web_content/analytical_operations/sum/area_polar_split": { "refs": ["e04e94d"] @@ -686,10 +686,10 @@ "refs": ["d35db18"] }, "web_content/analytical_operations/sum/area_split": { - "refs": ["c3abdef"] + "refs": ["0b319b5"] }, "web_content/analytical_operations/sum/area_stacked": { - "refs": ["25ae381"] + "refs": ["66eb65d"] }, "web_content/analytical_operations/sum/bubble": { "refs": ["1597bbf"] @@ -698,7 +698,7 @@ "refs": ["e2bf91b"] }, "web_content/analytical_operations/sum/bubble_to_coxcomb": { - "refs": ["d33a86f"] + "refs": ["4010e8a"] }, "web_content/analytical_operations/sum/bubble_to_radial": { "refs": ["adeac72"] @@ -710,10 +710,10 @@ "refs": ["fd48ec4"] }, "web_content/analytical_operations/sum/bubbleplot_to_radial": { - "refs": ["89b0c9d"] + "refs": ["1547dae"] }, "web_content/analytical_operations/sum/column_100percent_stacked": { - "refs": ["3dbb0ce"] + "refs": ["8584e94"] }, "web_content/analytical_operations/sum/column_1": { "refs": ["d8122ee"] @@ -725,19 +725,19 @@ "refs": ["5cdbbca"] }, "web_content/analytical_operations/sum/column_to_waterfall": { - "refs": ["021567a"] + "refs": ["14f44ce"] }, "web_content/analytical_operations/sum/column_groupped": { - "refs": ["9b8781e"] + "refs": ["21e1ef1"] }, "web_content/analytical_operations/sum/column_split_stacked": { - "refs": ["1f7c650"] + "refs": ["030e269"] }, "web_content/analytical_operations/sum/column_stacked_1": { "refs": ["23fb364"] }, "web_content/analytical_operations/sum/column_stacked_2": { - "refs": ["86bd0d8"] + "refs": ["561a3ac"] }, "web_content/analytical_operations/sum/coxcomb_1": { "refs": ["a8bea47"] @@ -749,13 +749,13 @@ "refs": ["dc1c419"] }, "web_content/analytical_operations/sum/dotplot": { - "refs": ["52ae74f"] + "refs": ["fc87038"] }, "web_content/analytical_operations/sum/line_1": { - "refs": ["d42b8e2"] + "refs": ["685b0bd"] }, "web_content/analytical_operations/sum/line_2": { - "refs": ["35c8146"] + "refs": ["eaa8a78"] }, "web_content/analytical_operations/sum/line_polar_1": { "refs": ["f4e3003"] @@ -860,7 +860,7 @@ "refs": ["e104842"] }, "web_content/infinite": { - "refs": ["c831b44"] + "refs": ["0336dc0"] }, "web_content/presets/chart/column": { "refs": ["6ba52a1"] @@ -872,7 +872,7 @@ "refs": ["b60b323"] }, "web_content/presets/chart/column_splitted": { - "refs": ["f4fac6b"] + "refs": ["e3d2e97"] }, "web_content/presets/chart/column_percentage": { "refs": ["2a4d819"] @@ -914,28 +914,28 @@ "refs": ["f7e4ce0"] }, "web_content/presets/chart/area_stacked": { - "refs": ["a45a5ea"] + "refs": ["56d80ec"] }, "web_content/presets/chart/area_percentage": { - "refs": ["8fb2016"] + "refs": ["18ed5c6"] }, "web_content/presets/chart/area_splitted": { - "refs": ["e7b31d1"] + "refs": ["379b15d"] }, "web_content/presets/graph/stream": { - "refs": ["ed42a9b"] + "refs": ["615796b"] }, "web_content/presets/graph/stream_vertical": { - "refs": ["ae5214b"] + "refs": ["61c1430"] }, "web_content/presets/graph/violin": { - "refs": ["3dc20b1"] + "refs": ["2931418"] }, "web_content/presets/graph/violin_vertical": { "refs": ["118b2d9"] }, "web_content/presets/chart/line": { - "refs": ["e51deee"] + "refs": ["831b02b"] }, "web_content/presets/chart/line_vertical": { "refs": ["fd0d49c"] @@ -977,7 +977,7 @@ "refs": ["6ad6c69"] }, "web_content/presets/heatmap": { - "refs": ["9fe12c6"] + "refs": ["3900bac"] }, "web_content/presets/chart/bubble": { "refs": ["04134d0"] @@ -1004,7 +1004,7 @@ "refs": ["0ddd341"] }, "web_content/static/chart/column_stacked": { - "refs": ["d442396"] + "refs": ["514bf91"] }, "web_content/static/plot/dot": { "refs": ["13ff196"] @@ -1031,7 +1031,7 @@ "refs": ["2b6b83d"] }, "web_content/static/chart/area_stacked": { - "refs": ["a45a5ea"] + "refs": ["56d80ec"] }, "web_content/static/chart/mekko_stacked": { "refs": ["67962d3"] @@ -1079,100 +1079,100 @@ "refs": ["6ad6c69"] }, "ww_animTiming/descartes-polar/01_d-p_r-r-r": { - "refs": ["136800e"] + "refs": ["613bd08"] }, "ww_animTiming/descartes-polar/02_d-p_c-r-c": { - "refs": ["1126d1a"] + "refs": ["4545f3a"] }, "ww_animTiming/descartes-polar/03_d-p_a-r-a": { - "refs": ["1d8b547"] + "refs": ["336378d"] }, "ww_animTiming/descartes-polar/04_d-p_l-r-l": { - "refs": ["206dd6c"] + "refs": ["25e86bc"] }, "ww_animTiming/descartes-polar/05_d-p_r-c-r": { - "refs": ["9898714"] + "refs": ["b65d696"] }, "ww_animTiming/descartes-polar/06_d-p_c-c-c": { - "refs": ["167288b"] + "refs": ["495e636"] }, "ww_animTiming/descartes-polar/07_d-p_a-c-a": { - "refs": ["8474f5f"] + "refs": ["2003df2"] }, "ww_animTiming/descartes-polar/08_d-p_l-c-l": { - "refs": ["a9ffda6"] + "refs": ["d067431"] }, "ww_animTiming/descartes-polar/09_d-p_r-a-r": { - "refs": ["673cf15"] + "refs": ["9027d67"] }, "ww_animTiming/descartes-polar/10_d-p_c-a-c": { - "refs": ["3b0d5fb"] + "refs": ["8ee3908"] }, "ww_animTiming/descartes-polar/11_d-p_a-a-a": { - "refs": ["2a3dad3"] + "refs": ["324bf4b"] }, "ww_animTiming/descartes-polar/12_d-p_l-a-l": { - "refs": ["fd84cb5"] + "refs": ["21ad937"] }, "ww_animTiming/descartes-polar/13_d-p_r-l-r": { - "refs": ["b3d1ef2"] + "refs": ["a491f75"] }, "ww_animTiming/descartes-polar/14_d-p_c-l-c": { - "refs": ["b66944a"] + "refs": ["03bd776"] }, "ww_animTiming/descartes-polar/15_d-p_a-l-a": { - "refs": ["f584f96"] + "refs": ["e0bfdbc"] }, "ww_animTiming/descartes-polar/16_d-p_l-l-l": { - "refs": ["36f7cb5"] + "refs": ["6cae5be"] }, "ww_animTiming/descartes-polar_orient/01_d-p_o_r-r-r": { - "refs": ["3f3cc61"] + "refs": ["a01ddc2"] }, "ww_animTiming/descartes-polar_orient/02_d-p_o_c-r-c": { - "refs": ["548d48c"] + "refs": ["0e357e4"] }, "ww_animTiming/descartes-polar_orient/03_d-p_o_a-r-a": { - "refs": ["1bd8ec4"] + "refs": ["cb40a47"] }, "ww_animTiming/descartes-polar_orient/04_d-p_o_l-r-l": { - "refs": ["edf0064"] + "refs": ["b0b1acf"] }, "ww_animTiming/descartes-polar_orient/05_d-p_o_r-c-r": { - "refs": ["50566c0"] + "refs": ["bf1adce"] }, "ww_animTiming/descartes-polar_orient/06_d-p_o_c-c-c": { - "refs": ["292ad45"] + "refs": ["9104d61"] }, "ww_animTiming/descartes-polar_orient/07_d-p_o_a-c-a": { - "refs": ["f7e8de2"] + "refs": ["234adf8"] }, "ww_animTiming/descartes-polar_orient/08_d-p_o_l-c-l": { - "refs": ["ea1b57c"] + "refs": ["19fe21a"] }, "ww_animTiming/descartes-polar_orient/09_d-p_o_r-a-r": { - "refs": ["7fbbcf4"] + "refs": ["490574c"] }, "ww_animTiming/descartes-polar_orient/10_d-p_o_c-a-c": { - "refs": ["3f79e19"] + "refs": ["f7abd23"] }, "ww_animTiming/descartes-polar_orient/11_d-p_o_a-a-a": { - "refs": ["628447e"] + "refs": ["5a28ea8"] }, "ww_animTiming/descartes-polar_orient/12_d-p_o_l-a-l": { - "refs": ["716f774"] + "refs": ["3692ff5"] }, "ww_animTiming/descartes-polar_orient/13_d-p_o_r-l-r": { - "refs": ["be13921"] + "refs": ["e81aa3f"] }, "ww_animTiming/descartes-polar_orient/14_d-p_o_c-l-c": { - "refs": ["3dfb204"] + "refs": ["8be0c6b"] }, "ww_animTiming/descartes-polar_orient/15_d-p_o_a-l-a": { - "refs": ["bbfa098"] + "refs": ["f5e6ec2"] }, "ww_animTiming/descartes-polar_orient/16_d-p_o_l-l-l": { - "refs": ["37d64e9"] + "refs": ["4ddf6f4"] }, "ww_animTiming/descartes/02_d-d_c-r-c": { "refs": ["25c0583"] @@ -1364,28 +1364,28 @@ "refs": ["0d330f3"] }, "ww_animTiming/without-polar/01_w-p_r-r-r": { - "refs": ["2ccc0bc"] + "refs": ["4debb3f"] }, "ww_animTiming/without-polar/02_w-p_c-r-c": { - "refs": ["32c401d"] + "refs": ["778cad5"] }, "ww_animTiming/without-polar/05_w-p_r-c-r": { - "refs": ["d85c0e0"] + "refs": ["55d1db9"] }, "ww_animTiming/without-polar/06_w-p_c-c-c": { "refs": ["2a7649b"] }, "ww_animTiming/without-polar/09_w-p_r-a-r": { - "refs": ["29254c0"] + "refs": ["d6bbe4f"] }, "ww_animTiming/without-polar/10_w-p_c-a-c": { - "refs": ["60d944b"] + "refs": ["fbf20f4"] }, "ww_animTiming/without-polar/13_w-p_r-l-r": { - "refs": ["e3f9562"] + "refs": ["b22ca3f"] }, "ww_animTiming/without-polar/14_w-p_c-l-c": { - "refs": ["880bba6"] + "refs": ["5b126f4"] }, "ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r": { "refs": ["81fc9cb"] @@ -1394,10 +1394,10 @@ "refs": ["5596473"] }, "ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r": { - "refs": ["a7c038f"] + "refs": ["ce92309"] }, "ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c": { - "refs": ["7d43db2"] + "refs": ["c4ccd0d"] }, "ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r": { "refs": ["d4abbe4"] @@ -1415,97 +1415,97 @@ "refs": ["edce2d9"] }, "ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c": { - "refs": ["13dcab9"] + "refs": ["e4cb32d"] }, "ww_animTiming_TESTS/descartes-polar/03_d-p_a-r-a": { - "refs": ["0cc1af0"] + "refs": ["bb35082"] }, "ww_animTiming_TESTS/descartes-polar/04_d-p_l-r-l": { - "refs": ["5f15907"] + "refs": ["b4b56cf"] }, "ww_animTiming_TESTS/descartes-polar/05_d-p_r-c-r": { - "refs": ["1eb859b"] + "refs": ["bb0d6df"] }, "ww_animTiming_TESTS/descartes-polar/06_d-p_c-c-c": { - "refs": ["eeb7269"] + "refs": ["c3cb642"] }, "ww_animTiming_TESTS/descartes-polar/07_d-p_a-c-a": { - "refs": ["a020b9c"] + "refs": ["461fdec"] }, "ww_animTiming_TESTS/descartes-polar/08_d-p_l-c-l": { - "refs": ["75b68c6"] + "refs": ["fdfdfaa"] }, "ww_animTiming_TESTS/descartes-polar/09_d-p_r-a-r": { - "refs": ["69f0bb7"] + "refs": ["21d4f78"] }, "ww_animTiming_TESTS/descartes-polar/10_d-p_c-a-c": { - "refs": ["57ad133"] + "refs": ["7f4a511"] }, "ww_animTiming_TESTS/descartes-polar/11_d-p_a-a-a": { - "refs": ["ad8aec0"] + "refs": ["f10b2c1"] }, "ww_animTiming_TESTS/descartes-polar/12_d-p_l-a-l": { - "refs": ["552d1a4"] + "refs": ["4d72bc6"] }, "ww_animTiming_TESTS/descartes-polar/13_d-p_r-l-r": { - "refs": ["be9a388"] + "refs": ["38f7786"] }, "ww_animTiming_TESTS/descartes-polar/14_d-p_c-l-c": { - "refs": ["4aa9c96"] + "refs": ["fbcb746"] }, "ww_animTiming_TESTS/descartes-polar/15_d-p_a-l-a": { - "refs": ["01fd25c"] + "refs": ["71bfcbb"] }, "ww_animTiming_TESTS/descartes-polar/16_d-p_l-l-l": { - "refs": ["dafd6a8"] + "refs": ["91d69c9"] }, "ww_animTiming_TESTS/descartes-polar_orient/01_d-p_o_r-r-r": { - "refs": ["287477a"] + "refs": ["87c33d6"] }, "ww_animTiming_TESTS/descartes-polar_orient/02_d-p_o_c-r-c": { - "refs": ["df8b0cd"] + "refs": ["c7981e6"] }, "ww_animTiming_TESTS/descartes-polar_orient/03_d-p_o_a-r-a": { - "refs": ["c426179"] + "refs": ["76d8014"] }, "ww_animTiming_TESTS/descartes-polar_orient/04_d-p_o_l-r-l": { - "refs": ["f597799"] + "refs": ["d4ffa05"] }, "ww_animTiming_TESTS/descartes-polar_orient/05_d-p_o_r-c-r": { - "refs": ["a7deb71"] + "refs": ["43f00a0"] }, "ww_animTiming_TESTS/descartes-polar_orient/06_d-p_o_c-c-c": { - "refs": ["cf4cf63"] + "refs": ["ce69c8a"] }, "ww_animTiming_TESTS/descartes-polar_orient/07_d-p_o_a-c-a": { - "refs": ["fe6878f"] + "refs": ["2f088e8"] }, "ww_animTiming_TESTS/descartes-polar_orient/08_d-p_o_l-c-l": { - "refs": ["e822c13"] + "refs": ["167c694"] }, "ww_animTiming_TESTS/descartes-polar_orient/09_d-p_o_r-a-r": { - "refs": ["1b32bed"] + "refs": ["8c26a23"] }, "ww_animTiming_TESTS/descartes-polar_orient/10_d-p_o_c-a-c": { - "refs": ["a21bad2"] + "refs": ["3f1ed7f"] }, "ww_animTiming_TESTS/descartes-polar_orient/11_d-p_o_a-a-a": { - "refs": ["fada263"] + "refs": ["3959367"] }, "ww_animTiming_TESTS/descartes-polar_orient/12_d-p_o_l-a-l": { - "refs": ["6bdc57c"] + "refs": ["f1fb6a9"] }, "ww_animTiming_TESTS/descartes-polar_orient/13_d-p_o_r-l-r": { - "refs": ["49b4df1"] + "refs": ["b107554"] }, "ww_animTiming_TESTS/descartes-polar_orient/14_d-p_o_c-l-c": { - "refs": ["3516644"] + "refs": ["60499cc"] }, "ww_animTiming_TESTS/descartes-polar_orient/15_d-p_o_a-l-a": { - "refs": ["73c758f"] + "refs": ["ff1f803"] }, "ww_animTiming_TESTS/descartes-polar_orient/16_d-p_o_l-l-l": { - "refs": ["d9398b0"] + "refs": ["66c898c"] }, "ww_animTiming_TESTS/descartes/02_d-d_c-r-c": { "refs": ["aa9e9d6"] @@ -1697,28 +1697,28 @@ "refs": ["5c95387"] }, "ww_animTiming_TESTS/without-polar/01_w-p_r-r-r": { - "refs": ["80c9be6"] + "refs": ["be70807"] }, "ww_animTiming_TESTS/without-polar/02_w-p_c-r-c": { - "refs": ["1360790"] + "refs": ["9341567"] }, "ww_animTiming_TESTS/without-polar/05_w-p_r-c-r": { - "refs": ["4b47dca"] + "refs": ["3738cab"] }, "ww_animTiming_TESTS/without-polar/06_w-p_c-c-c": { "refs": ["dcb3f76"] }, "ww_animTiming_TESTS/without-polar/09_w-p_r-a-r": { - "refs": ["5e0b294"] + "refs": ["7e9fa0f"] }, "ww_animTiming_TESTS/without-polar/10_w-p_c-a-c": { - "refs": ["0cb08bc"] + "refs": ["b97edbc"] }, "ww_animTiming_TESTS/without-polar/13_w-p_r-l-r": { - "refs": ["58c41e1"] + "refs": ["13d5878"] }, "ww_animTiming_TESTS/without-polar/14_w-p_c-l-c": { - "refs": ["1ad046f"] + "refs": ["2a15690"] }, "ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r": { "refs": ["fd7f93b"] @@ -1727,10 +1727,10 @@ "refs": ["7a1a8e0"] }, "ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r": { - "refs": ["0b13dee"] + "refs": ["4ea7da2"] }, "ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c": { - "refs": ["49ebd95"] + "refs": ["f610cd3"] }, "ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r": { "refs": ["26fc0b8"] @@ -1748,7 +1748,7 @@ "refs": ["df8b392"] }, "ww_next_steps/next_steps/02_C_R": { - "refs": ["267ddc6"] + "refs": ["d3200b8"] }, "ww_next_steps/next_steps/02_C_R_water_comparison_sum": { "refs": ["8d0e8af"] @@ -1763,7 +1763,7 @@ "refs": ["705aa0e"] }, "ww_next_steps/next_steps/21_C_C_dotplot": { - "refs": ["c991435"] + "refs": ["2904e90"] }, "ww_next_steps/next_steps/22_C_C": { "refs": ["ec4da6c"] @@ -1772,13 +1772,13 @@ "refs": ["f396191"] }, "ww_next_steps/next_steps/35_C_A_violin": { - "refs": ["af24f40"] + "refs": ["25d77e1"] }, "ww_next_steps/next_steps/38_C_L_line": { "refs": ["a08c7c4"] }, "ww_next_steps/next_steps_Tests/02_C_R": { - "refs": ["7c30c14"] + "refs": ["f13c899"] }, "ww_next_steps/next_steps_Tests/02_C_R_water_comparison_sum": { "refs": ["81c6c1e"] @@ -1793,7 +1793,7 @@ "refs": ["80c5969"] }, "ww_next_steps/next_steps_Tests/21_C_C_dotplot": { - "refs": ["3551f7a"] + "refs": ["54295f5"] }, "ww_next_steps/next_steps_Tests/22_C_C": { "refs": ["81fcf00"] @@ -1871,7 +1871,7 @@ "refs": ["d5720b5"] }, "ww_next_steps/next_steps_byOperations/distribute/distribution_06": { - "refs": ["ad24e8f"] + "refs": ["4ef6a21"] }, "ww_next_steps/next_steps_byOperations/distribute/distribution_07": { "refs": ["f677f00"] @@ -2045,7 +2045,7 @@ "refs": ["a4fcf7c"] }, "ww_next_steps/next_steps_byOperations/wOld_animated/other_cartesian_radial_02": { - "refs": ["251619a"] + "refs": ["7cf90ec"] }, "ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial": { "refs": ["6f96e8b"] @@ -2441,7 +2441,7 @@ "refs": ["0e684b3"] }, "ww_noFade/wNoFade_Tests/Marker_label_problem/rotated_bar_to_donut": { - "refs": ["eb8dbd8"] + "refs": ["1aca6bf"] }, "ww_noFade/wNoFade_Tests/Marker_transition_problem/Bubble_Stacked_Bubble_to_Area": { "refs": ["1ffa601"] @@ -3011,7 +3011,7 @@ "refs": ["508383a"] }, "ww_samples_for_presets/cartesian_coo_sys/12_C_R_matrix_chart": { - "refs": ["066f42f"] + "refs": ["02c960f"] }, "ww_samples_for_presets/cartesian_coo_sys/13_C_R_bar_chart_negative": { "refs": ["2fd66d1"] @@ -3038,7 +3038,7 @@ "refs": ["25c68b8"] }, "ww_samples_for_presets/cartesian_coo_sys/21_C_C_dot_plot_chart": { - "refs": ["714bb74"] + "refs": ["1466b36"] }, "ww_samples_for_presets/cartesian_coo_sys/22_C_C_scatter_plot": { "refs": ["7a79697"] @@ -3203,7 +3203,7 @@ "refs": ["810d76a"] }, "web_content/cookbook/chart_types/historgram": { - "refs": ["ead40c0"] + "refs": ["18079a9"] }, "web_content/cookbook/chart_types/network_graph": { "refs": ["ae6af16"] @@ -3245,7 +3245,7 @@ "refs": ["111a932"] }, "web_content/cookbook/rendering/custom_linetype": { - "refs": ["3fa7804"] + "refs": ["8fe17e9"] }, "web_content/cookbook/rendering/gradient_on_marker": { "refs": ["878d4a5"] @@ -3284,13 +3284,13 @@ "refs": ["34f9d9c"] }, "web_content/cookbook/data_source/csv_load": { - "refs": ["6512bf2"] + "refs": ["0be6e8c"] }, "web_content/cookbook/rendering/motion_blur": { "refs": ["be67912"] }, "web_content/cookbook/style/colorfilter": { - "refs": ["9803812"] + "refs": ["05406ff"] } } } diff --git a/test/e2e/tests/features.json b/test/e2e/tests/features.json index 9edd058b7..874816fcd 100644 --- a/test/e2e/tests/features.json +++ b/test/e2e/tests/features.json @@ -8,13 +8,13 @@ "refs": ["0e6a340"] }, "axis_title_positioning": { - "refs": ["a7a8e61"] + "refs": ["9fc11e0"] }, "data_input/object_records": { "refs": ["9d5443f"] }, "events/drawing_events": { - "refs": ["8ae4a6c"] + "refs": ["c34d5dd"] }, "subtitle_caption": { "refs": ["5c04f20"] diff --git a/test/e2e/tests/style_tests.json b/test/e2e/tests/style_tests.json index 5b258b9ce..dcb04f7ad 100644 --- a/test/e2e/tests/style_tests.json +++ b/test/e2e/tests/style_tests.json @@ -389,97 +389,97 @@ "refs": ["bdf046f"] }, "plot/xAxis/label/angle/deg/animated_90-135": { - "refs": ["42cc9f7"] + "refs": ["bca3983"] }, "plot/xAxis/label/angle/deg/animated_90-225": { - "refs": ["19bc13a"] + "refs": ["d958392"] }, "plot/xAxis/label/angle/deg/animated_90-45": { - "refs": ["19bc13a"] + "refs": ["d958392"] }, "plot/xAxis/label/angle/deg/static_495": { - "refs": ["59a4914"] + "refs": ["bcd1e8a"] }, "plot/xAxis/label/angle/deg/static_90": { - "refs": ["6159cf9"] + "refs": ["110aee8"] }, "plot/xAxis/label/angle/grad/animated_100-150": { - "refs": ["42cc9f7"] + "refs": ["bca3983"] }, "plot/xAxis/label/angle/grad/animated_100-250": { - "refs": ["19bc13a"] + "refs": ["d958392"] }, "plot/xAxis/label/angle/grad/animated_100-50": { - "refs": ["19bc13a"] + "refs": ["d958392"] }, "plot/xAxis/label/angle/grad/static_100": { - "refs": ["6159cf9"] + "refs": ["110aee8"] }, "plot/xAxis/label/angle/grad/static_550": { - "refs": ["59a4914"] + "refs": ["bcd1e8a"] }, "plot/xAxis/label/angle/number/animated_1.5708-0.7854": { - "refs": ["adbdac4"] + "refs": ["01b7da0"] }, "plot/xAxis/label/angle/number/animated_1.5708-2.3562": { - "refs": ["42cc9f7"] + "refs": ["bca3983"] }, "plot/xAxis/label/angle/number/animated_1.5708-3.927": { - "refs": ["adbdac4"] + "refs": ["01b7da0"] }, "plot/xAxis/label/angle/number/static_1.5708": { - "refs": ["6159cf9"] + "refs": ["110aee8"] }, "plot/xAxis/label/angle/number/static_8.6394": { - "refs": ["59a4914"] + "refs": ["bcd1e8a"] }, "plot/xAxis/label/angle/rad/animated_1.5708-0.7854": { - "refs": ["adbdac4"] + "refs": ["01b7da0"] }, "plot/xAxis/label/angle/rad/animated_1.5708-2.3562": { - "refs": ["42cc9f7"] + "refs": ["bca3983"] }, "plot/xAxis/label/angle/rad/animated_1.5708-3.927": { - "refs": ["adbdac4"] + "refs": ["01b7da0"] }, "plot/xAxis/label/angle/rad/static_1.5708": { - "refs": ["6159cf9"] + "refs": ["110aee8"] }, "plot/xAxis/label/angle/rad/static_8.6394": { - "refs": ["59a4914"] + "refs": ["bcd1e8a"] }, "plot/xAxis/label/angle/turn/animated_0.25-0.125": { - "refs": ["19bc13a"] + "refs": ["d958392"] }, "plot/xAxis/label/angle/turn/animated_0.25-0.375": { - "refs": ["42cc9f7"] + "refs": ["bca3983"] }, "plot/xAxis/label/angle/turn/animated_0.25-0.625": { - "refs": ["19bc13a"] + "refs": ["d958392"] }, "plot/xAxis/label/angle/turn/static_0.25": { - "refs": ["6159cf9"] + "refs": ["110aee8"] }, "plot/xAxis/label/angle/turn/static_1.375": { - "refs": ["59a4914"] + "refs": ["bcd1e8a"] }, "plot/xAxis/label/backgroundColor/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { - "refs": ["1eadfcf"] + "refs": ["110172a"] }, "plot/xAxis/label/backgroundColor/hexa/animated_yellowCustom_0.75-blueCustom_0.25": { - "refs": ["a893037"] + "refs": ["6f47a1e"] }, "plot/xAxis/label/backgroundColor/hexa/static_blueCustom_0.25": { - "refs": ["3e1d0de"] + "refs": ["0946d59"] }, "plot/xAxis/label/backgroundColor/hexa/static_blueCustom_0.75": { - "refs": ["b0a7254"] + "refs": ["764bd8e"] }, "plot/xAxis/label/backgroundColor/hexa/static_yellowCustom_0.25": { - "refs": ["7397795"] + "refs": ["a4a941d"] }, "plot/xAxis/label/backgroundColor/hexa/static_yellowCustom_0.75": { - "refs": ["13041d4"] + "refs": ["9217094"] }, "plot/xAxis/label/color/hexa/animated_yellowCustom_0.25-blueCustom_0.75": { "refs": ["e3c5b88"] @@ -617,28 +617,28 @@ "refs": ["4251172"] }, "plot/xAxis/label/orientation/animated_horizontal-vertical": { - "refs": ["3c9222a"] + "refs": ["967329d"] }, "plot/xAxis/label/orientation/animated_normal-tangential": { - "refs": ["606a66d"] + "refs": ["28dd4bd"] }, "plot/xAxis/label/orientation/animated_tangential-normal": { - "refs": ["bb0c18b"] + "refs": ["59d8b1d"] }, "plot/xAxis/label/orientation/animated_vertical-horizontal": { - "refs": ["a54e2c6"] + "refs": ["c57db2f"] }, "plot/xAxis/label/orientation/static_horizontal": { "refs": ["4251172"] }, "plot/xAxis/label/orientation/static_normal": { - "refs": ["6159cf9"] + "refs": ["110aee8"] }, "plot/xAxis/label/orientation/static_tangential": { "refs": ["4251172"] }, "plot/xAxis/label/orientation/static_vertical": { - "refs": ["6159cf9"] + "refs": ["110aee8"] }, "plot/xAxis/label/paddingBottom/animated_15-35": { "refs": ["e94bf4f"] @@ -653,28 +653,28 @@ "refs": ["bdb0433"] }, "plot/xAxis/label/paddingLeft/animated_150-350": { - "refs": ["139950f"] + "refs": ["9d256e1"] }, "plot/xAxis/label/paddingLeft/animated_350-150": { - "refs": ["98eeebc"] + "refs": ["f0cc7d6"] }, "plot/xAxis/label/paddingLeft/static_150": { - "refs": ["cbf727c"] + "refs": ["01cc792"] }, "plot/xAxis/label/paddingLeft/static_350": { - "refs": ["85a69e4"] + "refs": ["d4a978f"] }, "plot/xAxis/label/paddingRight/animated_150-350": { - "refs": ["0f6dcd4"] + "refs": ["575f812"] }, "plot/xAxis/label/paddingRight/animated_350-150": { - "refs": ["205f9f0"] + "refs": ["535ac6b"] }, "plot/xAxis/label/paddingRight/static_150": { - "refs": ["c188f02"] + "refs": ["a8f1f6e"] }, "plot/xAxis/label/paddingRight/static_350": { - "refs": ["060287a"] + "refs": ["e08e42c"] }, "plot/xAxis/label/paddingTop/animated_15-35": { "refs": ["d3fb0c8"] From 8d57a8616cadfa3f090aa329b689962db523643f Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 12 Jan 2024 11:36:44 +0100 Subject: [PATCH 171/180] fix merge, testcases, add new testcase --- src/chart/main/stylesheet.cpp | 4 +- test/e2e/test_cases/test_cases.json | 4 +- test/e2e/tests/config_tests.json | 3 ++ .../config_tests/x_axis_label_autorotate.mjs | 44 +++++++++++++++++++ 4 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 test/e2e/tests/config_tests/x_axis_label_autorotate.mjs diff --git a/src/chart/main/stylesheet.cpp b/src/chart/main/stylesheet.cpp index d9b0cdfd7..10022cd2f 100644 --- a/src/chart/main/stylesheet.cpp +++ b/src/chart/main/stylesheet.cpp @@ -205,8 +205,8 @@ void Sheet::setAfterStyles(Gen::Plot &plot, const Geom::Size &size) if (pair.second.weight == 0) continue; - auto textBoundary = - Gfx::ICanvas::textBoundary(font, pair.second.label); + auto textBoundary = Gfx::ICanvas::textBoundary(font, + pair.second.label.get()); auto textXHalfMargin = xLabel.toMargin(textBoundary, font.size).getSpace().x / 2.0; diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index 6627d5d4e..3a60ebab6 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -185,13 +185,13 @@ "refs": ["42fb179"] }, "data_fault_and_formats/column_rectangle_less_disc": { - "refs": ["dc55892"] + "refs": ["f93ac85"] }, "data_fault_and_formats/column_rectangle_more_conti": { "refs": ["c2c2362"] }, "data_fault_and_formats/column_rectangle_more_disc": { - "refs": ["dbc5ef0"] + "refs": ["ff2afa6"] }, "data_fault_and_formats/rectangle_data_cube": { "refs": ["4b66407"] diff --git a/test/e2e/tests/config_tests.json b/test/e2e/tests/config_tests.json index 62b1b65bb..658815ced 100644 --- a/test/e2e/tests/config_tests.json +++ b/test/e2e/tests/config_tests.json @@ -45,6 +45,9 @@ }, "dimension_axis_density": { "refs": ["9b330fb"] + }, + "x_axis_label_autorotate": { + "refs": ["1dc0fcf"] } } } diff --git a/test/e2e/tests/config_tests/x_axis_label_autorotate.mjs b/test/e2e/tests/config_tests/x_axis_label_autorotate.mjs new file mode 100644 index 000000000..aa4346ba9 --- /dev/null +++ b/test/e2e/tests/config_tests/x_axis_label_autorotate.mjs @@ -0,0 +1,44 @@ +const series = [ + { + name: 'Y', + type: 'measure', + values: [1, 2] + }, + { + name: 'X', + type: 'dimension', + values: ['|', '|'] + } +] + +const testSteps = [ + (chart) => + chart.animate({ + data: { + series + } + }) +] + +for (let i = 95; i <= 105; i++) { + series.push({ + name: 'X' + i, + type: 'dimension', + values: [ + '|'.repeat(i), + '|'.repeat(i+1) + ] + }) + testSteps.push((chart) => + chart.animate( + { + x: ['X' + i, 'X'], + y: 'Y', + title: 'Count of |: ' + i, + + }, + { regroupStrategy: 'drilldown', duration: 0.5 } + )) +} + +export default testSteps From 5bfbbbeb66a56c9a95684f89367b16997958c553 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 12 Jan 2024 11:38:45 +0100 Subject: [PATCH 172/180] Add changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1a5323ae..9f3a845cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - Remove unused marker selection and selected marker coloring. - Remove cursor modification over logo. - Make `channel.step` option to work on dimensions. +- When X axis dimension labels are close to each other, they are rotated to avoid overlapping. ## [0.9.3] - 2023-12-20 From af0f1a980d4cb432ce29e2117b456fbc459f1e82 Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Fri, 12 Jan 2024 12:08:31 +0100 Subject: [PATCH 173/180] self-review + js format + lint --- src/chart/main/stylesheet.h | 6 +- .../cartesian_coo_sys/32_C_A_stream_graph.mjs | 2 +- .../cartesian_coo_sys/34_C_A_violin_graph.mjs | 2 +- .../36_C_A_range_area_chart.mjs | 2 +- .../without_coo_sys/602_W_R_heatmap3.mjs | 2 +- .../config_tests/x_axis_label_autorotate.mjs | 65 +++++++++---------- 6 files changed, 36 insertions(+), 43 deletions(-) diff --git a/src/chart/main/stylesheet.h b/src/chart/main/stylesheet.h index d6ea8f7e5..e09564daa 100644 --- a/src/chart/main/stylesheet.h +++ b/src/chart/main/stylesheet.h @@ -6,14 +6,10 @@ #include "style.h" -namespace Vizzu -{ -class Layout; -namespace Gen +namespace Vizzu::Gen { class Plot; } -} namespace Vizzu::Styles { diff --git a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs index 2f13e9410..fa729acfe 100755 --- a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs +++ b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/32_C_A_stream_graph.mjs @@ -22,7 +22,7 @@ const testSteps = [ plot: { xAxis: { label: { - angle: 0.0 + angle: 0 } }, yAxis: { diff --git a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs index 596cea4ea..fc2b68571 100755 --- a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs +++ b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/34_C_A_violin_graph.mjs @@ -23,7 +23,7 @@ const testSteps = [ plot: { xAxis: { label: { - angle: 0.0 + angle: 0 } }, yAxis: { diff --git a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs index 1b56d0c1a..561039a61 100755 --- a/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs +++ b/test/e2e/test_cases/ww_samples_for_presets/cartesian_coo_sys/36_C_A_range_area_chart.mjs @@ -23,7 +23,7 @@ const testSteps = [ plot: { xAxis: { label: { - angle: 0.0 + angle: 0 } }, yAxis: { diff --git a/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs b/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs index c14c616d1..1e82b2eae 100755 --- a/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs +++ b/test/e2e/test_cases/ww_samples_for_presets/without_coo_sys/602_W_R_heatmap3.mjs @@ -20,7 +20,7 @@ const testSteps = [ plot: { xAxis: { label: { - angle: 0.0 + angle: 0 } } } diff --git a/test/e2e/tests/config_tests/x_axis_label_autorotate.mjs b/test/e2e/tests/config_tests/x_axis_label_autorotate.mjs index aa4346ba9..72965f483 100644 --- a/test/e2e/tests/config_tests/x_axis_label_autorotate.mjs +++ b/test/e2e/tests/config_tests/x_axis_label_autorotate.mjs @@ -1,44 +1,41 @@ const series = [ - { - name: 'Y', - type: 'measure', - values: [1, 2] - }, - { - name: 'X', - type: 'dimension', - values: ['|', '|'] - } + { + name: 'Y', + type: 'measure', + values: [1, 2] + }, + { + name: 'X', + type: 'dimension', + values: ['|', '|'] + } ] const testSteps = [ - (chart) => - chart.animate({ - data: { - series - } - }) + (chart) => + chart.animate({ + data: { + series + } + }) ] for (let i = 95; i <= 105; i++) { - series.push({ - name: 'X' + i, - type: 'dimension', - values: [ - '|'.repeat(i), - '|'.repeat(i+1) - ] - }) - testSteps.push((chart) => - chart.animate( - { - x: ['X' + i, 'X'], - y: 'Y', - title: 'Count of |: ' + i, - - }, - { regroupStrategy: 'drilldown', duration: 0.5 } - )) + series.push({ + name: 'X' + i, + type: 'dimension', + values: ['|'.repeat(i), '|'.repeat(i + 1)] + }) + testSteps.push((chart) => + chart.animate( + { + x: ['X' + i, 'X'], + y: 'Y', + title: 'Count of |: ' + i + }, + { regroupStrategy: 'drilldown', duration: 0.5 } + ) + ) } export default testSteps From e43e26af73d1eab1f3cc8b7b76c4725a60d6a72c Mon Sep 17 00:00:00 2001 From: Bela Schaum Date: Mon, 15 Jan 2024 11:34:36 +0100 Subject: [PATCH 174/180] Move autorotate to style_test + fix qt --- test/e2e/tests/config_tests.json | 3 --- test/e2e/tests/style_tests.json | 3 +++ .../plot/xAxis/label/autorotate.mjs} | 0 test/qtest/window.cpp | 13 +++++-------- 4 files changed, 8 insertions(+), 11 deletions(-) rename test/e2e/tests/{config_tests/x_axis_label_autorotate.mjs => style_tests/plot/xAxis/label/autorotate.mjs} (100%) diff --git a/test/e2e/tests/config_tests.json b/test/e2e/tests/config_tests.json index 658815ced..62b1b65bb 100644 --- a/test/e2e/tests/config_tests.json +++ b/test/e2e/tests/config_tests.json @@ -45,9 +45,6 @@ }, "dimension_axis_density": { "refs": ["9b330fb"] - }, - "x_axis_label_autorotate": { - "refs": ["1dc0fcf"] } } } diff --git a/test/e2e/tests/style_tests.json b/test/e2e/tests/style_tests.json index dcb04f7ad..0ed072249 100644 --- a/test/e2e/tests/style_tests.json +++ b/test/e2e/tests/style_tests.json @@ -1026,6 +1026,9 @@ }, "plot/yAxis/ticks/position/static_outside": { "refs": ["aabb1c2"] + }, + "plot/xAxis/label/autorotate": { + "refs": ["1dc0fcf"] } } } diff --git a/test/e2e/tests/config_tests/x_axis_label_autorotate.mjs b/test/e2e/tests/style_tests/plot/xAxis/label/autorotate.mjs similarity index 100% rename from test/e2e/tests/config_tests/x_axis_label_autorotate.mjs rename to test/e2e/tests/style_tests/plot/xAxis/label/autorotate.mjs diff --git a/test/qtest/window.cpp b/test/qtest/window.cpp index f3633b792..403dff958 100644 --- a/test/qtest/window.cpp +++ b/test/qtest/window.cpp @@ -64,27 +64,24 @@ bool Window::eventFilter(QObject *, QEvent *event) if (type == QEvent::MouseButtonPress) { auto *e = static_cast(event); const Geom::Point pos(e->x(), e->y()); - chart.getChart().onPointerDown({}, - GUI::PointerEvent(0, pos)); + chart.getChart().onPointerDown({0, pos}); return true; } if (type == QEvent::MouseButtonRelease) { auto *e = static_cast(event); const Geom::Point pos(e->x(), e->y()); - chart.getChart().onPointerUp({}, - GUI::PointerEvent(0, pos)); + chart.getChart().onPointerUp({0, pos}); return true; } if (type == QEvent::HoverMove) { auto *e = static_cast(event); const Geom::Point pos(e->pos().x(), e->pos().y()); - chart.getChart().onPointerMove({}, - GUI::PointerEvent(0, pos)); + chart.getChart().onPointerMove({0, pos}); return true; } if (type == QEvent::HoverLeave) { - chart.getChart().onPointerLeave({}, - GUI::PointerEvent(0, Geom::Point::Invalid())); + chart.getChart().onPointerLeave( + {0, Geom::Point::Invalid()}); return true; } } From 151a3ce5dfe821a63318f5b3e18f175266009dcf Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 16 Jan 2024 13:19:04 +0100 Subject: [PATCH 175/180] Emscripten version update due to removeFunction bug in earlier versions. --- tools/ci/docker/vizzu-dev-wasm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/ci/docker/vizzu-dev-wasm b/tools/ci/docker/vizzu-dev-wasm index 6ca7bea89..39be824a1 100644 --- a/tools/ci/docker/vizzu-dev-wasm +++ b/tools/ci/docker/vizzu-dev-wasm @@ -17,8 +17,8 @@ RUN apt-get install -y cmake build-essential \ && cd /root \ && git clone https://github.com/emscripten-core/emsdk.git \ && cd /root/emsdk \ - && ./emsdk install 3.1.41 \ - && ./emsdk activate 3.1.41 \ + && ./emsdk install 3.1.51 \ + && ./emsdk activate 3.1.51 \ && echo "source \"/root/emsdk/emsdk_env.sh\"" >> /root/.bashrc # Note: this installs the necessary libs to make the bundled version of Chromium that Puppeteer From 9dfbe141e60717a01c3874be80b12dc4e800a8c6 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 16 Jan 2024 19:01:25 +0100 Subject: [PATCH 176/180] Test added to check if Vizzu.detach() works correctly. --- test/e2e/tests/features.json | 3 ++ test/e2e/tests/features/detach.mjs | 64 ++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 test/e2e/tests/features/detach.mjs diff --git a/test/e2e/tests/features.json b/test/e2e/tests/features.json index 874816fcd..2531deb89 100644 --- a/test/e2e/tests/features.json +++ b/test/e2e/tests/features.json @@ -27,6 +27,9 @@ }, "presets": { "refs": ["55a7fb8"] + }, + "detach": { + "refs": ["e3b0c44"] } } } diff --git a/test/e2e/tests/features/detach.mjs b/test/e2e/tests/features/detach.mjs new file mode 100644 index 000000000..dcad96589 --- /dev/null +++ b/test/e2e/tests/features/detach.mjs @@ -0,0 +1,64 @@ +const data = { + series: [ + { name: 'Dim', type: 'dimension', values: ['a', 'b'] }, + { name: 'Meas', type: 'measure', values: [1, 2] }, + ] +} + +const testSteps = [ + async (chart) => { + const container = chart.feature.htmlCanvas.element + const container2 = document.createElement('canvas') + + container2.style = ` + width: ${container.width}px; + height: ${container.height}px; + position: absolute; + top: ${container.offsetTop}px; + left: ${container.offsetLeft}px; + ` + container.parentElement.appendChild(container2) + + let chart2 = await new chart.constructor(container2).initializing + + await chart2.animate({ + data, + config: { + x: 'Dim', + y: 'Meas', + } + }) + + let registry + + let res = new Promise((resolve, reject) => { + registry = new FinalizationRegistry((heldValue) => { + if (heldValue === "Chart 2") { + console.log("Chart 2 is finalized") + resolve(chart) + } + }); + registry.register(chart2, "Chart 2"); + chart2.detach(); + chart2 = undefined; + }); + + if (typeof window.gc === 'function') { + // garbage collector should be exposed for this via --expose-gc flag + // which seems to be not working through webdriver + window.gc() + } else { + let counter = 0; + (function allocateMemory() { + Array.from({ length: 1000000 }, () => () => {}); + if (counter > 5000) return; + counter++; + setTimeout(allocateMemory); + })(); + } + + return res + } +] + +export default testSteps From c367356c3cc9fdacb69213d20b479f2a28f5ebda Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 16 Jan 2024 19:20:12 +0100 Subject: [PATCH 177/180] Prettier run --- test/e2e/tests/features/detach.mjs | 34 +++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/test/e2e/tests/features/detach.mjs b/test/e2e/tests/features/detach.mjs index dcad96589..c8fa27fcb 100644 --- a/test/e2e/tests/features/detach.mjs +++ b/test/e2e/tests/features/detach.mjs @@ -1,7 +1,7 @@ const data = { series: [ { name: 'Dim', type: 'dimension', values: ['a', 'b'] }, - { name: 'Meas', type: 'measure', values: [1, 2] }, + { name: 'Meas', type: 'measure', values: [1, 2] } ] } @@ -25,36 +25,36 @@ const testSteps = [ data, config: { x: 'Dim', - y: 'Meas', + y: 'Meas' } }) let registry - + let res = new Promise((resolve, reject) => { registry = new FinalizationRegistry((heldValue) => { - if (heldValue === "Chart 2") { - console.log("Chart 2 is finalized") + if (heldValue === 'Chart 2') { + console.log('Chart 2 is finalized') resolve(chart) } - }); - registry.register(chart2, "Chart 2"); - chart2.detach(); - chart2 = undefined; - }); + }) + registry.register(chart2, 'Chart 2') + chart2.detach() + chart2 = undefined + }) if (typeof window.gc === 'function') { // garbage collector should be exposed for this via --expose-gc flag // which seems to be not working through webdriver window.gc() } else { - let counter = 0; - (function allocateMemory() { - Array.from({ length: 1000000 }, () => () => {}); - if (counter > 5000) return; - counter++; - setTimeout(allocateMemory); - })(); + let counter = 0 + ;(function allocateMemory() { + Array.from({ length: 1000000 }, () => () => {}) + if (counter > 5000) return + counter++ + setTimeout(allocateMemory) + })() } return res From b0864ed21127a164cd7ab2f07de8d940615c7724 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 16 Jan 2024 19:27:34 +0100 Subject: [PATCH 178/180] Lint fix --- test/e2e/tests/features/detach.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/tests/features/detach.mjs b/test/e2e/tests/features/detach.mjs index c8fa27fcb..d187c7ef6 100644 --- a/test/e2e/tests/features/detach.mjs +++ b/test/e2e/tests/features/detach.mjs @@ -31,7 +31,7 @@ const testSteps = [ let registry - let res = new Promise((resolve, reject) => { + const res = new Promise((resolve, reject) => { registry = new FinalizationRegistry((heldValue) => { if (heldValue === 'Chart 2') { console.log('Chart 2 is finalized') From 0c15b900ef2bd2f0f6dc8af9447a442392d23315 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 16 Jan 2024 21:38:01 +0100 Subject: [PATCH 179/180] Changed tests accepted, same sized markers swiched place in treemap/stacked-bubblechart. --- test/e2e/test_cases/test_cases.json | 274 ++++++++++++++++------------ 1 file changed, 158 insertions(+), 116 deletions(-) diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index 3a60ebab6..53df25c43 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -2,37 +2,37 @@ "suite": "/test/e2e/test_cases", "test": { "basic_animations/anim_order/circle_without_2_carte_horizontal": { - "refs": ["be265b7"] + "refs": ["1319400"] }, "basic_animations/anim_order/circle_without_2_carte_vertical": { - "refs": ["e4972d8"] + "refs": ["21343e9"] }, "basic_animations/anim_order/rectangle_without_2_carte_bar": { - "refs": ["77b7809"] + "refs": ["991140c"] }, "basic_animations/anim_order/rectangle_without_2_carte_column": { - "refs": ["33a9773"] + "refs": ["6afdaee"] }, "basic_animations/anim_order/rectangle_without_2_polar_bar": { - "refs": ["a1535ae"] + "refs": ["20adc0f"] }, "basic_animations/anim_order/rectangle_without_2_polar_column": { - "refs": ["244cc5f"] + "refs": ["a211aab"] }, "basic_animations/coordsystems/area_carte_2_polar": { "refs": ["7b3d87d"] }, "basic_animations/coordsystems/circle_without_2_carte": { - "refs": ["44524c8"] + "refs": ["e06b6e8"] }, "basic_animations/coordsystems/rectangle_carte_2_polar": { "refs": ["6109049"] }, "basic_animations/coordsystems/rectangle_without_2_carte": { - "refs": ["00e5959"] + "refs": ["b817b10"] }, "basic_animations/coordsystems/rectangle_without_2_polar": { - "refs": ["5bfd4e0"] + "refs": ["d792c8f"] }, "basic_animations/labels/axis/circle_negative_2dis_3con": { "refs": ["6d34d02"] @@ -422,16 +422,16 @@ "refs": ["d844063"] }, "static_chart_types/without_coo_sys/bubble_circle_2dis_1con": { - "refs": ["2c9a31d"] + "refs": ["6cc8556"] }, "static_chart_types/without_coo_sys/bubble_circle_2dis_2con": { - "refs": ["cb16853"] + "refs": ["6f8b756"] }, "static_chart_types/without_coo_sys/treemap_rectangle_2dis_1con": { - "refs": ["f7608b8"] + "refs": ["318409f"] }, "static_chart_types/without_coo_sys/treemap_rectangle_2dis_2con": { - "refs": ["1f9bf87"] + "refs": ["0382064"] }, "web_content/analytical_operations/change_dimension/area_polar_stacked": { "refs": ["def2298"] @@ -515,7 +515,7 @@ "refs": ["84be0b1"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble": { - "refs": ["ac20402"] + "refs": ["48ed5af"] }, "web_content/analytical_operations/distribute/existingmeasure_bubble_stacked_1": { "refs": ["70bdcce"] @@ -692,16 +692,16 @@ "refs": ["66eb65d"] }, "web_content/analytical_operations/sum/bubble": { - "refs": ["1597bbf"] + "refs": ["6eaa0eb"] }, "web_content/analytical_operations/sum/bubble_to_column": { - "refs": ["e2bf91b"] + "refs": ["af770be"] }, "web_content/analytical_operations/sum/bubble_to_coxcomb": { - "refs": ["4010e8a"] + "refs": ["954bd84"] }, "web_content/analytical_operations/sum/bubble_to_radial": { - "refs": ["adeac72"] + "refs": ["b8b27fb"] }, "web_content/analytical_operations/sum/bubbleplot_1": { "refs": ["122fa97"] @@ -773,7 +773,7 @@ "refs": ["28bf2a4"] }, "web_content/analytical_operations/sum/treemap": { - "refs": ["7f0cd74"] + "refs": ["8e26c09"] }, "web_content_removed/animated/composition_comparison_pie_coxcomb_column_2dis_2con": { "refs": ["bccd4e0"] @@ -824,7 +824,7 @@ "refs": ["0554a81"] }, "web_content_removed/animated/relationship_comparison_circle_2_bubble_plot": { - "refs": ["e76689d"] + "refs": ["5a77ca2"] }, "web_content_removed/animated/relationship_total_bubble_plot_column": { "refs": ["ae768b7"] @@ -833,16 +833,16 @@ "refs": ["a9baae0"] }, "web_content_removed/animated/stack_group_circle": { - "refs": ["c593f63"] + "refs": ["0ef1d45"] }, "web_content_removed/animated/stack_group_treemap": { - "refs": ["839e607"] + "refs": ["2187083"] }, "web_content_removed/animated/total_element_bubble_2_bar": { - "refs": ["4f0c0dd"] + "refs": ["f572dbf"] }, "web_content_removed/animated/total_element_bubble_column": { - "refs": ["de3e165"] + "refs": ["7937e87"] }, "web_content_removed/animated/treemap_radial": { "refs": ["1913066"] @@ -860,7 +860,7 @@ "refs": ["e104842"] }, "web_content/infinite": { - "refs": ["0336dc0"] + "refs": ["dba7ea0"] }, "web_content/presets/chart/column": { "refs": ["6ba52a1"] @@ -971,22 +971,22 @@ "refs": ["612c32a"] }, "web_content/presets/treemap": { - "refs": ["bec5c68"] + "refs": ["ee86b8d"] }, "web_content/presets/treemap_stacked": { - "refs": ["6ad6c69"] + "refs": ["a165b12"] }, "web_content/presets/heatmap": { "refs": ["3900bac"] }, "web_content/presets/chart/bubble": { - "refs": ["04134d0"] + "refs": ["8b1976f"] }, "web_content/presets/chart/bubble_stacked": { - "refs": ["cd1f691"] + "refs": ["d2329be"] }, "web_content/presets_config/chart/bubble_stacked": { - "refs": ["cd1f691"] + "refs": ["d2329be"] }, "web_content/static/chart/area": { "refs": ["d1a82ab"] @@ -1067,16 +1067,16 @@ "refs": ["e5e646f"] }, "web_content/static/chart/bubble": { - "refs": ["04134d0"] + "refs": ["8b1976f"] }, "web_content/static/chart/bubble_stacked": { - "refs": ["ffab4dd"] + "refs": ["027ab1e"] }, "web_content/static/treemap": { - "refs": ["67aa3ab"] + "refs": ["81b84c1"] }, "web_content/static/treemap_stacked": { - "refs": ["6ad6c69"] + "refs": ["a165b12"] }, "ww_animTiming/descartes-polar/01_d-p_r-r-r": { "refs": ["613bd08"] @@ -1316,103 +1316,103 @@ "refs": ["c2b7355"] }, "ww_animTiming/without-descartes/01_w-d_r-r-r": { - "refs": ["f8e7d66"] + "refs": ["4c13f24"] }, "ww_animTiming/without-descartes/02_w-d_c-r-c": { - "refs": ["80c907f"] + "refs": ["f2e3055"] }, "ww_animTiming/without-descartes/05_w-d_r-c-r": { - "refs": ["ed99860"] + "refs": ["0ffcc3a"] }, "ww_animTiming/without-descartes/06_w-d_c-c-c": { - "refs": ["51d42e8"] + "refs": ["669022a"] }, "ww_animTiming/without-descartes/09_w-d_r-a-r": { - "refs": ["e23e83d"] + "refs": ["55a256c"] }, "ww_animTiming/without-descartes/10_w-d_c-a-c": { - "refs": ["7696d6e"] + "refs": ["0fb70f5"] }, "ww_animTiming/without-descartes/13_w-d_r-l-r": { - "refs": ["41ece34"] + "refs": ["cb5a3cc"] }, "ww_animTiming/without-descartes/14_w-d_c-l-c": { - "refs": ["bac592f"] + "refs": ["5d9c288"] }, "ww_animTiming/without-descartes_orientation/01_w-d_o_r-r-r": { - "refs": ["98daf3c"] + "refs": ["893cefb"] }, "ww_animTiming/without-descartes_orientation/02_w-d_o_c-r-c": { - "refs": ["b079763"] + "refs": ["46cbac1"] }, "ww_animTiming/without-descartes_orientation/05_w-d_o_r-c-r": { - "refs": ["18674ce"] + "refs": ["aaf6ee2"] }, "ww_animTiming/without-descartes_orientation/06_w-d_o_c-c-c": { - "refs": ["4925408"] + "refs": ["e80209b"] }, "ww_animTiming/without-descartes_orientation/09_w-d_o_r-a-r": { - "refs": ["dc4fa1e"] + "refs": ["d4c2e30"] }, "ww_animTiming/without-descartes_orientation/10_w-d_o_c-a-c": { - "refs": ["843d652"] + "refs": ["d8d6d56"] }, "ww_animTiming/without-descartes_orientation/13_w-d_o_r-l-r": { - "refs": ["2e7c3ee"] + "refs": ["361b510"] }, "ww_animTiming/without-descartes_orientation/14_w-d_o_c-l-c": { - "refs": ["0d330f3"] + "refs": ["b4fdadb"] }, "ww_animTiming/without-polar/01_w-p_r-r-r": { - "refs": ["4debb3f"] + "refs": ["92cb665"] }, "ww_animTiming/without-polar/02_w-p_c-r-c": { - "refs": ["778cad5"] + "refs": ["85bc37b"] }, "ww_animTiming/without-polar/05_w-p_r-c-r": { - "refs": ["55d1db9"] + "refs": ["5099d2c"] }, "ww_animTiming/without-polar/06_w-p_c-c-c": { - "refs": ["2a7649b"] + "refs": ["1b7c355"] }, "ww_animTiming/without-polar/09_w-p_r-a-r": { - "refs": ["d6bbe4f"] + "refs": ["e14cbc2"] }, "ww_animTiming/without-polar/10_w-p_c-a-c": { - "refs": ["fbf20f4"] + "refs": ["501a1fd"] }, "ww_animTiming/without-polar/13_w-p_r-l-r": { - "refs": ["b22ca3f"] + "refs": ["9b50545"] }, "ww_animTiming/without-polar/14_w-p_c-l-c": { - "refs": ["5b126f4"] + "refs": ["d3c1fa9"] }, "ww_animTiming/without-polar_orientation/01_w-p_o_r-r-r": { - "refs": ["81fc9cb"] + "refs": ["8e04790"] }, "ww_animTiming/without-polar_orientation/02_w-p_o_c-r-c": { - "refs": ["5596473"] + "refs": ["e146c2b"] }, "ww_animTiming/without-polar_orientation/05_w-p_o_r-c-r": { - "refs": ["ce92309"] + "refs": ["0666d7e"] }, "ww_animTiming/without-polar_orientation/06_w-p_o_c-c-c": { - "refs": ["c4ccd0d"] + "refs": ["e0337d7"] }, "ww_animTiming/without-polar_orientation/09_w-p_o_r-a-r": { - "refs": ["d4abbe4"] + "refs": ["69d354d"] }, "ww_animTiming/without-polar_orientation/10_w-p_o_c-a-c": { - "refs": ["835a78d"] + "refs": ["1e5ada2"] }, "ww_animTiming/without-polar_orientation/13_w-p_o_r-l-r": { - "refs": ["e060877"] + "refs": ["2cbfaeb"] }, "ww_animTiming/without-polar_orientation/14_w-p_o_c-l-c": { - "refs": ["898c383"] + "refs": ["84e352f"] }, "ww_animTiming/without/02_w-w_c-r-c": { - "refs": ["edce2d9"] + "refs": ["3846714"] }, "ww_animTiming_TESTS/descartes-polar/02_d-p_c-r-c": { "refs": ["e4cb32d"] @@ -1649,103 +1649,103 @@ "refs": ["a25054f"] }, "ww_animTiming_TESTS/without-descartes/01_w-d_r-r-r": { - "refs": ["ab730d0"] + "refs": ["fe3d177"] }, "ww_animTiming_TESTS/without-descartes/02_w-d_c-r-c": { - "refs": ["6ab99fa"] + "refs": ["68ad2ef"] }, "ww_animTiming_TESTS/without-descartes/05_w-d_r-c-r": { - "refs": ["6889c08"] + "refs": ["b6e3dd2"] }, "ww_animTiming_TESTS/without-descartes/06_w-d_c-c-c": { - "refs": ["2fd660a"] + "refs": ["c80092a"] }, "ww_animTiming_TESTS/without-descartes/09_w-d_r-a-r": { - "refs": ["124abc7"] + "refs": ["ebd82bc"] }, "ww_animTiming_TESTS/without-descartes/10_w-d_c-a-c": { - "refs": ["20dce86"] + "refs": ["00d7be7"] }, "ww_animTiming_TESTS/without-descartes/13_w-d_r-l-r": { - "refs": ["cfbafde"] + "refs": ["fe7b3f8"] }, "ww_animTiming_TESTS/without-descartes/14_w-d_c-l-c": { - "refs": ["4a736ad"] + "refs": ["1fd8801"] }, "ww_animTiming_TESTS/without-descartes_orientation/01_w-d_o_r-r-r": { - "refs": ["8893e1d"] + "refs": ["a452290"] }, "ww_animTiming_TESTS/without-descartes_orientation/02_w-d_o_c-r-c": { - "refs": ["f76d9f7"] + "refs": ["19903e7"] }, "ww_animTiming_TESTS/without-descartes_orientation/05_w-d_o_r-c-r": { - "refs": ["ed6ba58"] + "refs": ["ea41a66"] }, "ww_animTiming_TESTS/without-descartes_orientation/06_w-d_o_c-c-c": { - "refs": ["b24a3b0"] + "refs": ["1828c5c"] }, "ww_animTiming_TESTS/without-descartes_orientation/09_w-d_o_r-a-r": { - "refs": ["d84559e"] + "refs": ["89679ca"] }, "ww_animTiming_TESTS/without-descartes_orientation/10_w-d_o_c-a-c": { - "refs": ["4c6b493"] + "refs": ["0bc5cfe"] }, "ww_animTiming_TESTS/without-descartes_orientation/13_w-d_o_r-l-r": { - "refs": ["14e23d9"] + "refs": ["a47ea50"] }, "ww_animTiming_TESTS/without-descartes_orientation/14_w-d_o_c-l-c": { - "refs": ["5c95387"] + "refs": ["16c2538"] }, "ww_animTiming_TESTS/without-polar/01_w-p_r-r-r": { - "refs": ["be70807"] + "refs": ["7fd171a"] }, "ww_animTiming_TESTS/without-polar/02_w-p_c-r-c": { - "refs": ["9341567"] + "refs": ["92866a1"] }, "ww_animTiming_TESTS/without-polar/05_w-p_r-c-r": { - "refs": ["3738cab"] + "refs": ["b723523"] }, "ww_animTiming_TESTS/without-polar/06_w-p_c-c-c": { - "refs": ["dcb3f76"] + "refs": ["56d9b96"] }, "ww_animTiming_TESTS/without-polar/09_w-p_r-a-r": { - "refs": ["7e9fa0f"] + "refs": ["ebeff49"] }, "ww_animTiming_TESTS/without-polar/10_w-p_c-a-c": { - "refs": ["b97edbc"] + "refs": ["052448c"] }, "ww_animTiming_TESTS/without-polar/13_w-p_r-l-r": { - "refs": ["13d5878"] + "refs": ["af1227f"] }, "ww_animTiming_TESTS/without-polar/14_w-p_c-l-c": { - "refs": ["2a15690"] + "refs": ["65e0fe0"] }, "ww_animTiming_TESTS/without-polar_orientation/01_w-p_o_r-r-r": { - "refs": ["fd7f93b"] + "refs": ["3e27814"] }, "ww_animTiming_TESTS/without-polar_orientation/02_w-p_o_c-r-c": { - "refs": ["7a1a8e0"] + "refs": ["270dfcf"] }, "ww_animTiming_TESTS/without-polar_orientation/05_w-p_o_r-c-r": { - "refs": ["4ea7da2"] + "refs": ["ba4a644"] }, "ww_animTiming_TESTS/without-polar_orientation/06_w-p_o_c-c-c": { - "refs": ["f610cd3"] + "refs": ["e082dd0"] }, "ww_animTiming_TESTS/without-polar_orientation/09_w-p_o_r-a-r": { - "refs": ["26fc0b8"] + "refs": ["88d160e"] }, "ww_animTiming_TESTS/without-polar_orientation/10_w-p_o_c-a-c": { - "refs": ["b708426"] + "refs": ["9a61935"] }, "ww_animTiming_TESTS/without-polar_orientation/13_w-p_o_r-l-r": { - "refs": ["bf16a44"] + "refs": ["97a187b"] }, "ww_animTiming_TESTS/without-polar_orientation/14_w-p_o_c-l-c": { - "refs": ["780fd41"] + "refs": ["18a74af"] }, "ww_animTiming_TESTS/without/02_w-w_c-r-c": { - "refs": ["df8b392"] + "refs": ["625ee59"] }, "ww_next_steps/next_steps/02_C_R": { "refs": ["d3200b8"] @@ -1766,7 +1766,7 @@ "refs": ["2904e90"] }, "ww_next_steps/next_steps/22_C_C": { - "refs": ["ec4da6c"] + "refs": ["87af60f"] }, "ww_next_steps/next_steps/28_C_A": { "refs": ["f396191"] @@ -2048,7 +2048,7 @@ "refs": ["7cf90ec"] }, "ww_next_steps/next_steps_byOperations/wOld_animated/treemap_radial": { - "refs": ["6f96e8b"] + "refs": ["acdf13e"] }, "ww_next_steps/next_steps_byOperations/wOld_animated/zoom_area": { "refs": ["58ff641"] @@ -2069,7 +2069,7 @@ "refs": ["54e4569"] }, "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_cir": { - "refs": ["28e89f3"] + "refs": ["8136ca8"] }, "ww_next_steps/next_steps_byOperations/wREGIEKBOL/03_d-w_lin": { "refs": ["13ce7e7"] @@ -2399,16 +2399,16 @@ "refs": ["7d807d6"] }, "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/02_d-w_rec": { - "refs": ["668f799"] + "refs": ["6191e51"] }, "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/03_d-w_rec": { "refs": ["eda9bde"] }, "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_1c": { - "refs": ["7276ebf"] + "refs": ["cac2cbc"] }, "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04a_d-w_rec_2c": { - "refs": ["f648ce4"] + "refs": ["4cdadf2"] }, "ww_noFade/wNoFade_Tests/2_des_pol-without/rectangle/04b_d-w_rec_1c": { "refs": ["105dac1"] @@ -2702,7 +2702,7 @@ "refs": ["5c4e57a"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/circle/02_d-w_cir": { - "refs": ["d83d897"] + "refs": ["f1c16e1"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/circle/03_d-w_cir": { "refs": ["b42c296"] @@ -2843,16 +2843,16 @@ "refs": ["0b37c3c"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/02_d-w_rec": { - "refs": ["fe19440"] + "refs": ["291bf66"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/03_d-w_rec": { "refs": ["23b1593"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_1c": { - "refs": ["1a54549"] + "refs": ["c0c76b2"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04a_d-w_rec_2c": { - "refs": ["f9dfab8"] + "refs": ["52029bd"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle/04b_d-w_rec_1c": { "refs": ["bb6687e"] @@ -2888,10 +2888,10 @@ "refs": ["0e97ae5"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_1c_V1": { - "refs": ["bade63b"] + "refs": ["7164b5b"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04a_d-w_rec_Ve1_2c_V1": { - "refs": ["e492a5a"] + "refs": ["fe2656a"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_V1/04b_d-w_rec_1c_V1": { "refs": ["a860d9f"] @@ -2909,10 +2909,10 @@ "refs": ["44c90e9"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_1c": { - "refs": ["7b2811b"] + "refs": ["f9144aa"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/04a_d-w_rec_Ve1_2c": { - "refs": ["efcf893"] + "refs": ["3e15bfc"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/05a_d-w_rec_Ve1_2c": { "refs": ["990dc60"] @@ -2930,7 +2930,7 @@ "refs": ["4f88b89"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_1c": { - "refs": ["fba58e2"] + "refs": ["ca8fb26"] }, "ww_noFade/wNoFade_cases/2_des_pol-without/rectangle_Ve1/07a_d-w_rec_Ve2_2c": { "refs": ["41884bc"] @@ -3140,7 +3140,7 @@ "refs": ["19ad791"] }, "web_content/presets_config/treemap": { - "refs": ["bec5c68"] + "refs": ["ee86b8d"] }, "ww_samples_for_presets/without_coo_sys/601_W_R_heatmap_gradient": { "refs": ["dfa1f88"] @@ -3291,6 +3291,48 @@ }, "web_content/cookbook/style/colorfilter": { "refs": ["05406ff"] + }, + "web_content/cookbook/chart_types/annotation_editor": { + "refs": ["e3b0c44"] + }, + "web_content/cookbook/chart_types/annotations": { + "refs": ["e3b0c44"] + }, + "web_content/cookbook/chart_types/map": { + "refs": ["e3b0c44"] + }, + "web_content/cookbook/chart_types/multilayer": { + "refs": ["e3b0c44"] + }, + "web_content/cookbook/data_source/data_from_model": { + "refs": ["e3b0c44"] + }, + "web_content/cookbook/data_source/data_from_model2": { + "refs": ["e3b0c44"] + }, + "web_content/cookbook/data_source/realtime_data": { + "refs": ["b737510"] + }, + "web_content/cookbook/exports/animated_gif_export": { + "refs": ["e3b0c44"] + }, + "web_content/cookbook/exports/pptx-export": { + "refs": ["e3b0c44"] + }, + "web_content/cookbook/exports/video_export": { + "refs": ["e47e75b"] + }, + "web_content/cookbook/interactive/fullscreen": { + "refs": ["b04d3ee"] + }, + "web_content/cookbook/interactive/marker_label_on_mouseon": { + "refs": ["c6fe75d"] + }, + "web_content/cookbook/interactive/seeker_slider": { + "refs": ["2c50c38"] + }, + "web_content/cookbook/interactive/swipe_to_seek": { + "refs": ["11b904e"] } } } From 307e56b2e4735f3a59893cbd57ec10a6cdee7b86 Mon Sep 17 00:00:00 2001 From: Laszlo Simon Date: Tue, 16 Jan 2024 21:44:31 +0100 Subject: [PATCH 180/180] Accidentally accepted tests reverted. --- test/e2e/test_cases/test_cases.json | 42 ----------------------------- 1 file changed, 42 deletions(-) diff --git a/test/e2e/test_cases/test_cases.json b/test/e2e/test_cases/test_cases.json index 53df25c43..dda4d9265 100644 --- a/test/e2e/test_cases/test_cases.json +++ b/test/e2e/test_cases/test_cases.json @@ -3291,48 +3291,6 @@ }, "web_content/cookbook/style/colorfilter": { "refs": ["05406ff"] - }, - "web_content/cookbook/chart_types/annotation_editor": { - "refs": ["e3b0c44"] - }, - "web_content/cookbook/chart_types/annotations": { - "refs": ["e3b0c44"] - }, - "web_content/cookbook/chart_types/map": { - "refs": ["e3b0c44"] - }, - "web_content/cookbook/chart_types/multilayer": { - "refs": ["e3b0c44"] - }, - "web_content/cookbook/data_source/data_from_model": { - "refs": ["e3b0c44"] - }, - "web_content/cookbook/data_source/data_from_model2": { - "refs": ["e3b0c44"] - }, - "web_content/cookbook/data_source/realtime_data": { - "refs": ["b737510"] - }, - "web_content/cookbook/exports/animated_gif_export": { - "refs": ["e3b0c44"] - }, - "web_content/cookbook/exports/pptx-export": { - "refs": ["e3b0c44"] - }, - "web_content/cookbook/exports/video_export": { - "refs": ["e47e75b"] - }, - "web_content/cookbook/interactive/fullscreen": { - "refs": ["b04d3ee"] - }, - "web_content/cookbook/interactive/marker_label_on_mouseon": { - "refs": ["c6fe75d"] - }, - "web_content/cookbook/interactive/seeker_slider": { - "refs": ["2c50c38"] - }, - "web_content/cookbook/interactive/swipe_to_seek": { - "refs": ["11b904e"] } } }