Skip to content

Commit edf8732

Browse files
dvvanessastoiberthinkholtionchamparidg-datavisyndvflorianengertsberger
authored
Release 13.0.0 (#426)
* prepare next development version 12.0.1-SNAPSHOT * Fix ref in replace views w/ `findOrAddObject()` Fixes #402 See GitHub issue for in-depth analysis and testing results. * Add missing dist files * Use context to get current view name Fixes #254 * Remove `nav.mainNavi` styles (#415) I couldn't find any occurence or usage of the CSS class `mainNavi` in the TypeScript code of the phovea, Caleydo, or datavisyn organization, nor do know where this element would be. Hence, I would remove this code. * Prepare github changes * Remove circleci * prepare next dev version * Update fontawesome * refactor: Improve Cypress setup and use Cypress commands.js (#354) Co-authored-by: Florian Engertsberger <florian.engertsberger@datavisyn.io> Co-authored-by: Holger Stitz <holger.stitz@datavisyn.io> * feat: CLUE support for URL query parameter + refactor public session link (#419) Co-authored-by: oltionchampari <oltion.champari@datavisyn.io> * Add Visyn Scripts (#421) * Prepare visyn_script changes * Update package.json * Remove prepack script * Removed phovea_registry.js from package.json files * Update package.json * Update package.json * add depth * Update package.json * Update package.json * Update package.json * Update package.json * Update package.json * Update package.json * Update engine and prepare script * Add react resolutions and overrides * Remove react and react-dom from deps * add dist folder * Added resolutions like overrides * Fix wrongly formatted visyn_scripts git ssh link * Remove .git from git+ssh link to visyn_script * Add yarn-3.2.2 * Remove yarn-3.2.2 again * Add .yarnrc.yml * Add yarn-3.2.2 * Switch to visyn_scripts clean * Change d3 to d3v3 Co-authored-by: anita-steiner <> Co-authored-by: Anita Steiner <anita.steiner@datavisyn.io> Co-authored-by: Michael Puehringer <michael.puehringer@datavisyn.io> * Add dist/ folder (#423) * fix: Replace jQuery scrollTo plugin with custom implementation (#425) Replace jquery scrollTo plugin with custom impl * prepare release 13.0.0 Co-authored-by: Holger Stitz <holger.stitz@datavisyn.io> Co-authored-by: Champari Oltion <51322092+oltionchampari@users.noreply.github.com> Co-authored-by: Dominic Girardi <45822063+dg-datavisyn@users.noreply.github.com> Co-authored-by: anita-steiner <> Co-authored-by: Florian Engertsberger <florian.engertsberger@datavisyn.io> Co-authored-by: oltionchampari <oltion.champari@datavisyn.io> Co-authored-by: datavisyn-bot <32451285+datavisyn-bot@users.noreply.github.com> Co-authored-by: Anita Steiner <anita.steiner@datavisyn.io> Co-authored-by: Michael Puehringer <michael.puehringer@datavisyn.io> Co-authored-by: Thomas Schachinger <79898881+dvtschachinger@users.noreply.github.com>
1 parent 8047c0e commit edf8732

File tree

103 files changed

+1332
-393
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+1332
-393
lines changed

.eslintrc.js

Lines changed: 1 addition & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1 @@
1-
module.exports = {
2-
root: true,
3-
extends: [
4-
"airbnb",
5-
"airbnb-typescript",
6-
"airbnb/hooks",
7-
"eslint:recommended",
8-
"plugin:import/recommended",
9-
"plugin:react/recommended",
10-
"plugin:@typescript-eslint/recommended",
11-
"plugin:jest/recommended",
12-
"plugin:prettier/recommended"
13-
],
14-
plugins: ["react", "@typescript-eslint", "jest"],
15-
ignorePatterns: ["*.js"],
16-
env: {
17-
browser: true,
18-
es6: true,
19-
jest: true
20-
},
21-
globals: {
22-
Atomics: "readonly",
23-
SharedArrayBuffer: "readonly",
24-
},
25-
parser: "@typescript-eslint/parser",
26-
parserOptions: {
27-
// Make sure eslint and VS Code use the same path for the tsconfig.json:
28-
// https://github.com/typescript-eslint/typescript-eslint/issues/251
29-
tsconfigRootDir: __dirname,
30-
project: "./tsconfig.eslint.json"
31-
},
32-
rules: {
33-
// Disables jsx-a11y https://github.com/import-js/eslint-plugin-import/blob/v2.25.4/docs/rules/no-webpack-loader-syntax.md
34-
...Object.keys(require('eslint-plugin-jsx-a11y').rules).reduce((acc, rule) => { acc[`jsx-a11y/${rule}`] = 'off'; return acc }, {}),
35-
"class-methods-use-this":"off",
36-
"linebreak-style": "off",
37-
"no-continue": "off",
38-
"no-multi-assign": "warn",
39-
"no-nested-ternary": "off",
40-
"no-param-reassign": ["error", { "props": false }],
41-
"no-return-assign": "warn",
42-
"no-restricted-syntax": "off",
43-
"no-plusplus": "off",
44-
"no-prototype-builtins": "warn",
45-
"no-minusminus": "off",
46-
"no-underscore-dangle": "off",
47-
"max-classes-per-file": "off",
48-
"no-param-reassign": "warn",
49-
"import/no-extraneous-dependencies": "off",
50-
// Disable the following 2 lines because to allow webpack file-loaders syntax
51-
"import/no-webpack-loader-syntax": "off",
52-
"import/no-unresolved": "off",
53-
"import/prefer-default-export": "off",
54-
"import/order": "error",
55-
"prefer-destructuring": ["warn", {"object": true, "array": false}],
56-
"prefer-promise-reject-errors": "warn",
57-
"prefer-spread": "warn",
58-
"@typescript-eslint/ban-ts-comment": "warn",
59-
"react/destructuring-assignment": "warn",
60-
"react/jsx-props-no-spreading": "off",
61-
"react/no-unused-class-component-methods": "warn",
62-
"react/prop-types": "off",
63-
"react/require-default-props": "off",
64-
"react/static-property-placement": ["warn", "property assignment", {
65-
childContextTypes: "static getter",
66-
contextTypes: "static public field",
67-
contextType: "static public field",
68-
displayName: "static public field",
69-
}]
70-
}
71-
};
1+
module.exports = require('visyn_scripts/config/eslintrc.template')({ tsconfigRootDir: __dirname });

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,12 @@ node_modules/
2929
/.awcache
3030
/.cache-loader
3131
package-lock.json
32+
/yarn.lock
33+
# yarn
34+
.pnp.*
35+
.yarn/*
36+
!.yarn/patches
37+
!.yarn/plugins
38+
!.yarn/releases
39+
!.yarn/sdks
40+
!.yarn/versions

.prettierrc.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
module.exports = {
2-
"endOfLine": "auto",
3-
"singleQuote": true,
4-
"trailingComma": "all",
5-
"printWidth": 160
6-
};
1+
module.exports = require('visyn_scripts/config/prettierrc.template')

.yarn/releases/yarn-3.2.2.cjs

Lines changed: 783 additions & 0 deletions
Large diffs are not rendered by default.

.yarnrc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
yarnPath: .yarn/releases/yarn-3.2.2.cjs
2+
nodeLinker: node-modules

.yo-rc.json

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,6 @@
77
"modules": [
88
"tdp_core"
99
],
10-
"registry": {
11-
"exclude": [
12-
"dTiles",
13-
"bob",
14-
[
15-
"datatype",
16-
"(matrix|stratification|vector|atom)"
17-
],
18-
[
19-
"clue",
20-
"multiform"
21-
]
22-
]
23-
},
2410
"vendors": {
2511
"others": "phovea.*|tdp_.*|tdp-.*|datavisyn.*",
2612
"phovea": "phovea.*",
@@ -30,8 +16,7 @@
3016
"filesToLoad": {
3117
"file-loader": "404|robots"
3218
},
33-
"extensions": [
34-
],
19+
"extensions": [],
3520
"sextensions": [],
3621
"libraries": [
3722
"scrollTo"
@@ -46,18 +31,8 @@
4631
"redhatPackages": []
4732
},
4833
"app": "ordino",
49-
"entries": {
50-
"app": {
51-
"js": "dist/initialize.js",
52-
"template": "dist/index.template.ejs",
53-
"html": "index.html",
54-
"chunkName": "app"
55-
}
56-
},
5734
"libraryAliases": {
58-
"d3": "d3/d3",
59-
"scrollTo": "jquery.scrollto/jquery.scrollTo.js",
60-
"jquery": "jquery/dist/jquery"
35+
"d3": "d3/d3"
6136
},
6237
"libraryExternals": [],
6338
"ignores": [],

cypress.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"experimentalStudio": true,
3+
"viewportWidth": 1920,
4+
"viewportHeight": 1080,
5+
"defaultCommandTimeout": 100000,
6+
"responseTimeout": 100000,
7+
"env": {
8+
"host": "http://localhost:8080"
9+
}
10+
}
11+

cypress/fixtures/example.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name": "Using fixtures to represent data",
3+
"email": "hello@cypress.io",
4+
"body": "Fixtures are a great way to mock data for responses to routes"
5+
}

cypress/plugins/index.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/// <reference types="cypress" />
2+
// ***********************************************************
3+
// This example plugins/index.js can be used to load plugins
4+
//
5+
// You can change the location of this file or turn off loading
6+
// the plugins file with the 'pluginsFile' configuration option.
7+
//
8+
// You can read more here:
9+
// https://on.cypress.io/plugins-guide
10+
// ***********************************************************
11+
12+
// This function is called when a project is opened or re-opened (e.g. due to
13+
// the project's config changing)
14+
15+
/**
16+
* @type {Cypress.PluginConfig}
17+
*/
18+
// eslint-disable-next-line no-unused-vars
19+
module.exports = (on, config) => {
20+
// `on` is used to hook into various events Cypress emits
21+
// `config` is the resolved Cypress config
22+
}

cypress/support/commands.js

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// ***********************************************
2+
// This example commands.js shows you how to
3+
// create various custom commands and overwrite
4+
// existing commands.
5+
//
6+
// For more comprehensive examples of custom
7+
// commands please read more here:
8+
// https://on.cypress.io/custom-commands
9+
// ***********************************************
10+
//
11+
12+
/**
13+
* Count columns in the ranking and wait until the new column has been added
14+
* Auxilary function for checkScoreColLoaded. Count columns in the ranking and wait until the new column has been added
15+
* @param {number} rankingId - ID of the ranking to search in, e.g. 0 for the initial ranking, 1 for the first detail view etc.
16+
* @param {string[]} totalNumColumns - total number of columns that are expected after adding them
17+
*/
18+
Cypress.Commands.add('checkColCountOrdino', (rankingId, totalNumColumns) => {
19+
const colsSelector = `[data-testid=viewWrapper-${rankingId}] > .view > .inner > .tdp-view.lineup > div > main > header > article > section`;
20+
cy.get(colsSelector).should('have.length', totalNumColumns);
21+
})
22+
23+
/**
24+
* Check if a score column has finished loading
25+
* Finds score column by searching for input strings in title, label and sublabel of the columns
26+
* @param {number} rankingId - ID of the ranking to search in, e.g. 0 for the initial ranking, 1 for the first detail view etc.
27+
* @param {string[]} searchStrings - Array of strings containing the user input of the modal (if this does not work inspect the header element of the column and extract information from the title attribute)
28+
* @param {string[]} totalNumColumns - total number of columns that are expected after adding them
29+
*/
30+
Cypress.Commands.add('checkScoreColLoadedOrdino', (rankingId, searchStrings, totalNumColumns) => {
31+
const searchStringsLower = searchStrings.map((string) => string.toLowerCase());
32+
cy.checkColCountOrdino(rankingId, totalNumColumns);
33+
cy
34+
.get(`[data-testid=viewWrapper-${rankingId}] .tdp-view.lineup > div > main > header > article`)
35+
.children()
36+
.filter((i, elem) => {
37+
const label = elem.getElementsByClassName('lu-label')[0];
38+
const sublabel = elem.getElementsByClassName('lu-sublabel')[0];
39+
return searchStringsLower.every(
40+
(s) => elem.title.toLowerCase().includes(s) || label.innerHTML.toLowerCase().includes(s) || sublabel.innerHTML.toLowerCase().includes(s),
41+
);
42+
})
43+
// extract data-col-id and save it to variable column_id
44+
.invoke('attr', 'data-col-id')
45+
.as('column_id');
46+
47+
// use variable column_id and check if first row contains "Loading"
48+
cy.get('@column_id').then((id) => {
49+
return cy
50+
.get(`[data-testid=viewWrapper-${rankingId}] .tdp-view.lineup > div > main > .le-body > [data-ranking="rank${0}"] > div:nth-child(1) > [data-id="${id}"]`)
51+
.should('not.contain', 'Loading');
52+
});
53+
})
54+
55+
/**
56+
* Wait for the lineup table rows to be visible
57+
* @param {number} rankingId - ID of the ranking to search in, e.g. 0 for the initial ranking, 1 for the first detail view etc.
58+
*/
59+
Cypress.Commands.add('waitLineupReadyOrdino', (rankingId) => {
60+
cy.get(`[data-testid=viewWrapper-${rankingId}] .le-tr`).should('be.visible');
61+
})

cypress/support/index.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// ***********************************************************
2+
// This example support/index.js is processed and
3+
// loaded automatically before your test files.
4+
//
5+
// This is a great place to put global configuration and
6+
// behavior that modifies Cypress.
7+
//
8+
// You can change the location of this file or turn off
9+
// automatically serving support files with the
10+
// 'supportFile' configuration option.
11+
//
12+
// You can read more here:
13+
// https://on.cypress.io/configuration
14+
// ***********************************************************
15+
16+
// Import commands.js using ES2015 syntax:
17+
import './commands'
18+
19+
// Alternatively you can use CommonJS syntax:
20+
// require('./commands')
21+
22+
23+
// Here we define the selector priority for cypress.
24+
// We use Cypress.SelectorPlayground.defaults within itself, in order to define two different selector priorities,
25+
// depending on whether the element has the data-testid attribute.
26+
// This is a little hacky, but works and is the most stable solution.
27+
// Why this works can be founde here: https://github.com/cypress-io/cypress/blob/b6c4ba144cd6ae3d210789bbb69b9aacc6a92094/packages/driver/src/cypress/selector_playground.ts
28+
// If in the future changes happen in cypress, that interfere with this approach, this solution must be changed.
29+
30+
Cypress.SelectorPlayground.defaults({
31+
// With onElement we can check whether the element has the data-testid attribute
32+
onElement: (el) => {
33+
if (el.attr('data-testid')) {
34+
// If it has the data-testid attribute then it should only use it in the selector priority.
35+
// This ensures that we get nice outputs in the cypress studio as we intended (hierarchy of data-testid elements).
36+
Cypress.SelectorPlayground.defaults({
37+
selectorPriority: ['data-testid'],
38+
})
39+
} else {
40+
// If it does not have it (eg. line up) we use all the available selector types to ensure that a unique selector is returned.
41+
Cypress.SelectorPlayground.defaults({
42+
selectorPriority: ['data-testid', 'data-cy', 'data-test', 'class', 'tag', 'attributes', 'nth-child', 'id'],
43+
})
44+
}
45+
},
46+
})

dist/components/HeaderNavigation.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/components/HeaderNavigation.js

Lines changed: 4 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/components/HeaderNavigation.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/components/ListItemDropdown.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/components/ListItemDropdown.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/components/ListItemDropdown.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)